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)

観点ECSEKS
標準化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コンテナサービスの存在と役割
SAAECS vs EKS、Fargate との組み合わせ、ALB 連携
DVAタスク定義設計、デプロイ戦略、IAM タスクロール
SOAECS 運用・モニタリング