Global Accelerator (GA) は、ヘルスチェックを使用してエンドポイントのヘルスチェックステータスを判断します。このメカニズムは、異常なエンドポイントへのトラフィックのルーティングを防ぐことで、サービスの信頼性と可用性を向上させます。
ヘルスチェックの概要
GA インスタンスのエンドポイントグループに対してヘルスチェックを有効にできます。エンドポイントがヘルスチェックに失敗すると、GA は新しいリクエストを他の正常なエンドポイントに自動的にリダイレクトします。異常なエンドポイントが回復してヘルスチェックに合格すると、GA は自動的にそのエンドポイントへのトラフィックのルーティングを再開します。
GA は、TCP、HTTP、HTTPS 経由のヘルスチェックをサポートしています。
TCP ヘルスチェック
TCP ヘルスチェックはトランスポート層で動作します。このサービスは、SYN ハンドシェイクパケットを送信して、サーバーポートがアクティブであるかどうかをプローブします。プロセスは次のとおりです。
ステップ | 説明 |
① | リスナーのヘルスチェック設定を使用して、GA インスタンスはエンドポイントの IP アドレスとヘルスチェックポートに TCP SYN パケットを送信します。 |
② | ヘルスチェックの結果は、エンドポイントが SYN+ACK パケットを返すかどうかによって決まります。
説明 応答タイムアウトは、ヘルスチェックプローブへの応答を待つ最大時間です。エンドポイントがこの期間内に正しく応答しない場合、ヘルスチェックは失敗します。システムのデフォルトは 3 秒で、変更できません。 |
③ | GA インスタンスが SYN+ACK パケットを受信した後、エンドポイントに ACK パケットを送信して TCP ハンドシェイクを完了します。 |
HTTP および HTTPS ヘルスチェック
HTTP および HTTPS ヘルスチェックは、GET リクエストを使用してブラウザのアクセスをシミュレートし、エンドポイント上のバックエンドサービスアプリケーションのヘルス状態を確認します。プロセスは次のとおりです。
ステップ | 説明 |
① | リスナーのヘルスチェック設定を使用して、GA インスタンスはエンドポイントの IP アドレス、ヘルスチェックポート、ヘルスチェックパスに HTTP GET リクエストを送信します。 |
② | エンドポイントはリクエストを受信した後、サービスのヘルス状態に基づいて HTTP ステータスコードを返します。
説明 応答タイムアウトは、ヘルスチェックプローブへの応答を待つ最大時間です。エンドポイントがこの期間内に正しく応答しない場合、ヘルスチェックは失敗します。システムのデフォルトは 3 秒で、変更できません。 |
ヘルスチェックタイムウィンドウ
ヘルスチェックはサービス可用性を向上させます。ただし、頻繁な状態変更によるシステムの不安定化を防ぐため、GA は、エンドポイントが所定の回数のヘルスチェックに連続して成功または失敗した後にのみ、そのヘルスステータスを変更します。この期間は、ヘルスチェックのタイムウィンドウと呼ばれます。このタイムウィンドウは、以下の要因によって決まります。
ヘルスチェック間隔: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 経由でサービスを実行している場合にのみサポートされます。それ以外の場合、GA は常にエンドポイントを異常としてマークします。
ヘルスチェックの有効化
Global Accelerator コンソールにログインします。
インスタンス ページで、GA インスタンスを見つけ、その 操作 列にある リスナーの設定 をクリックします。
リスナー タブで、管理するリスナーを見つけ、操作 列の 編集 をクリックします。
リスナーを編集 ページで、次へ をクリックします。
エンドポイントの設定 ウィザードページの ヘルスチェック セクションで、ヘルスチェック スイッチをオンにし、次のパラメーターを設定します。
パラメーター
説明
ヘルスチェックプロトコル
ヘルスチェックに使用されるプロトコル。有効な値:TCP、HTTP、HTTPS。
TCP:SYN ハンドシェイクパケットを送信して、サーバーポートがアクティブであるかどうかをプローブします。
HTTP および HTTPS:GET リクエストを送信してブラウザのアクセスをシミュレートし、バックエンドサービスアプリケーションのヘルス状態を確認します。
ポート
エンドポイントでヘルスチェックを実行するために使用されるポート。
有効な値:1~65535。
ヘルスチェックドメイン名
ヘルスチェック用のドメイン名。この機能は、従量課金の GA インスタンスでのみサポートされます。
エンドポイント IP (デフォルト):エンドポイントの IP アドレスをヘルスチェック用のドメイン名として使用します。
ドメイン名を指定:特定のドメイン名を入力します。
ヘルスチェック間隔
2 つの連続したヘルスチェックプローブ間の間隔。
有効な値:1~50。単位:秒。デフォルト値:2。
URI
ヘルスチェック用のパス。このパラメーターは、ヘルスチェックプロトコル が HTTP または HTTPS に設定されている場合にのみ使用できます。
パスは 1~80 文字の長さで、スラッシュ (/) で始まる必要があります。文字、数字、ハイフン (-)、スラッシュ (/)、ピリオド (.)、パーセント記号 (%)、疑問符 (?)、番号記号 (#)、アンパサンド (&)、および拡張文字セット
_;~!()*[]@$^:',+を含めることができます。デフォルトでは、GA はバックエンドサービスアプリケーションのデフォルトのホームページに GET リクエストを送信します。ヘルスチェックに使用されるページがデフォルトのホームページでない場合は、パスを指定する必要があります。
正常しきい値
エンドポイントのヘルスチェックステータスを変更するために必要な、連続した成功または失敗したヘルスチェックの回数。
有効な値:2~10。デフォルト値:3。
次へ をクリックします。設定監査 ウィザードページで、設定を確認し、送信する をクリックします。
その他の操作
操作 | 説明 |
ヘルスチェック設定の変更 |
|
ヘルスチェックの無効化 |
|
参照
CreateEndpointGroup:エンドポイントグループを作成します。エンドポイントグループを作成する際に、ヘルスチェックを設定できます。
UpdateEndpointGroup:エンドポイントグループの構成を更新します。エンドポイントグループを更新する際に、ヘルスチェックを設定できます。
GetHealthStatus:エンドポイントのヘルスチェックステータスを照会します。