Classic Load Balancer のインスタンスのヘルスチェック - ELB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Classic Load Balancer のインスタンスのヘルスチェック

Classic Load Balancer は、登録されたインスタンスのステータスをテストするため、定期的にリクエストを送信します。これらのテストは、ヘルスチェックと呼ばれます。ヘルスチェック時に正常なインスタンスのステータスは、InService となります。ヘルスチェック時に異常があるインスタンスのステータスは、OutOfService となります。ロードバランサーは、インスタンスの状態が正常であるか異常であるかにかかわらず、すべての登録済みインスタンスでヘルスチェックを実行します。

ロードバランサーは、正常なインスタンスのみにリクエストをルーティングします。インスタンスが異常であると判断した場合、ロードバランサーはそのインスタンスへのリクエストのルーティングを中止します。インスタンスが正常な状態に戻ると、ロードバランサーはそのインスタンスへのリクエストのルーティングを再開します。

ロードバランサーは、ELB が提供するデフォルトのヘルスチェック設定またはユーザーが設定したヘルスチェック設定を使用して、登録されたインスタンスのヘルスをチェックします。

Auto Scaling グループに Classic Load Balancer を関連付けておくと、ロードバランサーのヘルスチェックを使用して、Auto Scaling グループ内のインスタンスのヘルス状態を判断することが可能になります。デフォルトでは、Auto Scaling グループ内の各インスタンスのヘルス状態が定期的に判断されます。詳細については、「Amazon EC2 Auto Scaling ユーザーガイド」の「Auto Scaling グループに ELB ヘルスチェックを追加する」を参照してください。 Amazon EC2 Auto Scaling

ヘルスチェックの設定

ヘルス設定には、登録されているインスタンスのヘルス状態を判断するめに、ロードバランサーが使用する情報が含まれています。次の表は、ヘルスチェック設定のフィールドの説明を示しています。

フィールド 説明

プロトコル

インスタンスと接続するために使用するプロトコル。

有効な値: TCPHTTPHTTPS、および SSL

コンソールのデフォルト: HTTP

CLI/API のデフォルト: TCP

ポート

インスタンスに接続するために使用するポート (protocol:port ペアなど)。ロードバランサーが、設定された応答タイムアウト期間内に指定されたポートでインスタンスに接続できない場合、インスタンスは異常と見なされます。

プロトコル: TCPHTTPHTTPS、および SSL

ポート範囲: 1~65535

コンソールのデフォルト: HTTP:80

CLI/API のデフォルト: TCP:80

パス

HTTP または HTTPS リクエストの送信先。

HTTP または HTTPS GET リクエストがポートとパス上のインスタンスに発行されます。ロードバランサーが応答タイムアウト時間内に "200 OK" 以外の応答を受信した場合、インスタンスは異常と見なされます。応答に本文が含まれている場合、アプリケーションは Content-Length ヘッダーを 0 以上の値に設定するか、値を "chunked" に設定した Transfer-Encoding を指定する必要があります。

デフォルト: /index.html

応答タイムアウト

ヘルスチェックからの応答を受け取るまで待つ時間 (秒単位)。

有効な値: 2 ~ 60

デフォルト: 5

HealthCheck 間隔

個々のインスタンスのヘルスチェックの間隔 (秒単位)。

有効な値: 5 ~ 300

デフォルト: 30

非正常のしきい値

EC2 インスタンスで異常が発生していることを宣言する前に連続して失敗したヘルスチェックの数。

有効な値: 2 ~ 10

デフォルト: 2

正常のしきい値

EC2 インスタンスが正常であることを宣言する前に連続して成功したヘルスチェックの数。

有効な値: 2 ~ 10

デフォルト: 10

ロードバランサーは、指定されたポート、プロトコル、およびパスを使用して、Interval 秒ごとに、登録された各インスタンスにヘルスチェックリクエストを送信します。各ヘルスチェックリクエストは独立しており、間隔全体で存続します。インスタンスが応答するまでにかかる時間は、次のヘルスチェックまでの間隔に影響を与えません。ヘルスチェックが UnhealthyThresholdCount 連続失敗数のしきい値を超えると、ロードバランサーはインスタンスをサービス停止中の状態にします。ヘルスチェックが HealthyThresholdCount 連続成功数のしきい値を超えると、ロードバランサーはインスタンスを実行中の状態に戻します。

インスタンスがヘルスチェックの間隔内に 200 応答コードを返せば、HTTP/HTTPS ヘルスチェックは正常です。TCP 接続が成功すれば、TCP ヘルスチェックは正常です。SSL ハンドシェイクが成功すれば、SSL ヘルスチェックは正常です。

ヘルスチェックの設定の更新

ロードバランサーのヘルスチェックの設定はいつでも更新できます。

コンソールを使用してロードバランサーのヘルスチェックの設定を更新するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ロードバランシング] で [ロードバランサー] を選択します。

  3. ロードバランサーの名前を選択して、その詳細ページを開きます。

  4. [ヘルスチェック] タブで、[編集] を選択します。

  5. [ヘルスチェックの編集の設定] ページの [ヘルス チェック] で、必要に応じて設定を更新します。

  6. 選択した内容でよければ、[変更内容の保存] を選択します。

を使用してロードバランサーのヘルスチェック設定を更新するには AWS CLI

次の configure-health-check コマンドを使用します。

aws elb configure-health-check --load-balancer-name my-load-balancer --health-check Target=HTTP:80/path,Interval=30,UnhealthyThreshold=2,HealthyThreshold=2,Timeout=3

インスタンスのヘルスの確認

登録済みインスタンスのヘルスステータスをチェックできます。

コンソールを使用してインスタンスのヘルスステータスをチェックするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインの [ロードバランシング] で [ロードバランサー] を選択します。

  3. ロードバランサーの名前を選択して、その詳細ページを開きます。

  4. [詳細] セクションの [ステータス] は、サービス中のインスタンスの数を示します。

  5. [ターゲットインスタンス] タブの [ターゲットインスタンス] テーブル内の [ヘルスステータス] 列は、登録されている各インスタンスの特定のステータスを示します。

を使用してインスタンスのヘルスステータスを確認するには AWS CLI

次の describe-instance-health コマンドを使用します。

aws elb describe-instance-health --load-balancer-name my-load-balancer

ヘルスチェックのトラブルシューティング

登録済みインスタンスが、いくつかの理由からロードバランサーのヘルスチェックに失敗する場合があります。ヘルスチェックの失敗理由として最も多いのは、EC2 インスタンスがロードバランサーへの接続を閉じている場合や、EC2 インスタンスからの応答がタイムアウトになった場合です。考えられる原因、および失敗したヘルスチェックの問題を解決するための手順については、「Classic Load Balancer のトラブルシューティング: ヘルスチェック」を参照してください。