ECS
AWS のマネージドコンテナオーケストレーションサービスで、Docker コンテナを実行 / 管理する
ECS とは
Amazon ECS (Elastic Container Service) は、Docker コンテナを実行・管理するマネージドコンテナオーケストレーションサービスである。Fargate (サーバーレス) または EC2 上でコンテナを実行する。
Fargate vs EC2
Fargate と EC2 の違いを以下にまとめる。
| 観点 | Fargate | EC2 |
|---|---|---|
| サーバー管理 | 不要 | 必要 (OS パッチ等) |
| スケーリング | タスク単位 | インスタンス + タスク |
| コスト | vCPU + メモリ時間課金 | インスタンス時間課金 |
| GPU | 非対応 | 対応 |
| 推奨 | ほとんどのケース | GPU、大量コンテナ |
ECS の構成要素
ECS はクラスター (コンテナの実行環境)、タスク定義 (コンテナの設定: イメージ、CPU、メモリ)、タスク (タスク定義のインスタンス、実行中のコンテナ)、サービス (タスクの数を維持し ALB と連携) で構成される。
タスク定義
タスク定義の例を示す。
{
"family": "my-api",
"cpu": "256",
"memory": "512",
"containerDefinitions": [{
"name": "app",
"image": "123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:latest",
"portMappings": [{ "containerPort": 3000 }],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/my-api",
"awslogs-region": "ap-northeast-1"
}
}
}]
}
Lambda との使い分け
ECS はコンテナを「起動したまま置いておく」実行環境で、Lambda は「呼び出しのたびに実行環境を用意する」ものである。ECS 側から見た判断軸を整理する。
| 判断軸 | ECS (Fargate) | Lambda |
|---|---|---|
| プロセスの寿命 | 止めるまでタスクが常駐する | 処理が終われば実行環境は凍結される (1 回の実行は最大 15 分) |
| 1 コンテナの同時処理 | アプリ側の並行処理で複数リクエストを同時に扱える | 1 つの実行環境が同時に扱うのは 1 リクエスト |
| 相乗りできるもの | ログ収集やプロキシをサイドカーとして同じタスクに入れられる | 関数単体 (拡張機能の枠内で追加) |
| スケールで増やす対象 | タスク数 (Auto Scaling の設定が必要) | 同時実行数 (呼び出しに応じて自動) |
| 課金の起点 | タスクを確保している時間 (秒単位・最低 1 分) | 呼び出し回数と実行時間 |
常駐プロセスやサイドカー構成が前提なら ECS、リクエストが来たときだけ動けばよい処理なら Lambda が素直な選択になる。
EKS との使い分け
EKS との使い分けを以下に整理する。
| 観点 | ECS | EKS |
|---|---|---|
| 学習コスト | 低い | 高い (Kubernetes) |
| エコシステム | AWS 固有 | Kubernetes 標準 |
| ポータビリティ | AWS のみ | マルチクラウド |
| 推奨 | AWS に閉じたプロジェクト | K8s の知識があるチーム |
デプロイ
新しいイメージを積んだタスク定義リビジョンを登録し、サービスを更新するのが基本の流れになる。
# CDK の L3 コンストラクト (ApplicationLoadBalancedFargateService 等) でまとめて構築・更新
cdk deploy
# 既に IaC で定義済みなら、タスク定義リビジョンを指定してサービスだけ更新
aws ecs update-service --cluster my-cluster --service my-api --task-definition my-api:12
最短経路として使われてきた AWS Copilot CLI は 2026 年 6 月 12 日にサポート終了となり、以降は機能追加もセキュリティ修正も提供されない (既存のデプロイ自体は動き続ける)。AWS が示している移行先は ECS Express Mode と CDK の L3 コンストラクトである。
ECS の関連書籍も参考になる。
この記事は役に立ちましたか?
関連用語
コンテナ
アプリケーションとその依存関係をパッケージ化し、環境に依存しない一貫した実行環境を提供する仮想化技術
ECR
AWS のマネージドコンテナレジストリで、Docker イメージを安全に保存 / 管理 / 配信する
Lambda
AWS のサーバーレスコンピューティングサービスで、コードをイベント駆動で実行する
Fargate
コンテナのためのサーバーレスコンピューティングエンジン
コンテナオーケストレーション
コンテナのデプロイ、スケーリング、ネットワーキングを自動管理するプラットフォーム
Kubernetes
コンテナのデプロイ、スケーリング、管理を自動化するオープンソースのオーケストレーションプラットフォーム
関連する記事
AWS 本の選び方 - 全体像 / 構築 / 設計 / 運用 / セキュリティの 5 視点
AWS を学ぶ技術書の選び方を「全体像 / 構築 / 設計 / 運用 / セキュリティ」の 5 視点で整理。公式ドキュメントと本の役割分担、資格対策書の位置づけまで、2026 年 8 月時点の定番書で AWS 独学のルートを解説します。
インフラ / クラウド本ガイド - AWS や Docker を本で学ぶ
クラウドインフラ、コンテナ、IaC を学べる技術書の選び方と学習順序を紹介。インフラ本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
Linux 本ガイド - コマンドライン / しくみ / 性能の 3 層で選ぶ技術書
Linux を学ぶ技術書の選び方を 3 層 (コマンドラインの操作 → カーネルのしくみ → 性能と運用) で整理。新しい Linux の教科書や [試して理解] Linux のしくみなどの定番書の使い分けと、学ぶ順番を解説します。