Amazon ECSでコンテナ運用入門|Fargate・タスク定義・ALB連携の実践

現場実践|AWSコンテナ運用
Amazon ECSでコンテナ運用入門
Fargate・タスク定義・ALB連携の実践
「DockerコンテナをAWSで動かしたい」——ECS(Elastic Container Service)を使ってFargate上でコンテナを運用するための基本設定と実践的な構成を解説します。
💡 Amazon ECSはAWS上でコンテナを動かすためのオーケストレーションサービス。Fargateを使えばサーバーレスでコンテナを実行でき、EC2の管理が不要になります。
1. ECSの基本構成
タスク定義
コンテナの設定(Dockerイメージ・CPU・メモリ・環境変数・ポートマッピング)をJSON形式で定義。
サービス
タスクを指定した数だけ常時起動・維持する仕組み。ALBと連携してロードバランシングを実現。
Fargate(サーバーレス)
EC2インスタンスを管理せずにコンテナを実行できる起動タイプ。インフラ管理コストを大幅削減。
ECR(Elastic Container Registry)
AWSのDockerイメージレジストリ。ECSから安全にイメージをプルできる。
2. ECS on Fargateの構成例
| コンポーネント | 役割 | 設定のポイント |
|---|---|---|
| VPC・サブネット | ネットワーク基盤 | プライベートサブネットにFargateタスクを配置 |
| ALB | ロードバランサー | パブリックサブネットに配置してFargateタスクに転送 |
| ECS Service | タスク管理 | desired_count=2以上に設定してマルチAZ冗長化 |
| ECR | イメージ管理 | ライフサイクルポリシーで古いイメージを自動削除 |
3. TerraformでECS環境を構築する
- aws_ecs_cluster:ECSクラスターを作成するリソース
- aws_ecs_task_definition:タスク定義をJSON形式で記述。container_definitionsに詳細設定を記載
- aws_ecs_service:タスクの起動数・ALBターゲットグループとの紐付けを設定
- aws_appautoscaling_target・policy:CPU使用率に基づくオートスケーリングを設定
4. ECSのよくあるトラブルと対処法
Q. タスクが起動後すぐにStoppedになる
対処法:タスクのログをCloudWatch Logsで確認する。アプリケーションの起動エラー・環境変数の設定ミス・ヘルスチェック失敗が主な原因。
Q. Fargateタスクがインターネットにアクセスできない
対処法:プライベートサブネットのFargateからインターネットアクセスにはNATゲートウェイが必要。またはVPCエンドポイントを設定してAWSサービスに直接アクセスする。
📌 この記事のポイント
- ECS on Fargateを使うとEC2管理なしにコンテナを運用できる
- ALB+ECS Service+マルチAZの組み合わせが高可用性コンテナ運用の基本構成
- タスクが起動しない場合はCloudWatch Logsでコンテナのログを確認する
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




