Amazon ECS のロードバランサーのヘルスチェックパラメータを最適化する - Amazon Elastic Container Service

Amazon ECS のロードバランサーのヘルスチェックパラメータを最適化する

ロードバランサーは、ロードバランサーに対して有効になっているアベイラビリティーゾーンの正常なターゲットにのみ、リクエストをルーティングします。各ターゲットはターゲットグループに登録されます。ロードバランサーは、ターゲットグループのヘルスチェック設定を使用して、各ターゲットの状態を確認します。ターゲットは、登録後に正常と見なされるためには、1 つのヘルスチェックに合格する必要があります。Amazon ECS はロードバランサーをモニタリングします。ロードバランサーは Amazon ECS コンテナに定期的にヘルスチェックを送信します。Amazon ECS エージェントはモニタリングし、ロードバランサーがコンテナの状態を報告するのを待ちます。この処理は、コンテナが正常状態にあると見なされる前に行われます。

Elastic Load Balancing の次の 2 つのヘルスチェックパラメータがデプロイ速度に影響します。

  • ヘルスチェック間隔: 個々のコンテナのヘルスチェック間のおおよその時間を秒単位で決定します。デフォルトでは、ロードバランサーは 30 秒ごとにチェックします。

    このパラメータは以下の名前です。

    • Elastic Load Balancing API の HealthCheckIntervalSeconds

    • Amazon EC2 コンソールでの [インターバル]

  • 正常性しきい値: 異常なコンテナが正常であると判断されるまでに必要なヘルスチェックの連続成功回数を決定します。デフォルトでは、ロードバランサーはターゲットコンテナが正常であると報告する前に 5 回のヘルスチェックに合格する必要があります。

    このパラメータは以下の名前です。

    • Elastic Load Balancing API の HealthyThresholdCount

    • Amazon EC2 コンソールの [正常なしきい値]

デフォルト設定では、コンテナの状態を判断するための合計時間は 2 分 30 秒 (30 seconds * 5 = 150 seconds) です。

サービスが 10 秒以内に起動して安定すれば、ヘルスチェックプロセスをスピードアップできます。プロセスをスピードアップするには、ヘルスチェックの回数とチェックの間隔を減らしてください。

  • HealthCheckIntervalSeconds (Elastic Load Balancing API 名) または [インターバル] (Amazon EC2 コンソール名): 5

  • HealthyThresholdCount (Elastic Load Balancing API 名) または [正常なしきい値] (Amazon EC2 コンソール名): 2

この設定では、ヘルスチェックの処理にデフォルトの 2 分 30 秒かかるのに対し、10 秒かかります。

Elastic Load Balancing ヘルスチェックパラメータの詳細については、「Elastic Load Balancing ユーザーガイド」の「ターゲットグループのヘルスチェック」を参照してください。