😊

ECSってこういうやつ

2025/02/01に公開

Daily Blogging42日目

ピーク時の処理に耐えられるようにECSのタスク数増やすことあるけど、
そもそも「タスク」って具体的にどういうやつなのか、新しく作られたタスクに対してルーティングがどう設定されるのかとかよくわかってない。

そもそもECSってなんだっけ

正式名称は、Elastic Container Service
Elasticと名がつくサービスは、状況に合わせて柔軟なスケーリングが可能であることを表している。
「Container Service」なので、いわゆるコンテナオーケストレーションサービスのことである

コンテナオーケストレーションは、アプリケーションを大規模に展開できるように、コンテナのネットワークと管理を自動化するプロセスです。コンテナ化は、アプリケーションのコードを、任意のインフラストラクチャで実行するために必要なすべてのファイルとライブラリにバンドルします。マイクロサービスアーキテクチャには、アプリケーションが拡大して複雑になるにつれて、数百、場合によっては数千のコンテナが含まれる場合があります。コンテナオーケストレーションツールは、プロビジョニングやスケジューリングからデプロイや削除までのライフサイクル全体を自動化することで、コンテナインフラストラクチャの管理を簡素化することを目的としています。組織は、追加のメンテナンスのオーバーヘッドを発生させることなく、大規模なコンテナ化の恩恵を受けることができます。

https://aws.amazon.com/jp/what-is/container-orchestration/

ECSの登場人物

登場人物は3人

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

タスク

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task_definitions.html

タスク定義を基に作成されたインスタンスのこと
タスク定義は、実行したいアプリケーションの設計図(ブループリント)みたいなやつで、JSON形式のテキストファイルで記述してく
色々パラメータを設定できるみたいだけど、例えばこういうやつを設定できる。

  • 起動タイプ
  • コンテナイメージ
  • CPU/メモリ要件
  • ネットワーキング
  • ログ記録設定

1つのタスクで複数のコンテナを指定できる

サービス

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs_services.html

タスクを管理してくれる
サービスでは実行するタスクの数などを指定することができるので、
それに合わせて実行中のタスクの数を制御する

ロードバランサーの設定もサービスにできる
実行されたタスクは、自動的にロードバランサーのターゲットグループに追加される

クラスター

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/clusters.html

クラスターは、ECS上で動作するコンテナのグループをまとめる単位
複数のサービスやタスクを管理し、インフラのリソース(EC2やFargate)を束ねる役割を持つ

参考

Discussion