0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS ECS / EKS / EC2 / Fargate の関係まとめ

0
Posted at

AWS ECS / EKS / EC2 / Fargate の違いと関係を整理する【2026年5月時点】

はじめに

AWSでコンテナを扱おうとすると、ECS、EKS、EC2、Fargate といったサービス名が次々とでてきます。
「どれがなんなんだっけ?」と混乱したので、AIといっしょに2つの軸で整理してみました。
自分の備忘録として残しておきます。


まず押さえるべきポイント:2つの軸がある

コンテナをAWS上で動かすには、以下の2つの選択が必要です。

選択肢 決めること
オーケストレーション ECS or EKS コンテナをどう管理するか
コンピューティング ECS or Fargate コンテナをどこで動かすか

この2つは別々のレイヤーであり、組み合わせて使います。

つまり、以下の4つの組み合わせが存在します。

EC2(自分で管理) Fargate (AWS任せ)
ECS(AWS独自) ECS on EC2 ECS on Fargate
EKS(Kubernetes) EKS on EC2 EKS on Fargate

各サービスの役割

オーケストレーション層:ECS と EKS

どちらも「コンテナの管理人」です。
コンテナの起動・停止・スケーリング・ヘルスチェックなどを担います。

ECS EKS
ベース AWS独自の仕組み オープンソースのKubernetes
学習コスト 低い 高い(Kubernetesの知識が必要)
エコシステム AWSサービスとの統合が中心 Helm, Istio, ArgoCD 等が使える
マルチクラウド AWSのみ 他クラウドのKubernetesと互換性あり
向いてる規模 小〜中規模 中〜大規模・複雑なマイクロサービス

ECS(Elastic Container Service)

  • AWS独自のコンテナオーケストレーションサービス
  • コンテナの起動・停止・スケーリング・ヘルスチェックを管理
  • 「クラスター」「サービス」「タスク」という単位で管理する
  • Kubernetesの知識がなくても使えるため、学習コストが比較的低い

EKS(Elastic Kubernetes Service)

  • オープンソースのKubernetesをAWS上で動かすマネージドサービス
  • Kubernetesエコシステム(Helm, Istio, ArgoCD 等)をそのまま活用できる
  • 他のクラウド(GCP, Azure等)のKubernetesと互換性があり、マルチクラウド戦略に向いている
  • Kubernetes自体の学習コストが高く、ECSと比べて運用負荷も大きい

コンピューティング層:EC2とFargate

どちらも「コンテナの実行場所」です。違いは、サーバーを誰が管理するかです。

ECS Fargate
実態 仮想マシン(サーバーそのもの) サーバーレスコンピューティングエンジン
サーバー管理 自分で行う(OSバッチ, キャパシティ管理等) 不備(AWSが全て担当)
柔軟性 高い(GPU, カーネル設定など自由) 制限あり(GPU非対応など)
OS/ランタイム更新 自分で適用 AWSが自動で行う

EC2(Elastic Compute Cloud)

  • 仮想マシン(サーバーそのもの)を提供するサービス
  • GPUの利用や特殊なカーネル設定など、完全にコントロールできる
  • その代わり、OSパッチの適用やセキュリティ更新、キャパシティ管理は全て自分で行う必要がある

Fargate

  • サーバーレスコンピューティングエンジン
  • サーバーの存在を意識する必要がなく、管理も一切不要
  • タスクが動いている間だけ課金される(使った分だけ)
  • OSやランタイムの更新はAWSが自動で行ってくれる

ECS on EC2 と ECS on Fargate の違い

ECSを例に、コンピューティング層の違いを図で比較します。

ECS on EC2 の場合

EC2インスタンス(サーバー)を自分で用意し、その上でコンテナを動かします。
EC2内ではECSエージェントが常駐しており、ECSからの指示を受け取ってコンテナの起動・停止を行います。

  • EC2のOSアップデート、Dockerのインストール、キャパシティ管理はすべて自分で行う
  • サーバーの台数やスペックも自分で決める必要がある

ECS on Fargate の場合

サーバーの存在を意識する必要がありません。
ECSがタスクの起動を指示すると、Fargateが裏側でリソースを確保してコンテナを実行します。

  • サーバーの管理は一切不要
  • OSパッチやランタイム更新もAWSが自動で行う

比較表まとめ

