DNS ルーティング ポリシーとヘルスチェック

プライベートゾーンのリソース レコードセットに対する DNS ルーティング ポリシーを構成し、特定の条件に基づいてトラフィックをステアリングできます。特定のルーティング ポリシー値を含むリソース レコードセットを作成して、ルーティング ポリシーを設定します。これらの値により、Cloud DNS がクエリ トラフィックをどのようにルーティングするかが決まります。

Cloud DNS でサポートされているルーティング ポリシーは次のとおりです。

  • 重み付きラウンドロビン(WRR)ルーティング ポリシー: WRR ルーティング ポリシーは、DNS 名の各リソース レコードセットに異なる重みを割り当てるために使用します。WRR ルーティング ポリシーを使用すると、構成した重みに従ってトラフィックが分散されます。

DNS ルーティング ポリシーは、次のプライベート ゾーンには構成できません。

  • 転送ゾーン
  • DNS ピアリング ゾーン
  • マネージド逆引き参照ゾーン
  • Service Directory ゾーン

WRR ルーティング ポリシー

WRR ルーティング ポリシーでは、DNS ターゲットごとに異なる重みを指定できます。Cloud DNS は、この重みに従ってトラフィックを分散します。このポリシーは、手動の active-active 構成または active-passive 構成をサポートする場合に使用できます。また、サービスの本番環境版と試験運用版の間でトラフィックを分割することもできます。

Cloud DNS は、内部ロードバランサと外部エンドポイントのルーティング ポリシー内でヘルスチェックとフェイルオーバーをサポートしています。エンドポイントのヘルスチェックに失敗すると、自動的にフェイルオーバーが有効になります。フェイルオーバー中は、残りの正常なエンドポイントの間でトラフィックが分割されるように自動的に調整されます。詳細については、ヘルスチェックをご覧ください。

フェイルオーバー ルーティング ポリシー

フェイルオーバー ルーティング ポリシーを使用すると、アクティブ バックアップ構成を設定して、VPC ネットワーク内の内部リソースに高可用性を提供できます。

通常のオペレーションでは、Cloud DNS は常に active セットの IP アドレスを返します。active セット内のすべての IP アドレスが異常になった場合は、backup セットの IP アドレスを提供します。

Cloud DNS では、トラフィックの一部をバックアップ VIP アドレスにトリクリングできます。これにより、バックアップ VIP アドレスが機能していることを確認できます。バックアップに送信されるトラフィックの割合を、0~1 の割合で構成できます。フェイルオーバーを手動でトリガーするには、トラフィックの 100% をバックアップ VIP アドレスに送信します。一般的な値は 0.1 です。ヘルスチェックは、内部ロードバランサと外部エンドポイントにのみ適用できます。

ヘルスチェック

Cloud DNS は、次の内部ロードバランサと外部エンドポイントのルーティング ポリシー内でヘルスチェックとフェイルオーバーをサポートしています。

DNS Security Extensions(DNSSEC)が有効になっている場合にマネージド ゾーンでヘルスチェックを使用するとき、各ポリシー項目内で使用できる IP アドレスは 1 つだけです。ヘルスチェック対象の IP アドレスとヘルスチェック対象外の IP アドレスを特定のポリシーに混在させることはできません。

Cloud DNS レコードとヘルスチェックを構成する際に留意すべきベスト プラクティスについては、ベスト プラクティスをご覧ください。

内部ロードバランサのヘルスチェック

内部ロードバランサのヘルスチェックは、プライベート ゾーンでのみ使用できます。

内部アプリケーション ロードバランサと内部プロキシ ネットワーク ロードバランサの場合、Cloud DNS はルーティングの決定時にロードバランサ自体のヘルス状態を考慮します。クエリを受信したロードバランサは、正常なバックエンド サービスにのみトラフィックを分散します。正常なバックエンドを確保するため、マネージド インスタンス グループ(MIG)などのサービスを使用してバックエンドのライフサイクルを管理できます。Cloud DNS が個々のバックエンドのヘルス ステータスを認識する必要はありません。このタスクはロードバランサによって処理されます。

内部パススルー ネットワーク ロードバランサの場合、Cloud DNS はロードバランサの個々のバックエンド インスタンスのヘルス情報をチェックします。デフォルトで適用されるしきい値は 20% です。20% 以上のバックエンド インスタンスが正常である場合、そのロードバランサ エンドポイントは正常とみなされます。DNS ルーティング ポリシーは、このしきい値に基づいてエンドポイントに正常または異常のマークを付け、それに応じてトラフィックをルーティングします。

内部パススルー ネットワーク ロードバランサの 1 つの仮想 IP アドレス(VIP)に複数のバックエンド インスタンスを設定できます。内部パススルー ネットワーク ロードバランサにバックエンド インスタンスが 1 つもない場合でも、Cloud DNS はこれを正常とみなします。ヘルスチェックを適切に機能させるには、ロードバランサの構成内で少なくとも 1 つのバックエンド インスタンスを指定します。

