Amazon ECS サービスのスロットルロジック - Amazon Elastic Container Service

Amazon ECS サービスのスロットルロジック

Amazon ECS サービススケジューラには、サービスタスクが繰り返し起動に失敗した場合にタスクを起動する頻度を調整するロジックがあります。

サービスのタスクが繰り返し RUNNING 状態への遷移に失敗 (PENDING から直接 STOPPED ステータスに進行) する場合、その後の再起動の試行間隔は最大 27 分まで段階的に増加します。この最大期間は将来変更される可能性があります。この動作により、失敗しているタスクが Amazon ECS クラスターのリソースまたは Fargate のインフラストラクチャのコストに与える影響が軽減されます。サービスによって調整ロジックが開始されると、次のサービスイベントメッセージが表示されます。

(service service-name) is unable to consistently start tasks successfully.

Amazon ECS は、失敗したサービスの再試行を停止することはありません。また、再起動間隔を増やす以外に変更を加えようとすることもありません。サービスの調整ロジックにはユーザーが調整できるパラメータは用意されていません。

新しいタスク定義を使用するようにサービスを更新する場合、サービスは即時通常の調整されていない状態に戻ります。詳細については、「コンソールを使用した Amazon ECS サービスの更新」を参照してください。

このロジックを開始する一般的な原因を以下に示します。この問題に対処するには、手動で次のアクションを実行することをお勧めします。

重要

RUNNING 状態になった後で停止されたタスクは、調整ロジックまたは関連サービスイベントメッセージを開始しません。例えば、サービスの Elastic Load Balancing ヘルスチェックに失敗すると、異常を示すフラグがタスクに設定され、Amazon ECS が登録を解除して、タスクを停止するとします。この時点では、タスクはスロットリングされていません。タスクのコンテナコマンドでゼロ以外の終了コードで即時終了した場合でも、タスクは既に RUNNING 状態に移行しています。コマンドのエラーが原因で即時失敗したタスクは、スロットリングやサービスイベントメッセージを生じさせません。