Application Load Balancer (ALB) のバックエンドサーバーの可用性を監視するには、ALBのサーバーグループのヘルスチェックを設定します。 ヘルスチェックは、異常なバックエンドサーバーをできるだけ早く検出することで、サービスの可用性を確保します。 このトピックでは、ヘルスチェックを作成、変更、および削除する方法について説明します。
背景情報
ALBでは、サーバーグループのヘルスチェックを設定できます。 デフォルトでは、すべてのサーバーグループでヘルスチェックが有効になっています。
ヘルスチェックが有効になっている場合、ALBは正常なバックエンドサーバーにリクエストを自動的にルーティングし、指定された間隔ですべてのバックエンドサーバーの可用性をプローブします。 バックエンドサーバーが正常であると宣言される前に、バックエンドサーバーは特定の回数 (N回) ヘルスチェックに合格する必要があります。 ビジネス要件に基づいてNを指定できます。 これにより、ネットワークジッタによるヘルスチェックエラーが防止されます。
バックエンドサーバーが特定の回数ヘルスチェックに失敗した場合、バックエンドサーバーは異常と宣言されます。 この場合、ALBはバックエンドサーバーへのリクエストの配信を自動的に停止します。
バックエンドサーバーが回復すると、ALBは自動的にリクエストをバックエンドサーバーに配信します。
ヘルスチェックは非永続接続を使用します。 ヘルスチェックが完了すると、接続は閉じられます。
重みが0のバックエンドサーバーではヘルスチェックは実行されません。
サーバーグループ内のすべてのバックエンドサーバーが正常でない場合、ALBはサービスの中断を防ぐためにスケジューリングアルゴリズムに基づいてサーバーグループにリクエストを配信し続けます。 詳細については、「同じバックエンドサーバー内のすべてのバックエンドサーバーが正常でない場合、ALBインスタンスはどのようにリクエストを転送できますか? 」をご参照ください。
HTTPSヘルスチェックの制限
標準およびWAF対応のALBインスタンスは、ヘルスチェックをサポートしています。 基本ALBインスタンスはHTTPSヘルスチェックをサポートしていません。
ヘルスチェックの作成
方法1: [ヘルスチェック] ページでヘルスチェックを作成する
ALBコンソールにログインします。
上部のナビゲーションバーで、ヘルスチェックを作成するリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
ヘルスチェックページで、ヘルスチェックの作成をクリックします。
ヘルスチェックの作成ダイアログボックスで、次の表に記載されているパラメーターを設定し、作成をクリックします。
ヘルスチェックの設定時には、ヘルスチェックの失敗による頻繁な切り替えを防ぐために、デフォルト値を使用することを推奨します。 これにより、システムの可用性への悪影響が軽減されます。
パラメーター
説明
ヘルスチェック名
ヘルスチェックの名前を入力します。
プロトコル
ヘルスチェックの実行に使用するプロトコルを選択します。 有効な値:
HTTP: HTTPヘルスチェックを実行するために、ALBはHEADまたはGETリクエストをバックエンドサーバーに送信して、バックエンドサーバーが正常かどうかを確認します。
HTTPS: ALBは、HEADまたはGETリクエストをバックエンドサーバーに送信して、バックエンドサーバーが正常かどうかを確認することにより、HTTPSヘルスチェックを実行します。 詳細については、このトピックの「HTTPSヘルスチェックの制限」セクションをご参照ください。
TCP: ALBは、バックエンドサーバーにSYNパケットを送信して、バックエンドサーバーのポートがリクエストを受信できるかどうかを確認することで、TCPヘルスチェックを実行します。
gRPC: ALBは、バックエンドサーバーにPOSTまたはGETリクエストを送信して、バックエンドサーバーが正常かどうかを確認することにより、gRPCヘルスチェックを実行します。
ヘルスチェック方法
ヘルスチェックの方式を選択します。 有効な値:
HEAD: デフォルトでは、HTTPヘルスチェックはHEADメソッドを使用します。 バックエンドサーバーがHEADリクエストをサポートしていることを確認してください。 バックエンドサーバーがHEADメソッドをサポートしていない場合、またはHEADメソッドが無効になっている場合、ヘルスチェックは失敗する可能性があります。 この場合、GETメソッドを使用できます。
POST: デフォルトでは、gRPCヘルスチェックはPOSTメソッドを使用します。 バックエンドサーバーがPOSTリクエストをサポートしていることを確認してください。 バックエンドサーバーがPOSTメソッドをサポートしていない場合、またはPOSTメソッドが無効になっている場合、ヘルスチェックは失敗する可能性があります。 この場合、GETメソッドを使用できます。
GET: レスポンスのサイズが8 KBを超える場合、レスポンスは切り捨てられます。 ただし、ヘルスチェックの結果は影響を受けません。
説明このパラメーターは、ヘルスチェックプロトコルがHTTP、HTTPS、またはgRPCの場合にのみ有効です。
HTTPおよびHTTPSヘルスチェックは、HEADおよびGETヘルスチェックメソッドをサポートしています。 gRPCヘルスチェックは、POSTおよびGETヘルスチェックメソッドをサポートしています。
HTTPバージョン
HTTPバージョンを選択します。 有効な値: HTTP1.0およびHTTP1.1。
説明このパラメーターは、ヘルスチェックプロトコルがHTTPまたはHTTPSの場合にのみ有効です。
ポート番号
ALBがバックエンドサーバーでヘルスチェックを実行するために使用するポートを入力します。
デフォルトでは、このパラメーターは空です。これは、バックエンドサーバーによって選択されたポートがヘルスチェックに使用されることを示します。 ヘルスチェック用に特定のポートを指定する場合は、ポート番号を入力します。 有効な値: -1 から 65535 入力できるポート番号は1つだけです。
パス
ヘルスチェックを実行するwebページのURLを入力します。 静的webページのURLを入力することを推奨します。
デフォルトでは、ALBはHTTP HEADリクエストをバックエンドのECS (Elastic Compute Service) インスタンスのプライベートIPアドレスに送信して、ECSインスタンスに設定されたデフォルトのホームページにアクセスすることでHTTPヘルスチェックを実行します。 ヘルスチェックにデフォルトのホームページを使用しない場合は、URLを指定できます。
ドメイン名
ヘルスチェックに使用するドメイン名を入力します。
デフォルトでは、ALBはヘルスチェックにバックエンドサーバーのプライベートIPアドレスを使用します。 ドメイン名を指定することもできます。
ヘルスチェックステータスコード
正常なバックエンドサーバーを示すステータスコードを選択します。 ALBバックエンドサーバーは、バックエンドサーバーがヘルスチェックリクエストに対して指定されたステータスコードを返した場合にのみヘルスチェックに合格します。
ヘルスチェックプロトコルがHTTPまたはHTTPSの場合、http_2xx、http_3xx、http_4xx、およびhttp_5xxを選択できます。 デフォルトでは、http_2xxとhttp_3xxが選択されています。
ヘルスチェックプロトコルがgRPCの場合、有効な値は0 ~ 99です。 値の範囲がサポートされています。 コンマ (,) で区切られた最大20個の値の範囲を入力できます。
説明このパラメーターは、ヘルスチェックプロトコルがHTTP、HTTPS、またはgRPCの場合にのみ有効です。
ヘルスチェック応答タイムアウト
ヘルスチェック応答のタイムアウト時間を指定します。 バックエンドサーバーが指定されたタイムアウト期間内にヘルスチェック応答を返さない場合、サーバーはヘルスチェックに失敗します。
有効な値:1 から 300。 既定値:5 単位は秒です。
ヘルスチェック間隔
2つの連続したヘルスチェックの間隔を指定します。
有効値:1 〜 50 。 デフォルト値:2 単位は秒です。
正常なしきい値
正常でないバックエンドサーバーが正常であると宣言されるまでに、正常でないバックエンドサーバーが連続してヘルスチェックに合格する必要がある回数を指定します。
設定可能な値は 1 から 100 です。 デフォルト値: 3。
異常しきい値
正常なバックエンドサーバーが正常でないと宣言されるまでに、正常なバックエンドサーバーが連続してヘルスチェックに失敗する必要がある回数を指定します。
設定可能な値は 1 から 100 です。 デフォルト値: 3。
タグ
[タグキー] および [タグ値] パラメーターを設定します。
タグを指定した後、[ヘルスチェック] ページのタグでヘルスチェックをフィルタリングできます。
ヘルスチェックの作成後、ALBサーバーグループを作成するときに、[ヘルスチェックの設定] セクションでヘルスチェックを選択できます。 詳細については、「サーバーグループの作成と管理」をご参照ください。
方法2: [サーバーグループ] ページでヘルスチェックを作成する
サーバーグループを作成するときに、ヘルスチェックの設定をヘルスチェックテンプレートとして保存できます。 これにより、ヘルスチェックの作成時にテンプレートを適用できます。
ALBコンソールにログインします。
上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
サーバーグループページで、サーバーグループの作成をクリックします。
サーバーグループの作成ダイアログボックスでパラメーターを設定し、作成をクリックします。
このセクションでは、このトピックに関連するパラメーターのみについて説明します。 その他のパラメーターの詳細については、「サーバーグループの作成と管理」をご参照ください。
[ヘルスチェック設定] の横にある [変更] をクリックします。 ヘルスチェックの設定後、ヘルスチェック設定をテンプレートとして保存すると、ヘルスチェックの作成と設定が容易になります。を選択し、ヘルスチェック名を入力します。
オプションです。コンソールの左側のナビゲーションウィンドウで、 を選択します。 [ヘルスチェック] ページで、保存されたヘルスチェックテンプレートを表示します。
ヘルスチェックの変更
方法1: [ヘルスチェック] ページでヘルスチェックを変更する
ALBコンソールにログインします。
上部のナビゲーションバーで、ヘルスチェックを作成するリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
ヘルスチェックページで、管理するヘルスチェックを見つけて、アクション列で変更をクリックします。
ヘルスチェック設定の変更ダイアログボックスで、ビジネス要件に基づいてパラメーターを変更し、保存をクリックします。
警告ヘルスチェックを無効にすると、ALBはバックエンドサーバーのヘルスステータスをチェックしなくなります。 バックエンドサーバーがダウンしている場合、ネットワークトラフィックを正常なバックエンドサーバーに自動的に切り替えることはできません。
ヘルスチェック間隔を長く指定すると、ALBが異常なバックエンドサーバーを検出するまでに時間がかかります。
方法2: [サーバーグループ] ページでヘルスチェックを変更する
ALBコンソールにログインします。
上部のナビゲーションバーで、サーバーグループを作成するリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
サーバーグループページで、管理するサーバーグループを見つけて、ヘルスチェックの変更で、アクション列を作成します。
[ヘルスチェックの変更] ダイアログボックスで、ヘルスチェックをオンまたはオフにします。 [ヘルスチェック設定] の横にある [変更] をクリックして、ヘルスチェックの設定を変更することもできます。
警告ヘルスチェックを無効にすると、ALBはバックエンドサーバーのヘルスステータスをチェックしなくなります。 バックエンドサーバーがダウンしている場合、ネットワークトラフィックを正常なバックエンドサーバーに自動的に切り替えることはできません。
ヘルスチェック間隔を長く指定すると、ALBが異常なバックエンドサーバーを検出するまでに時間がかかります。
ヘルスチェック結果の表示
ALBインスタンスにリスナーが設定されており、バックエンドサーバーグループのヘルスチェックが有効になっている場合、[リスナー] タブでヘルスチェック結果を表示できます。
ALBコンソールにログインします。
上部のナビゲーションバーで、ALBインスタンスがデプロイされているリージョンを選択します。
[インスタンス] ページで、管理するALBインスタンスのIDをクリックします。
[リスナー] タブをクリックし、[ヘルスチェックステータス] 列にバックエンドサーバーのヘルスチェック結果を表示します。
ヘルスチェックを削除する
ALBコンソールにログインします。
上部のナビゲーションバーで、ヘルスチェックを作成するリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
ヘルスチェックページで、削除するヘルスチェックを見つけて、アクション列で削除をクリックします。
削除メッセージで、情報を確認し、OKをクリックします。