

# Amazon ECS のロードバランサーのヘルスチェックパラメータを最適化する
<a name="load-balancer-healthcheck"></a>

ロードバランサーは、ロードバランサーに対して有効になっているアベイラビリティーゾーンの正常なターゲットにのみ、リクエストをルーティングします。各ターゲットはターゲットグループに登録されます。ロードバランサーは、ターゲットグループのヘルスチェック設定を使用して、各ターゲットの状態を確認します。ターゲットは、登録後に正常と見なされるためには、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 コンソールの **[正常なしきい値]**

**重要:** 新しく登録されたターゲットの場合、正常なしきい値数の設定に関係なく、ターゲットを正常とみなすために必要なヘルスチェックは 1 回だけです。正常なしきい値数は、ターゲットが異常な状態から正常な状態に戻っている場合にのみ適用されます。

デフォルト設定では、ターゲットが異常な状態になった後回復した場合、コンテナの状態を判断するための合計時間は 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 ユーザーガイド*」の「[ターゲットグループのヘルスチェック](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)」を参照してください。