Slide 1

Slide 1 text

入門 Docker 2024/08/22 JAWS-UG 東京支部 ランチタイムLT会

Slide 2

Slide 2 text

おはなしすること 1. 自己紹介 2. Dockerとは? 3. AWSとコンテナ 4. まとめ

Slide 3

Slide 3 text

自己紹介 ● y-ohgi(20代) ○ @_y_ohgi ○ JAWS-UG 東京支部の運営 ● Job ○ どこかの会社の CCoE ● Like ○ IAM Identity Center ○ Container

Slide 4

Slide 4 text

おはなしすること 1. 自己紹介 2. Dockerとは? 3. AWSとコンテナ 4. まとめ

Slide 5

Slide 5 text

Dockerとは? ● Dockerは「コンテナ」 技術を扱うためのツール ○ Dockerはコンテナのデファクトスタンダートといっても 過言ではない技術 ● 「コンテナ」とは ○ コンテナは「プロセスのコンテナ化」 技術 ○ VMは「OSレベルでの仮想化」 技術 ● VMとコンテナは共存する技術 ○ AWSであればFargateやLambdaが例に ○ MicroVMであるFirecrackerの上にコンテナが乗る まずはコンテナについて Fargate Task Firecracker – サーバーレスコンピューティングのための軽量な仮想化機能 https://aws.amazon.com/jp/blogs/news/firecracker-lightweight-virtualization-fo r-serverless-computing/

Slide 6

Slide 6 text

Dockerとは? Elastic Container Rgistry Elastic Container Service ● オーバーヘッド ○ VMがOSレベルでの環境を提供することに対し、プロ セス単位での環境を提供するため軽量で少ないオー バーヘッド で動きます。 ● Immutable Infrastructure ○ IaCとしてDockerfileという機能があり、任意のタイミ ングの不変なスナップショット (イメージ)を取得でき ます。 ● ポータビリティ ○ 1つのスナップショットを複数の環境をレジストリに上 げることで、他の開発者への配布や本番環境の可 搬性が提供されます。 ● docker compose ○ ローカル環境で複数のイメージを同時に扱うような開 発環境が容易に構築できます。 developer A Developer B なぜDockerを使うのか

Slide 7

Slide 7 text

Dockerとは? ● Dockerは「コンテナ管理ツール」 ○ コンテナランタイムの管理 ○ イメージのビルドやプッシュ ○ 他には「Podman」「Rancher」「Finch」などなど ● OCI(Open Container Initiative) ○ コンテナランタイムとイメージの標準仕様 ○ OCIに準拠することで様々なツールやレジストリに互 換性が生まれます。 ○ ECRやECSもOCIに対応 ● CRI(Container Runtime Interface) ○ Kubernetesがコンテナを管理するための標準仕様 ○ Kubernetesでコンテナを動かすにはCRIに準拠した コンテナランタイム を使用する必要がある ○ e.g. containerd, cri-o コンテナ管理ツールとコンテナの標準仕様 Cloud Native Landscape https://landscape.cncf.io/?view-mode=grid

Slide 8

Slide 8 text

おはなしすること 1. 自己紹介 2. Dockerとは? 3. AWSとコンテナ 4. まとめ

Slide 9

Slide 9 text

AWSとコンテナ Elastic Container Rgistry Elastic Container Service Fargate Lambda Elastic Kubernetes Service App Runner ● AWSはコンテナ関連マネージドサービス が豊富 ● コンテナイメージを保管するレジストリサービス ○ ECR ● コンテナオーケストレーション サービス ○ ECS・EKS ● コンテナをサーバーレス で扱うための機能も充実 ○ Fargate・Lambda ● 上記以外にも様々なエコシステムが存在! マネージドサービス

Slide 10

Slide 10 text

● コンテナの責務 ○ 任意のタイミングのスナップショット ○ CPUやメモリなどリソースの分離 ○ 軽量な実行環境 ○ ポータビリティ ● コンテナ単体では運用のための機能が不足 ○ スケジューリング ○ ヘルスチェック ○ デプロイ ○ ロードバランシング ● コンテナオーケストレーションツサービスを使用 ○ Elastic Container Service ○ Elastic Kubernetes Service ○ etc AWSとコンテナ Elastic Container Rgistry Elastic Container Service Fargate Lambda Elastic Kubernetes Service App Runner コンテナを運用するために

Slide 11

Slide 11 text

おはなしすること 1. 自己紹介 2. Dockerとは? 3. AWSとコンテナ 4. まとめ

Slide 12

Slide 12 text

まとめ ● Dockerはコンテナ技術だよ ○ コンテナは軽量で低いオーバーヘッド ○ 高いポータビリティでローカルから本番まで! ○ コンテナにも標準規格や様々な選択肢が存在 ● コンテナ単体では運用が難しいよ ○ コンテナオーケストレーションツールを使おう ○ AWSのマネージドサービスを使いこなそう! ● Docker入門資料「入門 Docker」を書きましたよ ○ 「Dockerの入門からプロダクションで活用するプラ クティス」 ○ 5年ぶりにアップデート!ほぼ書き直し! ○ Dockerの各コンポーネント・ベストプラクティス・プロ ダクションへの導入・最新情報の追記・デバッグ方法 などなど 入門 Docker https://y-ohgi.com/introduction-docker/

Slide 13

Slide 13 text

Dockerとは? ● 2013年 ○ Docker社によってDockerのリリース ● 2014年 ○ コンテナレジストリであるDocker Hubがリリース ● 2015年 ○ コンテナ標準企画「 OCI」をDocker社含めたAWSやGoogleなどの企業が設立 ● 2017年 ○ Docker社がDockerの中核となっていたcontainerdをCNCFへ寄贈 Dockerの歴史