Amazon Route 53
開発者ガイド (API バージョン 2013-04-01)

Amazon Route 53 がヘルスチェックの正常性を判断する方法

ヘルスチェックが正常かどうかを判断するために Amazon Route 53 が使用する方法は、ヘルスチェックのタイプによって異なります。

エンドポイントをモニタリングするヘルスチェック

Route 53 は、世界各地にヘルスチェッカーを持っています。エンドポイントをモニタリングするヘルスチェックを作成すると、ヘルスチェッカーは、エンドポイントが正常であるかどうかを判断するためにユーザーが指定するエンドポイントにリクエストの送信を開始します (Route 53 で使用する場所を選択し、チェックの間隔 (10 秒ごと、または 30 秒ごと) を指定できます)。各ヘルスチェッカーは、次の 2 つの値に基づいてエンドポイントの正常性を評価します。

  • 応答時間

  • エンドポイントが、指定した連続する回数のヘルスチェックに応答するかどうか (失敗のしきい値)

Route 53 はヘルスチェッカーからデータを集計し、エンドポイントが正常であるかどうかを判断します。

  • 18% を超えるヘルスチェッカーがエンドポイントを正常であるとレポートした場合、Route 53 はそのエンドポイントを正常と見なします。

  • ヘルスチェッカーが正常であるエンドポイントが 18% 以下であるとレポートした場合、Route 53 はそのエンドポイントを異常と見なします。

18% という値が選ばれたのは、複数のリージョンのヘルスチェッカーが確実にエンドポイントを正常であると見なすようにするためです。これにより、ネットワークの状態によって一部のヘルスチェックの場所からエンドポイントが分離されたというだけで、エンドポイントを異常と見なすことを回避できます。この値は、将来のリリースで変更される可能性があります。

個々のヘルスチェッカーが、エンドポイントが正常であるかどうかを判断するために使用する応答時間は、ヘルスチェックのタイプによって異なります。

  • HTTP/HTTPS ヘルスチェック – Route 53 が、エンドポイントとの TCP 接続を 4 秒以内に確立できることが必要です。加えて、接続後 2 秒以内に、HTTP ステータスコード 2xx または 3xx でエンドポイントが応答する必要があります。

  • TCP ヘルスチェック - – Route 53 が、エンドポイントとの TCP 接続を 10 秒以内に確立できることが必要です。

  • HTTP/HTTPS ヘルスチェックと文字列一致 – HTTP と HTTPS のヘルスチェックと同様、Route 53 は、エンドポイントとの TCP 接続を 4 秒以内に確立し、エンドポイントは接続後 2 秒以内に、2xx または 3xx の HTTP ステータスコードで応答する必要があります。

    Route 53 ヘルスチェッカーは、HTTP ステータスコードを受信後、続けて 2 秒以内にエンドポイントからレスポンス本文を受信する必要があります。Route 53 は、指定された文字列をレスポンス本文から検索します。その際、検索文字列全体が、レスポンス本文の最初の 5,120 バイト内に出現している必要があります。それ以外の場合、エンドポイントはヘルスチェックで不合格となります。Route 53 コンソールを使用している場合は、[Search String] フィールドに文字列を指定します。Route 53 API を使用している場合は、ヘルスチェックの作成時に、SearchString 要素で文字列を指定します。

エンドポイントを監視するヘルスチェック (TCP ヘルスチェックを除く) で、エンドポイントからの応答にヘッダーが含まれている場合、ヘッダーは RFC7230、Hypertext Transfer Protocol (HTTP/1.1): メッセージ構文とルーティング、セクション 3.2、「ヘッダーフィールド」で定義されている形式でなければなりません。

他のヘルスチェックをモニタリングするヘルスチェック

ヘルスチェックは、他のヘルスチェックのステータスを監視できます。このタイプのヘルスチェックは、算出したヘルスチェックとして知られています。監視を行うヘルスチェックが親ヘルスチェックで、監視されるヘルスチェックが子ヘルスチェックです。1 つの親ヘルスチェックは、最大 255 の子ヘルスチェックの状態を監視できます。以下に、監視活動の仕組みを示します。

  • Route 53 は、正常であると考えられる子のヘルスチェックの数を合計します。

  • Route 53 はその後、正常と見なされる親のヘルスチェックのステータスについて正常でなければならない子ヘルスチェック数と、その数を比較します。

詳細については、「ヘルスチェックを作成または更新するときに指定する値」の「他のヘルスチェック (算出したヘルスチェック) の監視」を参照してください。

CloudWatch アラームをモニタリングするヘルスチェック

CloudWatch アラームに基づくヘルスチェックを作成すると、Route 53 は対応するアラームの状態をモニタリングしないで、アラームのデータストリームをモニタリングします。データストリームがアラームの状態を [OK] と示している場合、ヘルスチェックは正常と見なされます。データストリームが状態を [アラーム] と示している場合、ヘルスチェックは異常と見なされます。アラームの状態を判断するための十分な情報がデータストリームから提供されない場合、ヘルスチェックのステータスは [ヘルスチェックステータス] の設定 (正常、異常、または最後の既知の状態) によって決まります (Route 53 API では、この設定は InsufficientDataHealthStatus です)。

注記

Route 53 のヘルスチェックでは、CloudWatch アラームの状態をモニタリングしないで CloudWatch データストリームをモニタリングするため、CloudWatch の SetAlarmState API オペレーションを使用してヘルスチェックのステータスを強制的に変更することはできません。