エンドポイントが異常とマークされると、次の状況が起こる可能性があります。

  • 特定のポリシーに対して複数の VIP アドレスがプログラムされている場合は、正常な VIP アドレスのみが返されます。
  • ポリシー バケットに対してプログラムされたすべての VIP アドレスが異常な場合、そのポリシー行は失敗しています。次の動作が適用されます。

    • WRR ポリシーの場合は、ポリシーで定義された残りの正常なエンドポイントにトラフィックが比例的に分散されます。
    • フェイルオーバー ポリシーの場合は、ポリシーで定義されたバックアップ エンドポイントにトラフィックが切り替えられます。
    • すべてのポリシー バケットが異常な場合、Cloud DNS はすべてのエンドポイントが正常であるかのように動作します。このシナリオでは、応答しないエンドポイントにトラフィックが分散される可能性があります。

内部ロードバランサのヘルスチェックの詳細については、ヘルスチェックの概要をご覧ください。

ヘルスチェック間隔

Cloud DNS は、ヘルスチェック間隔に従ってヘルスチェック プローブを定期的に送信します。たとえば、ヘルスチェック間隔が 30 秒の場合は、30 秒ごとに 1 つのヘルスチェック プローブが送信されます。

Cloud DNS の外部エンドポイントのヘルスチェックでは、ヘルスチェック間隔を 30~300 秒にする必要があります。

重み付きラウンドロビン ルーティング ポリシーとヘルスチェック

Cloud DNS は、0~1,000 の重み(両端を含む)をサポートします。ヘルスチェックを含めると、次のようになります。

  • 複数のターゲットをすべて重み 0 で構成すると、トラフィックはターゲット間で均等に分配されます。
  • 重みがゼロでないターゲットを新しく構成すると、それがプライマリ ターゲットになり、すべてのトラフィックがそのターゲットにシフトします。
  • 重みがゼロでないターゲットをさらに追加すると、(リクエストごとに)ターゲット間でトラフィック分割が動的に計算され、それに応じてトラフィックが分配されます。たとえば、3 つのターゲットを構成してそれぞれの重みを 0、25、75 にした場合、重み 0 のターゲットにはトラフィックは分配されず、重み 25 のターゲットにはトラフィックの 4 分の 1、残りのターゲットにはトラフィックの 4 分の 3 が分配されます。
  • ゼロ以外の重み付けのターゲットにヘルスチェックが関連付けられていても、ゼロの重み付けのターゲットに関連付けられていない場合は、ゼロの重み付けのターゲットは常に正常とみなされます。重みがゼロでないレコードがすべて異常な場合は、重みゼロのレコードが返されます。
  • ヘルスチェックが重みゼロでないレコードと重みゼロのレコードの両方に関連付けられている場合に、すべてのレコードがヘルスチェックに失敗すると、重みがゼロでないターゲットが返され、重みゼロのターゲットは無視されます。
  • リクエスト元に返す重みバケット(単一のポリシー項目)が選択されると、その重みバケット内の IP アドレスのみが返されます。重みバケットに 1 つの IP アドレスのみを指定した場合、その IP アドレスのみが応答に含まれます。重みバケットに複数の IP アドレスがある場合は、すべての IP アドレスがランダムな順序で返されます。

ヘルスチェックのロギング

Cloud DNS はヘルスチェックのロギングをサポートしており、ヘルスチェックが有効な IP アドレスを参照する DNS 名をクエリすると、その IP アドレスのヘルス ステータスがログに記録されます。

ヘルスチェックのロギングを使用すると、次のことができます。

  • ルーティング ポリシーが期待どおりに機能しているかどうかを検証する。次に例を示します。
  • WRR ポリシーの場合、正しい重みで IP アドレスが返されているかどうかを検証できます。
  • 障害が発生している特定のバックエンドと IP アドレスに関するインフラストラクチャの問題を特定する。
  • 特定のバックエンドが含まれない問題、または特定のバックエンドだけが返される問題をトラブルシューティングする。
  • 詳細については、ヘルスチェックのロギング情報をご覧ください。

    DNS ルーティング ポリシーでサポートされているレコードタイプ

    DNS ルーティング ポリシーは、Cloud DNS でサポートされているレコードタイプをすべてサポートしているわけではありません。

    次のレコードタイプがサポートされています。

    レコードタイプ 説明
    A 内部(プライベート ゾーン) のヘルスチェック用の IPv4 アドレス。
    CNAME 正規名。ヘルスチェックはサポートされていません。
    MX Mail Exchange レコード。ヘルスチェックはサポートされていません。
    SRV ホスト / ポート(RFC 2782)。ヘルスチェックはサポートされていません。
    TXT テキストデータ。ヘルスチェックはサポートされていません。

    次のステップ