アプリケーションのアーキテクチャ - Amazon ECS

アプリケーションのアーキテクチャ

コンテナを実行するには、以下の 2 つのモデルのいずれかに従います。

  • Fargate 起動タイプ - これはサーバーレスの従量制料金オプションです。インフラストラクチャを管理することなく、コンテナを実行できます。

  • EC2 起動タイプ - クラスターに EC2 インスタンスを設定してデプロイし、コンテナを実行します。

Amazon ECS でのアプリケーションの設計方法は、複数の要因に応じて変化しますが、主な相違点となるのは使用している起動タイプです。設計プロセスでは、以下のガイダンスを参考にしてください。

Fargate 起動タイプを使用する場合

Fargate 起動タイプは、次のワークロードに適しています:

  • 運用上で低いオーバーヘッドを必要とする大規模なワークロード

  • 時折バーストが発生する小さなワークロード

  • 小さなワークロード

  • バッチワークロード

AWS Fargate を使用して、Amazon ECS 上で実行するアプリケーションを設計する場合、複数のコンテナを単一のタスク定義に配置するか、あるいは複数のタスク定義に別々に配置するか、そのどちらかから選択する必要があります。

以下のような要件がある場合には、1 つのタスク定義にコンテナを配置することをお勧めします。

  • 各コンテナが同じライフサイクルを共有している (つまり、起動と終了が同時に行われる)。

  • 実行基盤となるホストが同じになるようにコンテナを実行する (つまり、あるコンテナが、localhost ポート上の別のコンテナを参照する) 必要がある。

  • コンテナがリソースを共有する必要がある。

  • コンテナでデータボリュームを共有している。

上記の要件がない場合は、複数のタスク定義でコンテナを個別にデプロイすることをお勧めします。これにより、スケーリング、プロビジョニング、プロビジョニング解除を個別に行えるようになります。