ec2 インスタンスで実行されているプロセスの数に基づいてスケーリングする

ec2 インスタンスで実行されているプロセスの数に基づいてスケーリングする

複数の Python スクリプトを ec2 で並行して実行するユースケースがあります。スクリプトは SQS キューを読み取り、S3 からのダウンロード、ファイルの解析、分割、処理、データベースの更新などの操作を実行します。スクリプトは 5 分ごとに実行されます。SQS が空の場合、スクリプトは何もせずに終了します。SQS にメッセージがある場合は、スクリプトによって処理され、1 時間以上実行される場合があります。そのため、実行期間は異なります。

自動スケーリングでは、平均 CPU 使用率に基づいてスケーリングするオプションがありますが、CPU が使用されるランダム性により、スケーリングのタイミングを示す良い指標にはなりません (たとえば、Python スクリプトはディスク IO 操作中に CPU を多く使用します。ただし、他の場合にはメモリは使用しますが CPU は使用しません)。

ec2 インスタンスで実行されている Python プロセスの数に基づいてスケーリングする方法はありますか? 並列呼び出しの数が 10 に達すると、インスタンスがスケールアップするようになりますか?

さらに、スケールダウンを指定する方法はありますか?ないec2 インスタンス内で少なくとも 1 つの Python プロセスが実行されている場合 (その 1 つのプロセスが CPU の 5% 未満しか使用していない場合であっても)、スケールダウンによって進行中のプロセスが終了するため、スケールダウンが Python プロセスの完了後に発生する方が望ましいため、スケールダウンが発生します。

写真にはロードバランサーがありません。

関連情報