ELB に登録されていて、正常に機能している Amazon ECS タスクが異常とマークされて置き換えられるのはなぜですか?

所要時間1分
0

Elastic Load Balancing (ELB) が、正常に機能している Amazon Elastic Container Service (Amazon ECS) タスクに対して、異常であるというフラグを繰り返し付けています。これらの誤ってフラグが付けられたタスクは停止され、代わりに新しいタスクが開始されます。

簡単な説明

一部の Amazon ECS タスクは、意図したとおりに機能しているときでも、複数の依存関係を持っているためブートストラッププロセスに時間がかかるので、ELB ヘルスチェックの猶予期間を超えることがあります。Amazon ECS タスクが猶予期間内に ELB ヘルスチェックに応答しない場合、異常のフラグが付けられます。サービスのヘルスチェックの猶予期間を延長するには、次の手順を実行してください。

ECS タスクが Application Load Balancer のヘルスチェックに失敗した場合のトラブルシューティングについては、「Amazon EC2 起動タイプを使用して Amazon ECS タスクを実行して Amazon ECS の Application Load Balancer のヘルスチェックに合格させるにはどうすればいいですか?」を参照してください。

解決方法

猶予期間が設定されていない場合、サービススケジューラは、異常とマークされたターゲットを即座に置き換えます。Amazon ECS タスクがプロセスを完了してからヘルスチェックに合格するまでの時間制限を長くできるように、猶予期間を変更してください。

注: 猶予期間を変更するには、以前のバージョンの ECS コンソールを使用してください。以前のバージョンのコンソールに変更するには、ナビゲーションペインの上部にある [新しい ECS エクスペリエンス] をオフに切り替えます。次の手順を実行します。

  1. AWS マネジメントコンソールを開きます。
  2. ナビゲーションバーで [サービス] を選択し、一覧から [ECS を選択します。
  3. [サービス名] リストからサービスを選択します。
  4. [更新] を選択します。
  5. [次のステップ] を選択します。
  6. [Step 2: Configure network] ページで、[ヘルスチェックの猶予期間] をサービスに適した期間に変更します。最大期間は 2,147,483,647 秒です。
    注意: 実際に正常でない Amazon ECS タスクに対する置換が遅れないようにするため、最も時間のかかるタスクに必要な猶予期間を慎重に見積もってください。猶予期間を設定する際には、ブートストラップ時間やコンテナイメージをプルする時間など、関連するすべての要素を考慮してください。
  7. [次のステップ] を選択し、[サービスの更新] を選択します。

猶予期間を延長する方法としては、以下のものもあります。

  • AWS CloudFormationAWS::ECS::Service リソースで定義されている HealthCheckGracePeriodSeconds パラメータを使用します。
  • AWS コマンドラインインターフェイス (AWS CLI) で UpdateService コマンドを、--health-check-grace-period-seconds に大きな値を指定して実行します。

関連情報

Amazon ECS に ELB ヘルスチェックの猶予期間を追加

コメントはありません