LoginSignup
162
95

More than 1 year has passed since last update.

今さら聞けないAWS ECSとは?Fargateとは?

Last updated at Posted at 2023-02-22

この記事について

AWSにおけるコンテナオーケストレーションツールとして定番になっているECSとサーバレスでECSを稼働させるFargateについて、入門向けに説明します。
まだECSやFargateについて知らない、理解してない方がいればぜひご一読ください。

また別の記事にFargateを利用してWebサイトを構築する方法についても記載しておりますので、併せてご参照いただけると幸いです。

この記事のゴール

ECSとFargateが何かを理解する

ECSとは

  • AWSが提供するフルマネージドコンテナオーケストレーションサービス
  • オーケストレーション = 管理

image.png

オーケストレーションがある世界/ない世界

オーケストレーションがない世界(管理対象1つ)

image.png

オーケストレーションサービスがない世界(管理対象複数)

image.png

オーケストレーションがある世界

image.png

つまりECSとは

コンテナをいい感じに管理してくれるサービス

参考:AWSのオーケストレーションサービス

image.png

Fargateとは

  • ECSで利用可能なサーバレスコンテナ実行環境
  • ECSの基盤となるインスタンスの管理をオフロードする
  • つまり管理者はインスタンスの運用から解放される

image.png

コントロールプレーン/データプレーン

AWS(ECSやEKS)のコンテナサービスはコントロールプレーンとデータプレーンの2つで構成される。

image.png

データプレーンには2種類ある

image.png

ではデータプレーンはEC2とFargateどちらを利用するべきか? => 特別な理由がない限りはFargateを使うべし!

Fargateだと若干ランニングコストが高くなる、ただしインスタンス管理の運用コストが発生しない。
それに対してEC2だとランニングコストは安くなるが、インスタンス管理の運用コストが発生する。

運用コストを考慮するとEC2の方が安くなるわけではないので、運用コストがかからないFargateを利用した方が良い。

参考

FargateとEC2を比較した結果、FargateではなくEC2を剪定したケースもあります。
https://tech.uzabase.com/entry/2022/12/01/175423

本格的な検討をする際は優先度や料金シミュレーションをするべきだと思います。

ECSの構成要素

  • クラスター
  • タスク
  • タスク定義
  • サービス

image.png

クラスター

ただの箱

  • サービスとタスクを分離するための論理グループ
  • 実行環境やIAM権限の境界線

image.png

タスク

アプリケーションを実行するコンテナ群

  • アプリケーションの実行単位
  • 1つ以上のコンテナから構成される
  • (同じタスクのコンテナは同じホスト上で稼働する)

image.png

タスク定義

タスクの金型

  • タスクを構成するテンプレート
  • アプリケーションを構成する1つ以上のコンテナを定義する
  • JSON形式で記述される

image.png

サービス

タスクの管理人

  • 起動タイプを指定(Fargate or EC2)
  • タスク実行数を定義
  • タスク数を維持
  • ELBと連携

image.png

ECSにおけるコンテナの実行方法

ECSにおいてコンテナを実行させる方法は2つある。

方法1. タスクから直接実行

  • コンテナが終了したら、タスクも終了
  • バッチ処理などにて利用する

方法2. サービスから実行

  • 指定したタスク数を維持する
  • ELBなどの他サービスとの連携が可能
  • Webアプリケーションなどの常時起動処理にて利用する

ECSで稼働するアプリケーションの更新方法

タスク定義の新しいリビジョンを作成して、サービスにてリビジョンの指定を更新する

更新前
image.png

更新後(サービスが参照するタスク定義のリビジョンが更新される)
image.png

まとめ

  • ECSとは
    • AWSが提供するフルマネージドコンテナオーケストレーションサービス
    • オーケストレーション = 管理
    • コンテナをいい感じに管理してくれるサービス
  • Fargateとは
    • ECSで利用可能なサーバレスコンテナ実行環境
    • ECSの基盤となるインスタンスの管理をオフロードする
    • 管理者はインスタンスの運用から解放される
  • ECSの構成要素
    • クラスター = ただの箱
    • タスク = アプリケーションを実行するコンテナ群
    • タスク定義 = タスクの金型
    • サービス = タスクの管理人
162
95
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
162
95