フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

AWSのFargateを勉強した結果わかったこと

fagate勉強にあたり

Fargateのアーキテクチャについて

f:id:lirlia:20191013185930p:plain

Fargateは上記の4つの要素で構成されている。

  • コンテナ
  • タスク
  • サービス
  • クラスタ

通常のDockerを代表とするコンテナは、コンテナ+オーケストレーションツールで動作するが(k8sは除く)Fargateではこれら4つの仕組みでコンテナのオーケストレーションを実現している。

それぞれの用途は以下の通り。

名前 役割 設定内容
コンテナ定義 コンテナ自体の設定を管理する 環境変数/イメージ/ポート/ボリュームなど
タスク定義 アプリの設計図 コンテナに割り当てるCPU/メモリ/IAM role/Fargate or ECS
サービス定義 タスク定義で指定したインスタンスをクラスタで実行して維持する 必要なタスクの数/セキュリティグループ/ロードバランサ
クラスタ VPC/サブネット

それぞれの要素の関係は以下の通り

  • コンテナ(N)ー(1)タスク(N)ー(1)サービス(N)ー(1)クラスタ

※コンテナN台に対してタスクが1つ結びつき、タスクN個について1サービスが結びつき…という感じ

所感

  • EC2を必要とせずコンテナを管理できる点が魅力
  • k8sの概念に近いように感じるが(宣言的で自分から戻る)、AWS独自の仕組み感が強い
  • AWSの他の仕組みCloudwatchやlog、LB、セキュリティなどとうまいこと繋がるのでコンテナを便利に使うプラットフォームとしては良い