AWS Fargateを見てください。ECSクラスターのEC2インスタンスを起動することなく、Dockerコンテナーを実行できます。タスク(またはサービス)をスケジュールするだけで、それぞれが独自のIPアドレスを取得し、お互いに通信できます。
AWS Service Discoveryを使用して、タスクのIPアドレスの登録と検索を容易にすることもできます。
ところで、デフォルトのFargate同時実行制限は20タスク/サービスです-それらの100が必要な場合は、サービス制限増加サポートチケットを上げる必要があります。
処理は160以上のコンテナーを並列に実行するため、200の同時タスクに引き上げられました。すべて、Fargateで管理する単一のEC2なしで実行されます。
更新-100コンテナーを起動する方法
Fargateでそれを行う方法をお話しします。CI/ CDパイプラインでコンテナイメージを作成し、ECRにアップロードします。ソースの一部はCloudFormation(CFN)テンプレートでもあり、パイプラインのDeploymentステージで、すべてのコンテナーパラメーターを使用してECS TaskDefinitionを作成するCFNスタックを作成/更新します。
次に、Pythonで記述され、CloudWatchイベント(cronのようなスケジューラー)によってトリガーされるスケジューラージョブを取得します。このジョブは、TaskDefinition ARNを検索し、その単一のTaskDefから160以上のタスクを実行します。各タスクに追加のパラメーターを与えるか、いくつかの設定などをオーバーライドできます。そうでない場合は、スピンアップしてください。
以前はEC2 / ECSを使用しており、最初に追加の手順を実行する必要がありました。まず、ECS AutoScalingグループを数十のノードにスケールアウトしてワークロードをサポートし、最後にそれを0にスケールダウンします。それ以外は同じです。 FargateまたはEC2 / ECSで実行します。
それが役に立てば幸い:)