3
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?

ECS・Fargate・EC2・ECRの違いを役割で整理する

3
Posted at

コンテナはどこで動くのか?

コンテナは単体で動くものではありません。
本質は「隔離されたプロセス」であり、必ずOSの上で実行されます。

つまり、コンテナを動かすには 実行基盤となるマシン(物理 or 仮想サーバー) が必要です。

クラウドでは、この実行基盤をサービスとして利用します。
AWSの場合は:

  • Amazon EC2(サーバーを自分で管理)
  • AWS Fargate(実行基盤の管理をAWS側に任せる)

どちらも裏側ではマシンが存在しており、違いは「誰が管理するか」です。

この前提を押さえると、ECSやFargateの役割が整理しやすくなります。

ECSとは(管理レイヤー)

Amazon ECS は、コンテナを管理するためのサービスです。

ECS自体がコンテナを直接動かすわけではなく、次のような役割を担います。

  • どのコンテナを動かすか(タスク定義)
  • いくつ動かすか(スケーリング)
  • どこで動かすか(EC2 or Fargate)
  • 障害時にどう復旧するか

つまりECSは、コンテナの“実行場所”ではなく、コンテナの状態をコントロールする司令塔です。

実際に動かす基盤はEC2やFargateですが、それらを統括して「望ましい状態を保つ」のがECSの役割です。

実行基盤の違い(EC2 / Fargate)

コンテナを実際に動かす基盤には、主に次の2つがあります。

  • Amazon EC2
  • AWS Fargate

違いはシンプルで、サーバーを誰が管理するかです。

EC2の場合

  • 仮想サーバーを自分で用意
  • OSやパッチ管理も自分で行う
  • インスタンスタイプを自由に選べる

柔軟性は高いですが、運用責任も大きくなります。

Fargateの場合

  • サーバーを意識しない
  • CPU・メモリを指定するだけで実行
  • OS管理は不要

インフラ管理を抽象化し、コンテナ実行に集中できます。

ECRとは(保管場所)

Amazon ECR は、コンテナイメージを保存するためのレジストリサービスです。

Dockerイメージをビルドしたあと、

  • 開発環境からECRへ push
  • ECS(EC2 / Fargate)がECRから pull
  • 取得したイメージを実行

という流れになります。

ECRはコンテナを動かすサービスではなく、あくまで イメージの保管場所(倉庫) です。

実行はEC2やFargate、管理はECS、その元になる“設計図”を置いておくのがECRの役割です。

まとめ

ECSはコンテナの状態を管理する司令塔であり、EC2やFargateは実際にコンテナを動かす実行基盤です。
ECRはその元になるイメージを保管する場所であり、これらを「管理・実行・保管」というレイヤーで捉えると関係性が整理できます。

3
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
3
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?