Amazon ECS 用の EC2 キャパシティのアーキテクト - Amazon Elastic Container Service

Amazon ECS 用の EC2 キャパシティのアーキテクト

料金を最適化する必要がある大規模なワークロードには EC2 キャパシティを使用します。

EC2 を使用してタスク定義とサービスをモデル化する方法を検討する際には、一緒に実行する必要があるプロセスはどれか、また、各コンポーネントをどのようにスケールするかについて検討することをお勧めします。

例えば、以下のコンポーネントで構成されるアプリケーションがあるとします。

  • ウェブページに情報を表示するフロントエンドサービス

  • フロントエンドサービスに API を提供するバックエンドサービス

  • データストア

この例では、共通の目的で使用されるコンテナをまとめてグループ化するタスク定義を作成します。異なるコンポーネントは、複数のタスク定義に分割します。以下の例のクラスターでは、3 つのコンテナインスタンスにより、3 つのフロントエンドサービスコンテナ、2 つのバックエンドサービスコンテナ、さらに 1 つのデータストアサービスコンテナを実行しています。

一緒に実行する必要のあるリンクされたコンテナなど、関連するコンテナをタスク定義にグループ化できます。例えば、フロントエンドサービスに追加するログストリーミングコンテナは、同じタスク定義に含めることができます。

タスク定義を作成したら、それらの定義からサービスを作成して、使用可能なタスクの必要数を維持できます。詳細については、「Amazon ECS のローリング更新デプロイの作成」を参照してください。サービスでは、コンテナを ELB ロードバランサーに関連付けることができます。詳細については、「ロードバランサーを使用して Amazon ECS サービストラフィックを分散する」を参照してください。アプリケーションの要件が変更された際には、サービスを更新してタスクの必要数を増減できます。あるいは、サービスを更新して、タスクに新しいバージョンのコンテナをデプロイすることも可能です。詳細については、「Amazon ECS サービスを更新する」を参照してください。

3 つのインスタンスを使用するアプリケーションアーキテクチャの例。インスタンス 1 には、フロントエンドサービスコンテナとデータベースサービスコンテナが含まれています。インスタンス 2 とインスタンス 3 には、フロントエンドサービスコンテナとバックエンドサービスコンテナが含まれています。