ECS(Elastic Container Service)
EC2上でのDockerコンテナを起動/停止を制御してくれる
インフラ(EC2)のプロビジョニングとメンテはユーザが行う必要あり
ALBとの連携が可能
ECSクラスタ 1VPC・マルチAZ・ASG内に配置するグループの名称
ECSサービス 複数のECSタスクをまとめる機能 ALBやASGと連携できる
ECSタスク =Dockerコンテナのこと タスク一つ一つにENIがアタッチされる
起動タイプ
EC2起動タイプ:EC2のことをコンテナインスタンスと呼ぶ
※ECSエージェント コンテナインスタンス内で働くソフトっぽ
Fargate起動タイプ
※ Fargate サーバレスでDockerコンテナ起動/停止 ECSタスクをFargateに投げるだけ
ECSタスクのオートスケーリング
基本?:SQSキュー→CloudWatch Metric(キューの長さ)→CloudWatchアラーム→タスクをオートスケーリング
※EC2起動タイプの場合:EC2まで自動で増えるわけじゃないので、ECS Capacity ProviderでEC2をスケーリングさせる
起動タイプとALBロードバランシングの関係
EC2起動タイプ:ALB連携の時は、セキュリティグループですべてのポートを許可する必要あり
Fargate起動タイプ:タスク一つ一つにENIがアタッチされるので、ALB連携の時は、セキュリティグループですべてのポートを許可する必要あり
IAMロールで制御
EC2インスタンスのIAMロール(ECSエージェントが使用する)
CloudWatchにログ送信、Docker image pull、SSM機密データ参照 等
ECSタスクのIAMロール(タスク定義)
S3バケットにアクセスする、DynamoDBにアクセスする 等
ECSデータボリューム – EFSファイルシステム連携
ECSタスクとFargateタスクの両方にマウントできる
使用例:コンテナ用の永続的なマルチAZ共有ストレージ
ちょっと高額
Amazon ECR(Elastic Container Resistry)
DockerHubみたいに自分の好きなイメージを置いとくことができるサービス
保管したデータ量・通信したデータ量に応じた課金(そんなに高くない)
ECS及びIAMと完全統合されたセキュリティ、S3によるバックアップ
Dockerイメージの脆弱性スキャン、バージョン、タグ、イメージのライフサイクルサポート(CodeBuild)