観点 ECS on EC2 ECS on Fargate
サーバー管理 必要 不要
スケーリング EC2台数を自分で調整 タスク数を指定するだけ
OSパッチ適用 自分で行う AWSが自動で行う
コスト(単価) やすい EC2より高い
コスト(運用込み) 人件費がかかる 管理不要で総コストが下がりやすい

ECSの構成要素と多重度

ECSには複数の概念が階層的に存在します。
以下の図で、それぞれの関係と多重度を示します。

各要素の役割

概念 役割 多重度
クラスター サービスやタスクをまとめるグループ。開発者が作成する。 1クラスター → N個のサービス
サービス 「タスクを常にN個保持する」などの管理ルール。自動復旧やスケーリングを担う。 1サービス → 1つのタスク定義、N個のタスク
タスク定義 コンテナの設計図。イメージ、CPU、メモリ、環境変数などを定義する。 1タスク定義 → N個のタスクが生成
タスク コンテナの実行単位。タスク定義をもとに起動される。 1タスク → 1個以上のコンテナ
コンテナ アプリが実際に動いているプロセス。 -
ECR コンテナイメージの保管庫。タスク起動時にFargateがpullする。 -

定食屋で例えると

イメージしやすいように定食屋で例えてみます。

概念 定食屋の例え
クラスター 店舗:「渋谷店」「新宿店」のように管理単位を分ける
サービス 店長の指示:「この定食を常に1セット提供し続けて。なくなったらすぐ作り直して
タスク定義 メニュー表:「この定食はご飯・味噌汁・主菜のセット」
タスク お盆に載った定食1セット
コンテナ ご飯、味噌汁、主菜(お盆の上のそれぞれの品)
ECR 食材倉庫(下ごしらえ済みの食材キットが保管されている。取りに来られたらそのまま渡す)

ECRとデプロイの流れ

コンテナイメージのビルドからデプロイまでの流れを示します。
ECR に保存されるのは コンテナイメージ(アプリのコード+動作環境をまとめたパッケージ)です。

ECR(Elastic Container Registry) はコンテナイメージのプライベート保管庫です。
自分からは何もせず、pullされたらイメージを返します。Docker HubのAWS版と考えるとわかりやすいです。

タスク定義は ECS が読み取る設計図です。
ECSがタスク定義の内容(image のECRリポジトリURL、CPU、メモリなど)をFargateに渡し、Fargateはその情報をもとにECRからコンテナイメージをpullしてコンテナを起動します。


ECS vs EKS の用語対応

Kubernetes を知っている方向けに、ECS との用語の対応を示します。

Kubernetes(EKS) ECS 意味
Cluster クラスター サービスやタスクをまとめるグループ
Pod タスク コンテナをグループ化した実行単位
Deployment サービス Pod/タスクの数や更新を管理
Container コンテナ アプリの実体
Container Registry ECR イメージ保管庫
Node EC2/Fargate コンテナの実行場所

選定ガイド

ECS vs EKS

観点 ECS EKS
利用クラウド AWSのみ マルチクラウドも視野に入る
シンプルさ シンプル 学習コスト高い
エコシステム AWS寄り Kubernetes 資産を活用可能
向いている規模 小〜中規模 大規模・複雑なマイクロサービス

EC2 vs Fargate(機能面)

観点 EC2 Fargate
GPU 対応 非対応
OS/カーネル設定 自由 制限あり
サーバー管理 必要 不要
スケーリング 自分で台数管理 タスク数指定のみ

EC2 vs Fargate(コスト面)

EC2 Fargate
課金単位 インスタンス(サーバー)単位 タスク(vCPU + メモリ)単位
課金タイミング 起動中ずっと(未使用でも課金) タスクが動いている間だけ
単価 安い EC2より高い
サーバー管理コスト あり(人件費がかかる) なし
状況 安くなる傾向
24時間365日常時稼働 EC2
大量タスクを常時稼働 EC2
負荷が変動する・スパイクがある Fargate
短時間だけ動く処理 Fargate
サーバー管理の人件費も含めた総コスト Fargate

まとめ

  • ECS/ECKは「コンテナをどう管理するか」を決めるオーケストレーション層
  • EC2/Fargateは「コンテナをどこで動かすか」を決めるコンピューティング層
  • この2つは別々のレイヤーであり、組み合わせて使う

まずは「ECS on Fargate」が最もシンプルな構成なので、ここから始めて、要件に応じて EKS や EC2 を検討するのがよさそうに思いました。


参考サイト

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?