Amazon ECS
コンテナのオーケストレーションサービス。 FargateとEC2の2タイプがあり、GPU/WindowsはEC2しか使用できない。
ECS Execとは
SSMを使用してコンテナとの接続を確立することができる。
Auto ScalingとECS Execを同時使用はできないので注意が必要
ECSに必要なVPCエンドポイント
ECS関連
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(ゲートウェイ型) | 必要 | 必要 | 必要 | 必要 |
その他使いそうなもの
CloudWatch Logs
com.amazonaws.region.logs
Secrets Manager
com.amazonaws.region.secretsmanager
Systems Manager
com.amazonaws.region.ssm
com.amazonaws.region.ssmmessages
com.amazonaws.region.ec2messages
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のメモリが必要。
具体例
バックエンドはNode.jsでwsというモジュールを使っている。
きちんとALBを立てて複数のFargateサービスを使っている。
タスクロールとタスク実行ロール
タスク実行ロールは、ECRやCloudWatchなどよりインフラよりなイメージで、要するにコンテナを起動するホスト側が意識するロール。
タスクロールは、コンテナで動作するアプリケーションに持たせたいロールで、S3にアクセスするなどはこちらに設定。
なお、ECS Execでログを表示するには、タスクロールを設定する必要があるらしい。
Fargate SpotはSaving Planを使えない
Fargateのtopコマンドと設定値の矛盾
きちんと明確にプロファイルしたいならEC2を使うべき。 freeコマンドでは基盤側の情報が採取されることもある。MemoryUtilizedの算出方法は非公開。
Articles
2023-09-12 Fargate で ECS Exec の SSM エージェントログを取得する方法を教えてください | DevelopersIO
タスク定義でコマンドを実行させる設定が記載されている
Updates
2023-07-27 Amazon ECS コンソールでタスク定義ワークフローのサポートが強化
1つのページレイアウトで、タスク定義の新規作成と修正、さらにコンテナログのルーティング、ファイアレンズ、コンテナのヘルスチェックなどの機能を設定できるように
Last updated