見出し画像

【AWS Summit Online】コンテナを有効活用したいあなたへ AWS コンテナサービス入門 2020:学習メモ

AWS Summit Online の開催自体は2020/9/30までだったものの、一部のセッションはまだ視聴可能みたいです。よかった〜〜!

AWS-41:「コンテナを有効活用したいあなたへ AWS コンテナサービス入門 2020」 のセッションを視聴した学習メモです。

ECS の理解を深めたくて視聴したため、EKS の細かいくだりはいったん飛ばしました。

セッションの対象者

・docker run はしたことがあるし、コンテナの特性はなんとなく知っている
・AWS 上でコンテナ化したアプリケーション環境構築を検討中
・AWS が提供するコンテナサービスそれぞれの特徴、どういう時に使うものかを知りたい

セッションの目的

・コンテナ⾃体が解決する課題、そして AWS の各コンテナサービスが解決しようとしている課題を理解する
・AWS の各コンテナサービスの特徴や利⽤⽤途を知り、⾃⾝のアプリケーションをコンテナ化して AWS 上で動かす際にどのコンテナサービスが必要か判断できるようになる

コンテナはなんのためにあるのか

・異なる環境間の差異が原因でエラーが出ないよう「コンテナ」がある
・アプリケーションが依存するものをコンテナにまとめる。
・設定はコンテナの中に入れない。
 コンテナの中に入れちゃうと環境ごとにイメージを用意しないといけなくなるため、意味がない。。
 「コンテナ実行時に設定を渡す」という考え。

Docker を使った基本的なワークフロー

1. サーバーにssh でログイン
2. docker pull でコンテナイメージをダウンロード
3. docker run で実行

上記をサーバー台数分やる必要がある。
あれ?思ってたよりも手作業多くね??
→ それもそのはず。
 Docker の責務は「同一サーバー上の」コンテナライフサイクル管理
 複数サーバーやコンテナを束ねた概念に対するオペレーションはスコープ外

■ コンテナオーケストレーション

コンテナオーケストレーションのAWSサービスはECS, EKS の2種類。

■ コンテナオーケストレーションの仕事
・デプロイメント
・スケジューリング
・スケーリング

コンテナイメージダウンロード・実行を手作業でやるのは非効率&ミスオペレーションを招く。
違うイメージをダウンロードしちゃったり、実行時のパラメータを間違えちゃったりする可能性がある。

■ コンテナオーケストレーションを使うとき・使わないときでどのように変わるのか
・今まで:手動で地道に作業
・ECS を使う場合:ECS のAPI を呼び出すだけ

「この EC2 インスタンスのクラスタでコンテナを実⾏したい」
「このコンテナを3つのAZに分散させて10個デプロイして、このロードバランサーにつなぎたい」
→ これを自動化するのがコンテナオーケストレーションツール

Amazon Elastic Container Service (ECS)

・クラウドでコンテナを本番環境利⽤するためのオーケストレーター
・各種 AWS サービスとの⾼度な連携
・多様なワークロードをサポートする「タスク」「サービス」というシンプルなリソース表現
 ※ まずは上記の2つだけわかってればオッケー
・Linux/Windows サポート

画像1

Amazon Elastic Kubernetes Service(EKS)

・運⽤難易度の⾼い Kubernetesをマネージドで提供
・エコシステムの OSS やツールを利⽤できる
・各種 AWS サービスとの連携
・EKS サービスチーム、OSS チームによるKubernetes コミュニティへの貢献
・“Pod”, ”Deployment”, “Service”, “Job”などのリソースに代表される⾼い表現⼒

■ イメージレジストリ

コンテナイメージを格納するところ

Amazon Elastic Container Registry (ECR)

・フルマネージドなプライベートコンテナイメージレジストリ
・セキュア – 保管イメージの⾃動的な暗号化、IAM 連携
・スケーラブルかつ⾼い可⽤性
・Docker CLI からの利⽤
・ECS / EKS / Kubernetes だけでなく、その他コンテナオーケストレーションツールからも利⽤可能
■ Amazon ECR のイメージスキャン機能
・Amazon ECR イメージスキャンは、コンテナイメージ内のソフトウェアの脆弱性を特定するのに役立つ
・スキャン結果を確認することで、デプロイされているコンテナイメージのセキュリティに関する情報を得ることができる
・コンテナイメージPush 時に自動スキャンが可能
・スキャンにかかる費用は無料

■ ホスティング

コンテナ実行環境のこと。EC2, AWS Fargate の2種類。

AWS Fargate

・AWS マネージド
・EC2 インスタンスのプロビジョン、スケール、管理不要
・コンテナネイティブ
・仮想マシンを意識しないシームレスなスケーリング
・コンテナの起動時間・使⽤リソースに応じた料⾦設定
・AWS サービスとの連携
・VPC ネットワーキング、Elastic Load Balancing、IAM、CloudWatch、etc.
・仮想マシンの運用から解放される。コンテナのことだけを考えればいい

その他 

画像2

画像3

セッションを視聴した感想

・予備知識不足のままハンズオンをやってみて「??」状態だったけど、本セッションのおかげで理解が深まった

・「コンテナオーケストレーションがあると何がうれしいのか」がわかってすっきりした

参考

・「コンテナを有効活用したいあなたへ AWS コンテナサービス入門 2020」 」
 本記事内のスライドはすべて上記から引用させていただきました。


この記事が気に入ったらサポートをしてみませんか?