【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 サポート
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.
・仮想マシンの運用から解放される。コンテナのことだけを考えればいい
その他
セッションを視聴した感想
・予備知識不足のままハンズオンをやってみて「??」状態だったけど、本セッションのおかげで理解が深まった
・「コンテナオーケストレーションがあると何がうれしいのか」がわかってすっきりした
参考
・「コンテナを有効活用したいあなたへ AWS コンテナサービス入門 2020」 」
本記事内のスライドはすべて上記から引用させていただきました。