Global Accelerator (GA) はヘルスチェックを使用してエンドポイントの動作ステータスを判断します。ヘルスチェックメカニズムは、サービスの信頼性と可用性を向上させ、異常なエンドポイントがサービスに影響を与えるのを防ぎます。
ヘルスチェックの概要
GA インスタンスのエンドポイントグループに対してヘルスチェックを有効にできます。ヘルスチェックを有効にすると、エンドポイントがヘルスチェックに失敗した場合、GA は新しいリクエストをヘルスチェックに合格した他のエンドポイントに自動的に分散します。異常なエンドポイントが正常に戻ると、GA は自動的にエンドポイントをサービスに復元します。
GA は、TCP、HTTP、および HTTPS プロトコルに基づくヘルスチェックをサポートしています。
TCP ヘルスチェック
TCP ヘルスチェックは、ネットワークレイヤーの検出に基づいています。SYN ハンドシェイクメッセージを送信して、サーバーポートがアクティブであるかどうかを確認します。次の図は、ヘルスチェックのプロセスを示しています。
番号 | 説明 |
① | GA インスタンスは、リスナーのヘルスチェック設定に基づいて、エンドポイントの IP アドレスとヘルスチェックポートに TCP SYN パケットを送信します。 |
② | ヘルスチェックの結果は、エンドポイントが SYN+ACK パケットを返すかどうかに基づいて決定されます。
説明 応答タイムアウト期間は、ヘルスチェックからの応答を待つ最大時間です。エンドポイントが応答タイムアウト期間内に正しく応答しない場合、ヘルスチェックは失敗します。デフォルト値は 3 秒で、変更することはできません。 |
③ | GA インスタンスがエンドポイントから SYN+ACK パケットを受信した後、接続を確認するために ACK パケットをエンドポイントに送信します。 |
HTTP および HTTPS ヘルスチェック
HTTP および HTTPS ヘルスチェックは、GET リクエストに基づいています。GET リクエストを送信してブラウザのアクセス動作をシミュレートし、エンドポイントのサーバーアプリケーションが正常であるかどうかを確認します。次の図は、ヘルスチェックのプロセスを示しています。
番号 | 説明 |
① | GA インスタンスは、リスナーのヘルスチェック設定に基づいて、エンドポイントの IP アドレス、ヘルスチェックポート、およびヘルスチェックパスに HTTP GET リクエストを送信します。 |
② | リクエストを受信した後、エンドポイントは対応するサービスの動作ステータスに基づいて HTTP ステータスコードを返すかどうかを決定します。
説明 応答タイムアウト期間は、ヘルスチェックからの応答を待つ最大時間です。エンドポイントが応答タイムアウト期間内に正しく応答しない場合、ヘルスチェックは失敗します。デフォルト値は 3 秒で、変更することはできません。 |
ヘルスチェックタイムウィンドウ
ヘルスチェックメカニズムは、ビジネスサービスの可用性を効果的に向上させます。ただし、頻繁なヘルスチェックの失敗がシステムの可用性に与える影響を避けるため、ヘルスチェックのステータスは、ヘルスチェックタイムウィンドウ内で複数回連続して成功または失敗した後にのみ変更されます。ヘルスチェックタイムウィンドウは、次の 3 つの要因によって決定されます。
ヘルスチェック間隔: 2 つの連続したヘルスチェックの間隔。
応答タイムアウト期間: バックエンドサービスからの応答を待つ最大時間。
正常しきい値: ヘルスチェックステータスを変更するために必要な連続したヘルスチェックの回数。
ヘルスチェックタイムウィンドウは、次のように計算されます。
ヘルスチェック失敗タイムウィンドウ = 応答タイムアウト期間 × 正常しきい値 + ヘルスチェック間隔 × (正常しきい値 - 1)
たとえば、次の図に示すように、応答タイムアウト期間が 3 秒、ヘルスチェック間隔が 2 秒、正常しきい値が 3 の場合、ヘルスチェック失敗タイムウィンドウ = 3 × 3 + 2 × (3 - 1) = 13 秒です。
ヘルスチェック成功タイムウィンドウ = (ヘルスチェック成功応答時間 × 正常しきい値) + ヘルスチェック間隔 × (正常しきい値 - 1)
たとえば、次の図に示すように、ヘルスチェック成功応答時間が 1 秒、ヘルスチェック間隔が 2 秒、正常しきい値が 3 の場合、ヘルスチェック成功タイムウィンドウ = 1 × 3 + 2 × (3 - 1) = 7 秒です。
制限事項
UDP リスナーの場合、エンドポイントはヘルスチェックをサポートするために TCP、HTTP、または HTTPS サービスを備えている必要があります。そうでない場合、それらは異常としてマークされます。
ヘルスチェックの有効化
Global Accelerator コンソールにログインします。
[インスタンス] ページで、ターゲット GA インスタンスを見つけ、[アクション] 列の [リスナーの設定] をクリックします。
[リスナー] タブで、ターゲットリスナーを見つけ、[アクション] 列の [リスナーの変更] をクリックします。
[リスナーの編集] ページで、[次へ] をクリックします。
[エンドポイントグループの設定] ウィザードページの [ヘルスチェック] セクションで、[ヘルスチェック] をオンにし、次の情報に基づいてヘルスチェックを設定します。
設定
説明
ヘルスチェックプロトコル
ヘルスチェックに使用するプロトコルを選択します。TCP、HTTP、および HTTPS プロトコルがサポートされています。
TCP ヘルスチェックは、ネットワークレイヤーの検出に基づいています。SYN ハンドシェイクメッセージを送信して、サーバーポートがアクティブであるかどうかを確認します。
HTTP および HTTPS ヘルスチェックは、GET リクエストに基づいています。GET リクエストを送信してブラウザのアクセス動作をシミュレートし、エンドポイントのサーバーアプリケーションが正常であるかどうかを確認します。
ポート
ヘルスチェックサービスがエンドポイントへのアクセスに使用するポートです。
有効な値: 1~65535。
ヘルスチェックドメイン名
ヘルスチェックのドメイン名を設定します。この機能は、従量課金 GA インスタンスでのみ使用できます。
[エンドポイント IP アドレス] (デフォルト): エンドポイントの IP アドレスをヘルスチェックのドメイン名として使用します。
[カスタムドメイン名]: 指定されたドメイン名を入力します。
ヘルスチェック間隔
2 つの連続したヘルスチェックの間隔。単位: 秒。
有効な値: 1~50。デフォルト値: 2。
URI
ヘルスチェックのパスを指定します。このパラメーターは、[ヘルスチェックプロトコル] が HTTP または HTTPS に設定されている場合にのみ使用できます。
パスはスラッシュ (/) で始まる必要があります。パスは 1~80 文字の長さで、文字、数字、ハイフン (-)、スラッシュ (/)、ピリオド (.)、パーセント記号 (%)、疑問符 (?)、番号記号 (#)、アンパサンド (&)、および拡張文字
_;~!()*[]@$^:',+を含めることができます。デフォルトでは、GA システムはバックエンドサーバーアプリケーションのデフォルトのホームページに GET リクエストを送信します。ヘルスチェックに使用するページがアプリケーションサーバーのデフォルトのホームページでない場合は、ヘルスチェックのパスを指定する必要があります。
正常しきい値
ヘルスチェックステータスを変更するために必要な連続したヘルスチェックの回数。これには、ステータスを成功から失敗に変更するための連続した失敗したヘルスチェックの回数、またはステータスを失敗から成功に変更するための連続した成功したヘルスチェックの回数が含まれます。
有効な値: 2~10。デフォルト値: 3。
[次へ] をクリックします。[設定の確認] ウィザードページで、ヘルスチェック情報を確認し、[送信] をクリックします。
その他の操作
操作 | 説明 |
ヘルスチェック設定の変更 |
|
ヘルスチェックの無効化 |
|
リファレンス
CreateEndpointGroup: エンドポイントグループを作成します (ヘルスチェックを設定できます)。
UpdateEndpointGroup: エンドポイントグループの設定を変更します (ヘルスチェックを設定できます)。
GetHealthStatus: エンドポイントのヘルスチェック情報を照会します。