ECSの基本概念
ECS (Amazon Elastic Container Service)
ECSはフルマネージドなコンテナオーケストレータ。
オーケストレーションサービスのため、コンテナを動かす実行環境のサービスではない。
コントロールプレーン(コンテナの管理機能)
タスク(Task)
一つ以上のコンテナから実行されるアプリケーションの実行単位。
タスク定義(Task Definition)
imageやその他のリソースなどを定義する。
サービス(Service)
指定した数だけタスクを維持するスケジューラー。
ロードバランサーと紐付ける。
クラスター(Cluster)
上記のサービスとタスクを実行するグループ。
ECSのコンテナ管理概念の関係
タスク定義によってタスク(アプリケーション)が生成。
サービスがタスクの管理を行い、
タスク×サービスを関連付けし実行するグループ=クラスター。
データプレーン(コンテナの実行環境)
Amazon Elastic Compute Cloud (EC2)
EC2。AWSを代表するサービス。
コンテナホストとして利用した場合、EC2インスタンスの運用コストがかかってくるため手間がかかる。
柔軟なサービスなので、細かい要件に合わせて運用したい場合はアリ。
AWS Fargate
ECSとEKSで動作するサーバーレスコンピューティングエンジン。
コンテナホストの管理が不要。ホストのインフラがAWSによって常に最新状態に保たれる。
利用者はアプリケーションの開発および機能追加に注力できる。
ただ、EC2より若干価格が高い。
利用者がインフラに介入できないため、OSリソースを詳細にチューニングする必要がある場合などは不都合になる。
リポジトリサービス
Amazon Elastic Container Registry(ECR)
コンテナイメージを保存、管理。
ECSと連携し、コンテナイメージを取得→立ち上げなどが可能。