Amazon ECS on Fargateの本番環境設計|タスク定義・サービス・ALB連携とデプロイ戦略

現場実践|ECS Fargate本番設計
Amazon ECS on Fargateの本番環境設計|タスク定義・サービス・ALB連携とデプロイ戦略
「ECS on Fargateで本番環境を構築したい」「ローリングデプロイとBlue/Greenデプロイの違いは?」——ECSのタスク定義・サービス設定・ALBとの連携・CodeDeployを使ったBlue/Greenデプロイまで実践的に解説します。
💡 ECS on FargateはEC2の管理が不要なコンテナ実行環境。タスク定義・サービス・ALBターゲットグループの3者の関係を理解することが本番ECS構築の最初のステップです。
1. ECSの基本構成要素
タスク定義
コンテナのイメージ・CPU・メモリ・環境変数・IAMタスクロール等を定義するテンプレート。バージョン管理されていて前のバージョンにロールバックできる。
サービス
タスクの起動数・Auto Scaling設定・ALBとの連携を定義する。「常時3タスク起動してALBのターゲットグループに登録する」設定をサービスで行う。
デプロイ設定
ローリングデプロイ(ECS標準)またはBlue/Greenデプロイ(CodeDeploy連携)の選択。Blue/Greenはトラフィックを瞬時に切り替えられるため本番推奨。
2. タスク定義のJSONサンプル
{
"family": "my-app",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "256",
"memory": "512",
"taskRoleArn": "arn:aws:iam::123456789:role/ecs-task-role",
"executionRoleArn": "arn:aws:iam::123456789:role/ecs-exec-role",
"containerDefinitions": [{
"name": "app",
"image": "123456789.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:latest",
"portMappings": [{ "containerPort": 3000 }],
"environment": [
{ "name": "NODE_ENV", "value": "production" }
],
"secrets": [
{ "name": "DB_PASSWORD", "valueFrom": "arn:aws:ssm:ap-northeast-1:123456789:parameter/db-password" }
],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/my-app",
"awslogs-region": "ap-northeast-1",
"awslogs-stream-prefix": "app"
}
}
}]
}3. ローリングデプロイとBlue/Greenデプロイ
| ローリングデプロイ | Blue/Greenデプロイ | |
|---|---|---|
| 仕組み | 既存タスクを段階的に新しいバージョンに置き換える | 新旧2つの環境を同時起動してトラフィックを瞬時に切り替える |
| ダウンタイム | 最小化できる(ただし切り替え中に両バージョンが混在) | ゼロダウンタイム |
| ロールバック | 時間がかかる | 即座にトラフィックを旧環境に戻せる |
| コスト | 追加費用なし | デプロイ中に2倍のタスクが起動するため一時的にコストが増える |
📌 この記事のポイント
- ECSはタスク定義(テンプレート)・サービス(起動数とALB連携)・デプロイ設定の3つを理解することが基本
- タスク定義のsecretsフィールドでSSMパラメータストアのシークレットを安全に注入できる
- 本番環境はBlue/Greenデプロイを推奨。ゼロダウンタイムと即座のロールバックが実現できる
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




