Amazon ECS とは?AWS のコンテナオーケストレーションサービス
ECS は AWS 独自のコンテナオーケストレーションサービス。Docker コンテナを EC2 群または Fargate(サーバーレス)で動かし、デプロイ・スケーリング・サービスディスカバリを統合管理する。Kubernetes を使わずシンプルに AWS 統合した運用がで...
AWS が提供する Docker コンテナのオーケストレーションサービス。EC2 上または Fargate サーバーレスで動かせる。
1. 概要(端的に)
ECS は AWS 独自のコンテナオーケストレーションサービス。Docker コンテナを EC2 群または Fargate(サーバーレス)で動かし、デプロイ・スケーリング・サービスディスカバリを統合管理する。Kubernetes を使わずシンプルに AWS 統合した運用ができる点が魅力。
2. 何ができるか
- コンテナの実行・管理:Docker イメージをタスクとして実行
- 2 種類の起動タイプ:EC2 起動 or Fargate(サーバーレス)
- デプロイ自動化:ローリング・Blue/Green デプロイ
- オートスケーリング:CPU・メモリ・ALB リクエスト数に応じて自動増減
- AWS サービス統合:ALB / NLB / IAM / CloudWatch / X-Ray と密結合
- サービスディスカバリ:Cloud Map / Service Connect で名前解決
- タスクスケジューリング:cron 的な定期タスク実行
- マルチコンテナ対応:1 タスクに複数コンテナを同居可(サイドカー)
3. 特徴
| 観点 | 特徴 |
|---|---|
| AWS 独自 | Kubernetes ではないので学習コスト低 |
| AWS 統合 | IAM・ALB・CloudWatch との結合度が高い |
| 2 起動タイプ | EC2 または Fargate を選択 |
| コスト | EC2 起動なら EC2 料金、Fargate なら vCPU+メモリ秒単位 |
| マネージド度 | 中(EC2)〜 高(Fargate) |
| 学習コスト | Kubernetes より圧倒的に低い |
vs EKS(Kubernetes)
| 観点 | ECS | EKS |
|---|---|---|
| 標準化 | AWS 独自 | Kubernetes 業界標準 |
| 学習コスト | 低 | 高 |
| エコシステム | AWS サービスのみ | Helm/Operator 等 K8s 生態系 |
| ロックイン | 高 | 低(標準 K8s なので可搬) |
| AWS 統合度 | 非常に高い | 高い |
4. 仕組み
ECS は 「タスク定義」「タスク」「サービス」「クラスター」 の 4 階層で動く。
構成要素
- クラスター:論理的な実行環境のグループ
- タスク定義:コンテナの設計図(Dockerfile + 実行設定)
- タスク:タスク定義から起動した 1 つの実行単位
- サービス:タスクを「常に N 個」維持する仕組み
- キャパシティプロバイダ:EC2 or Fargate のリソース供給元
- コンテナエージェント:EC2 起動時に各 EC2 に常駐
階層関係
クラスター
├─ サービス A(タスク定義 A、希望数 5)
│ └─ タスク 1 / 2 / 3 / 4 / 5(コンテナ実体)
├─ サービス B(タスク定義 B、希望数 3)
└─ スケジュール実行タスク(cron 的)
タスク定義の主な設定
- イメージ URI(ECR のリポジトリ等)
- vCPU / メモリ
- ポートマッピング
- 環境変数 / Secrets
- IAM タスクロール(コンテナから AWS 呼出時の権限)
- ログ設定(CloudWatch Logs / Firelens)
- ネットワークモード(awsvpc / bridge / host)
awsvpc ネットワークモード
タスクごとに ENI が割り当てられ、コンテナ単位で VPC IP を持つ。SG をタスクに直接適用でき、セキュリティ設計が容易。
5. ユースケース
ユースケース 1:Web/API のコンテナ運用
ALB → ECS Fargate → DynamoDB の典型構成。サーバーレスでコンテナが動く。
ユースケース 2:マイクロサービス
1 サービス = 1 ECS サービスで、独立にデプロイ・スケール。
ユースケース 3:バッチジョブ
定期タスクや単発タスクをサービス化せずに実行。
ユースケース 4:オンプレからの移行
既存の Docker 運用をそのまま AWS に持ち込む(リフト&シフト)。
ユースケース 5:機械学習推論
GPU EC2 起動の ECS で推論コンテナを並列実行。
6. 関連用語
- EKS — Kubernetes 版の競合サービス
- Fargate — ECS のサーバーレス実行基盤
- ECR — Docker イメージのレジストリ
- EC2 — ECS の従来型実行基盤
- ELB / ALB — ECS タスクへの負荷分散
- IAM — タスクロール・実行ロール
- CloudWatch — メトリクス・ログ
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 中 | コンテナサービスの存在と役割 |
| SAA | 高 | ECS vs EKS、Fargate との組み合わせ、ALB 連携 |
| DVA | 高 | タスク定義設計、デプロイ戦略、IAM タスクロール |
| SOA | 中 | ECS 運用・モニタリング |