Amazon ECS

コンテナのオーケストレーションサービス。 FargateとEC2の2タイプがあり、GPU/WindowsはEC2しか使用できない。

ECS Execとは

SSMを使用してコンテナとの接続を確立することができる。

Auto ScalingとECS Execを同時使用はできないので注意が必要

ECSに必要なVPCエンドポイント

  • ECS関連

エンドポイント
EC2
Fargate

com.amazonaws.region.ecs-agent

不要

com.amazonaws.region.ecs-telemetry

不要

com.amazonaws.region.ecs

不要

  • ECR関連

| エンドポイント | EC2 | Fargate Linux 1.4.0 | Fargate Linux 1.3.0以前 | Fargate Windows 1.0.0 | |:---|:---|:---| | com.amazonaws.region.ecr.dkr | 必要 | 必要 | 必要 | 必要 | | com.amazonaws.region.ecr.api | 必要 | 必要 | 不要 | 必要 | | com.amazonaws.region.s3(ゲートウェイ型) | 必要 | 必要 | 必要 | 必要 |

ECSでDocker Hubの認証情報を扱う

Docker Hubからのpullには回数制限があり、IPガチャによってはこの影響がある。

そのため、認証情報できちんとログインした方が良いらしい。(匿名の場合IP毎に6時間で100pull、認証の場合ユーザ毎に6時間で200pull)

CodeBuildについてはこれがさらに厳しい。

Service Connect

re:Invent 2022で発表された。

Servie Discoveryと違ってDNSを使わず、サービス間の通信のメトリクスが見れるのが良さそう。

価格はECSタスク内で起動するService Connect agentコンテナ用に、256CPUと64MiBのメモリが必要。

具体例

タスクロールとタスク実行ロール

タスク実行ロールは、ECRやCloudWatchなどよりインフラよりなイメージで、要するにコンテナを起動するホスト側が意識するロール。

タスクロールは、コンテナで動作するアプリケーションに持たせたいロールで、S3にアクセスするなどはこちらに設定。

なお、ECS Execでログを表示するには、タスクロールを設定する必要があるらしい。

Fargate SpotはSaving Planを使えない

Fargateのtopコマンドと設定値の矛盾

きちんと明確にプロファイルしたいならEC2を使うべき。 freeコマンドでは基盤側の情報が採取されることもある。MemoryUtilizedの算出方法は非公開。

Articles

Updates

Last updated