導入
「Dockerで作ったコンテナをAWSで動かしたい」というとき、選択肢が複数あって混乱しがちです。ECS/EKS/Fargateの関係を整理すれば、この分野はシンプルに理解できます。
説明
コンテナをAWS上で動かす仕組みは、「オーケストレーター(何で管理するか)」 と 「起動タイプ(どこで動かすか)」 の2軸で整理できます。
| オーケストレーター | 特徴 |
|---|---|
| ECS(Elastic Container Service) | AWS独自のコンテナオーケストレーションサービス。シンプルでAWSに統合しやすい |
| EKS(Elastic Kubernetes Service) | マネージドKubernetes。Kubernetesの知見やマルチクラウド前提の構成に向く |
flowchart TD
ORC["オーケストレーター<br/>(ECS または EKS)"] --> T{"起動タイプ"}
T -->|EC2起動タイプ| EC2["自分でEC2クラスターを管理"]
T -->|Fargate| FG["サーバーレス、インフラ管理不要"]
REG["ECR<br/>(コンテナイメージの保管庫)"] -.-> ORC
起動タイプは「コンテナをどこで動かすか」の選択です。
- EC2起動タイプ:自分でEC2のクラスターを管理し、そこにコンテナを配置する。インスタンスの制御が必要な場合に向く
- Fargate:サーバーレスなコンテナ実行環境。EC2の管理が不要で、コンテナ単位の従量課金
ECR(Elastic Container Registry) は、DockerイメージをAWS内に保管するプライベートリポジトリで、ECS/EKSどちらからも利用します。
読んでみよう
「コンテナ運用でインフラ管理をなくしたい」→Fargate、「Kubernetesの知見をそのまま使いたい/マルチクラウドを見据える」→EKS、「AWSに閉じてシンプルに構築したい」→ECS、という組み合わせで覚えておくと迷いません。