Classic Load Balancer(CLB)は、バックエンドサーバーの可用性をチェックするためにヘルスチェックを実行します。ヘルスチェック機能を有効にした後、バックエンドサーバーが異常と判断された場合、CLB はバックエンドサーバーへのリクエストの転送を停止し、後続のリクエストを正常なバックエンドサーバーに分散します。異常なバックエンドサーバーが回復した後、CLB はリクエストをバックエンドサーバーに分散します。ヘルスチェック機能は、異常なバックエンドサーバーによって引き起こされる単一障害点(SPOF)を防ぎ、サービスの可用性を向上させます。
ヘルスチェックを設定する前に、CLB ヘルスチェックのしくみを理解しておくことをお勧めします。
ヘルスチェックの設定
リスナーを追加するときに、ヘルスチェック機能を設定できます。ほとんどの場合、デフォルトのヘルスチェック設定を使用できます。
CLB コンソールにログオンします。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、[CLB] > [インスタンス] を選択します。インスタンス ページで、管理する CLB インスタンスを見つけ、インスタンスの ID をクリックします。
インスタンスの詳細ページで、[リスナー] タブをクリックします。[リスナーの追加] をクリックするか、[リスナーの変更] 列の [アクション] をクリックします。
ヘルスチェック ステップに進むまで、ウィザードに従ってリスナーを設定します。ヘルスチェック機能はデフォルトで有効になっています。詳細設定 の横にある 改正 をクリックして、次のパラメーターを設定します。
パラメーター
手順
ヘルスチェックプロトコル
ヘルスチェックのプロトコルを選択します。リスナーのプロトコルが TCP の場合は、ヘルスチェックプロトコルを TCP または HTTP に設定します。リスナーのプロトコルが UDP の場合は、ヘルスチェックプロトコルを TCP、UDP、または HTTP に設定します。リスナーのプロトコルが HTTP または HTTPS の場合は、ヘルスチェックプロトコルを HTTP に設定します。
TCP ヘルスチェックはネットワーク層で実行されます。CLB は、SYN パケットを送信することにより、バックエンドサーバーのポートをプローブして、サーバーが正常かどうかを確認します。
UDP ヘルスチェックは、UDP パケットを送信することにより、サーバーが正常かどうかをプローブします。
HTTP ヘルスチェックは、ブラウザが Web ページにアクセスするのと同じ方法で実行されます。CLB は、HEAD または GET リクエストを送信することにより、バックエンドサーバーが正常かどうかを確認します。
ヘルスチェックメソッド
(HTTP ヘルスチェックの場合のみ)
HEAD メソッドと GET メソッドの両方をサポートしています。デフォルトでは HEAD メソッドが使用されます。
説明バックエンドサーバーが HEAD メソッドをサポートしていない場合、または HEAD メソッドが無効になっている場合は、GET メソッドを使用してください。
GET メソッドを使用し、応答サイズが 8 KB を超える場合、応答は切り捨てられます。ただし、これはヘルスチェックの結果には影響しません。
ヘルスチェックポート
ヘルスチェックに使用するバックエンドポートを選択します。デフォルトでは、バックエンドサーバーポートがプローブされます。
説明リスナーに関連付けられているサーバーグループ内のすべてのバックエンドサーバーが異なるポートを使用している場合は、ヘルスチェックのポートを指定する必要はありません。CLB は各バックエンドサーバーのポートを自動的にプローブします。
ヘルスチェックパス
(HTTP ヘルスチェックの場合のみ)
デフォルトでは、CLB がバックエンドサーバーで HTTP ヘルスチェックを実行する場合、CLB はバックエンドサーバーで設定されたデフォルトのホームページに HTTP リクエストを送信します。
デフォルトのホームページをヘルスチェックに使用したくない場合は、パスを指定できます。
ヘルスチェックには静的ページを使用することをお勧めします。
ヘルスチェックドメイン名 (HTTP ヘルスチェックの場合のみ)
ヘルスチェック設定でドメイン名が設定されている場合、CLB はヘルスチェックリクエストをアプリケーションサーバーに転送するときに、このドメイン名を
Hostヘッダーに追加します。ドメイン名が設定されていない場合、CLB はリクエストにHostヘッダーを含めません。一部のアプリケーションサーバーは、リクエストを受け入れる前に、リクエスト内の
Hostヘッダーを確認する必要があります。ヘルスチェックドメイン名が設定されておらず、ヘルスチェックリクエストにHostヘッダーが含まれていない場合、リクエストはアプリケーションサーバーによって拒否され、ヘルスチェックは失敗します。アプリケーションサーバーがリクエスト内のHostヘッダーを確認する必要がある場合は、ヘルスチェック機能が期待どおりに動作するように、ヘルスチェック設定でドメイン名を設定する必要があります。説明CLB は、転送ポリシーに設定された URL ではなく、リスナーに設定されたヘルスチェックパス(デフォルトではルートパス)に従ってヘルスチェックを実行します。同じドメイン名で異なる URL へのリクエストの転送ルールを設定しているが、リスナーのヘルスチェックパスを変更していない場合、バックエンドサーバーグループが予期せず異常と判断される可能性があります。転送ルールでのニーズに基づいて、ヘルスチェックパスを変更する必要があります。
正常な状態コード
(HTTP ヘルスチェックの場合のみ)
正常なバックエンドサーバーを示す HTTP 状態コードを選択します。
デフォルト値: http_2xx および http_3xx。
説明バックエンドサーバーが正常に動作しているにもかかわらず、CLB によって異常と判断された場合は、ヘルスチェック設定で http_4xx および http_5xx を通常の HTTP 状態コードとして指定することで、4XX または 5XX 状態コードを受信したために CLB がバックエンドサーバーを異常と判断するのを防ぐことができます。
ヘルスチェック応答タイムアウト
ヘルスチェック応答の最大タイムアウト期間を指定します。
バックエンドサーバーが指定されたタイムアウト期間内に応答しない場合、バックエンドサーバーは異常と判断されます。
ヘルスチェック間隔
2 つの連続したヘルスチェックの間隔を指定します。
クラスタ内のすべてのノードは、指定された間隔でバックエンドサーバーに対して独立して並行してヘルスチェックを実行します。ただし、ノードは異なる時点でバックエンドサーバーをプローブするため、単一サーバーがプローブされる頻度はヘルスチェック間隔に準拠していません。
正常しきい値
異常なバックエンドサーバーが正常と見なされるまでに連続してヘルスチェックに合格する必要がある回数を指定します。
異常しきい値
正常なバックエンドサーバーが異常と見なされるまでに連続してヘルスチェックに失敗する必要がある回数を指定します。
ヘルスチェックリクエスト および ヘルスチェック結果 (UDP ヘルスチェックの場合のみ)
UDP リスナーのヘルスチェックを設定する場合、[ヘルスチェックリクエスト] フィールドにリクエストコンテンツ ( youraccountID など) を入力し、[ヘルスチェック結果] フィールドに期待される応答 ( slb123 など) を入力できます。
この操作により、ヘルスチェック応答ロジックがバックエンドサーバーに追加されます。たとえば、youraccountID リクエストを受信すると Slb123 が返されます。
CLB がバックエンドサーバーから期待される応答を受信した場合、バックエンドサーバーは正常と見なされます。そうでない場合、バックエンドサーバーは異常と見なされます。このメソッドを使用して、UDP ヘルスチェックの精度を向上させることができます。
[次へ] をクリックして、リスナー設定の次のステップに進みます。
ヘルスチェック情報の表示
CLB コンソールにログオンします。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
インスタンス ページで、管理する CLB インスタンスの ID をクリックします。
インスタンスの詳細ページで、[リスナー] タブをクリックして、リスナーのヘルスチェックステータスを表示します。
リスナーは、次のヘルスチェック状態になる可能性があります。
初期化中: チェック対象のバックエンドサーバーが初期化中であることを示します。
正常: すべてのバックエンドサーバーが正常であることを示します。
エラー: 異常なバックエンドサーバーが存在することを示します。
利用不可: ヘルスチェック機能が有効になっていないことを示します。
リスナーに対応する [異常] または [初期化中] をクリックして、リスナーの [リスナー/転送ルール]、[グループ]、[ECS インスタンス/ポート]、[ヘルスステータス]、および [原因] パラメーターを表示します。
ヘルスチェックの無効化
業務継続性を確保するために、ヘルスチェック機能を有効にすることをお勧めします。頻繁なヘルスチェックがビジネスの可用性に影響を与える場合は、ヘルスチェックの頻度を減らし、ヘルスチェック間隔を長くすることで、悪影響を軽減できます。
ヘルスチェック機能を無効にすると、CLB は異常なバックエンド ECS インスタンスにリクエストを分散し、サービス中断が発生します。ヘルスチェック機能を有効にすることをお勧めします。
CLB コンソールにログオンします。
上部のナビゲーションバーで、CLB インスタンスがデプロイされているリージョンを選択します。
左側のナビゲーションウィンドウで、[CLB] > [インスタンス] を選択します。インスタンス ページで、管理する CLB インスタンスを見つけ、インスタンスの ID をクリックします。
インスタンスの詳細ページで、[リスナー] タブをクリックします。[リスナーの追加] をクリックするか、[リスナーの変更] 列の [アクション] をクリックします。
ヘルスチェック ステップに進むまで、リスナーを設定します。
ヘルスチェック機能を無効にし、[次へ] をクリックします。
参照
CLB ヘルスチェックの詳細については、「CLB ヘルスチェック」をご参照ください。
ヘルスチェックの問題のトラブルシューティング方法の詳細については、「ヘルスチェックに関するよくある質問」をご参照ください。
ヘルスチェックログのクエリと分析方法の詳細については、「ヘルスチェックログの保存とダウンロード」をご参照ください。