このページでは、Cloud DNS を使用して DNS ルーティング ポリシーを構成し、ヘルスチェックを有効にする方法について説明します。このページを使用する前に、DNS ルーティング ポリシーとヘルスチェックについてご確認ください。
DNS ルーティング ポリシーを使用するには、リソース レコードセットを作成し、リソース レコードセットに適用する次のいずれかの DNS ルーティング ポリシーを選択します。
DNS ルーティング ポリシーは、地理的位置ごとに複数の IP アドレスをサポートします。特定の地理的位置に指定された場合は、重みが等しい WRR ポリシーに従って、複数の IP アドレスが返されます。位置情報ベースのルーティング ポリシーとカスタム重み付けの WRR ポリシーを組み合わせることはできません。
一度に 1 つのリソース レコードセットに適用されるルーティング ポリシーは 1 種類だけです。 位置情報に基づくルーティング ポリシーをバックアップとして設定できるフェイルオーバー ルーティング ポリシーを構成する場合を除き、ルーティング ポリシーを結合することはできません。 リージョン ロードバランサではグローバル アクセスを有効にする必要があります。
限定公開ゾーンの DNS ルーティング ポリシーを作成する
限定公開ゾーンの DNS ルーティング ポリシーを作成する前に、次の手順を完了します。
- 限定公開ゾーンを作成する。
- 次のいずれかの内部ロードバランサを設定します。
- 内部ロードバランサの転送ルールを作成する。
- 内部ロードバランサのヘルスチェックを設定する。
限定公開ゾーンの DNS ルーティング ポリシーを作成するには、次の操作を行います。
コンソール
構成を開始する
Google Cloud コンソールで Cloud DNS の [ゾーン] ページに移動します。
レコードを追加するマネージド ゾーンの名前をクリックします。
[ゾーンの詳細] ページで、[ルーティング ポリシー付きで追加] をクリックします。
ベースデータ
省略可: [ルーティング ポリシー付きのレコードセットを作成] ページの [DNS 名] に、DNS 名のサブドメインを入力します(例:
mail
)。末尾にドットが自動的に追加されます。[リソース レコードのタイプ] でオプションを選択します。
[TTL] に、リソース レコードの有効期間を数値で入力します。これはキャッシュに保存できる時間です。 この値は正の整数である必要があります。
省略可: [TTL ユニット] で、時間の単位(例:
minutes
)を選択します。デフォルトはminutes
に設定されています。[次へ] をクリックします。
ルーティング ポリシーの種類
- [ルーティング ポリシー] で、[重み付きラウンドロビン]、[位置情報]、[フェイルオーバー] のいずれかを選択します。
- [次へ] をクリックします。
ルーティング ポリシーのデータ
WRR
[重み] に、リソース レコード(RR)データのサブセクションに対応する重みを入力します。
この重みは 0.0~1,000.0 の範囲内の正の数字でなければなりません。ターゲットにルーティングされるトラフィックの割合は、すべての重みの合計に対する個々の重みの比率から計算されます。たとえば、ターゲット A の重みが 25、ターゲット B の重みが 75 で、合計重みが 100 の場合、Cloud DNS は、合計トラフィックの 25/100 = 0.25(25%)をターゲット A にルーティングし、75/100= 0.75(75%)をターゲット B にルーティングします。
[IPv4 ヘルスチェック対象のターゲット] セクションで、次の操作を行います。
- [プロジェクト] で、転送ルールが存在するプロジェクトを選択します。
[転送ルール] で、転送ルールを選択します。
転送ルールに、内部 IP アドレス、ポート、および次のいずれかのターゲットを指定します。
- リージョン バックエンド サービス
- グローバル / リージョン ターゲット HTTPS プロキシ
- リージョン ターゲット TCP プロキシ
[完了] をクリックします。
省略可: ヘルスチェック対象のターゲットを追加するには、[ターゲットを追加] をクリックします。
省略可: ヘルスチェックを受けない IPv4 アドレスを許可するには、次の操作を行います。
- [ヘルスチェックを受けない IPv4 アドレスを許可する] を選択します。
- [IPv4 アドレス] に、IPv4 アドレスを入力します。
省略可: WRR ポリシー ルーティング データの別のセットを追加するには、[ルーティング データを追加] をクリックします。
[次へ] をクリックします。
位置情報
[ジオフェンス] で [無効] または [有効] を選択します。
ジオフェンスを有効にすると、特定の位置情報のすべてのエンドポイントが異常であったとしても、トラフィックをその地域内に制限できます。
[ソース リージョン] で、有効な Google Cloud ソース リージョンを選択します。
[IPv4 ヘルスチェック対象のターゲット] セクションで、次の操作を行います。
- [プロジェクト] で、転送ルールが存在するプロジェクトを選択します。
[転送ルール] で、転送ルールを選択します。
転送ルールに、内部 IP アドレス、ポート、および次のいずれかのターゲットを指定します。
- リージョン バックエンド サービス
- グローバル / リージョン ターゲット HTTPS プロキシ
- リージョン ターゲット TCP プロキシ
[完了] をクリックします。
省略可: ヘルスチェック対象のターゲットを追加するには、[ターゲットを追加] をクリックします。
省略可: ヘルスチェックを受けない IPv4 アドレスを許可するには、次の操作を行います。
- [ヘルスチェックを受けない IPv4 アドレスを許可する] を選択します。
- [IPv4 アドレス] に、IPv4 アドレスを入力します。
省略可: 別の位置情報ポリシーのルーティング データのセットを追加するには、[ルーティング データを追加] をクリックします。
[次へ] をクリックします。
フェイルオーバー
[プライマリ ヘルスチェック対象のターゲット] セクションで、次の操作を行います。
- [プロジェクト] で、転送ルールが存在するプロジェクトを選択します。
[転送ルール] で、転送ルールを選択します。
転送ルールに、内部 IP アドレス、ポート、および次のいずれかのターゲットを指定します。
- リージョン バックエンド サービス
- グローバル / リージョン ターゲット HTTPS プロキシ
- リージョン ターゲット TCP プロキシ
[Backup geolocation policy] セクションで、次の操作を行います。
- [ジオフェンス] で [無効] または [有効] を選択します。ジオフェンスを有効にすると、特定の位置情報のすべてのエンドポイントが異常であったとしても、トラフィックをその地域内に制限できます。
- [ソース リージョン] で、有効な Google Cloud ソース リージョンを選択します。
[IPv4 ヘルスチェック対象のターゲット] セクションで、次の操作を行います。
- [プロジェクト] で、転送ルールが存在するプロジェクトを選択します。
[転送ルール] で、転送ルールを選択します。
転送ルールに、次のいずれかのオプションを指定します。
- 内部 IP アドレス、ポート、リージョン バックエンド サービス
- HTTP(S) プロキシ
- TCP プロキシ
すべてのプライマリ IP アドレスに異常がある場合、トラフィックはこのバックアップ位置情報ポリシーに従って自動的に処理されます。
[完了] をクリックします。
省略可: ヘルスチェック対象のターゲットを追加するには、[ターゲットを追加] をクリックします。
省略可: ヘルスチェックを受けない IPv4 アドレスを許可するには、次の操作を行います。
- [ヘルスチェックを受けない IPv4 アドレスを許可する] を選択します。
- [IPv4 アドレス] に、IPv4 アドレスを入力します。
省略可: バックアップ位置情報ポリシーのルーティング データの別のセットを追加するには、[ルーティング データを追加] をクリックします。
[トリクル トラフィック(%)] フィールドに、プライマリ ターゲットのヘルスチェック ステータスに関係なく、フェイルオーバー ターゲットに送信されるトラフィックの割合を入力します。
[次へ] をクリックします。
確認と作成
- [Review] をクリックします。
- ルーティング ポリシー構成を使用して、Cloud DNS レコードセットを確認します。
- [作成] をクリックします。
gcloud
リソース レコード セットの場合は、ルーティング ポリシー(routingPolicy
)または DNS データ(rrdatas
)のいずれかを設定します。両方を設定することはできません。ルーティング ポリシーと DNS データの間で変更するには、リソース レコード セットを更新します。たとえば、DNS データ(rrdatas
)を含むリソース レコード セットをルーティング ポリシー(routingPolicy
)を含むように変更するには、rrdatas
を削除し、routingPolicy
を同じリソース レコード セットに追加します。
限定公開ゾーンの DNS ルーティング ポリシーを作成するには、次の操作を行います。
gcloud dns record-sets create
コマンドを実行します。
WRR
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=WRR \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
以下を置き換えます。
RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。 サポートされているレコードタイプの一覧については、DNS ルーティング ポリシーでサポートされるレコードタイプをご覧ください。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_DATA
:${weight_percent}:${rrdatas}
形式のセミコロン区切りリストを入力します(例:.8=203.0.113.1;.2=198.51.100.1
)。重みは正の小数で指定します。ターゲットにルーティングされるトラフィックの割合は、すべての重みの合計に対する個々の重みの比率から計算されます。転送ルール名は有効な値であり、ヘルスチェックが行われます。--enable-health-checking
: ヘルスチェックを有効にするフラグ。このフラグを使用する場合は、--routing-policy-data
フィールドに IP アドレスではなく転送ルール名を指定する必要があります。
位置情報
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
以下を置き換えます。
RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。 サポートされているレコードタイプの一覧については、DNS ルーティング ポリシーでサポートされるレコードタイプをご覧ください。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_DATA
:${region}=${IP_address}
形式のセミコロン区切りリストを入力します(例:asia-east1=198.51.100.1;us-central1=203.0.113.1
)。1 つのリージョンに複数の IP アドレスを指定するには、IP アドレスをカンマで区切ります。転送ルール名は有効な値であり、ヘルスチェックが行われます。--enable-health-checking
: ヘルスチェックを有効にするフラグ。このフラグを使用する場合は、--routing-policy-data
フィールドに IP アドレスではなく転送ルール名を指定する必要があります。
ジオフェンスを使用した位置情報
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-geo-fencing \ --enable-health-checking
以下を置き換えます。
RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。 サポートされているレコードタイプの一覧については、DNS ルーティング ポリシーでサポートされるレコードタイプをご覧ください。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_DATA
:${region}=${IP_address}
形式のセミコロン区切りリストを入力します(例:asia-east1=198.51.100.1;us-central1=203.0.113.1
)。1 つのリージョンに複数の IP アドレスを指定するには、IP アドレスをカンマで区切ります。転送ルール名は有効な値であり、ヘルスチェックが行われます。--enable-geo-fencing
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な場合に、トラフィックをリージョンを超えてフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。ジオフェンスを無効にするには、--no-enable-geo-fencing
を使用します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。デフォルトはfalse
です。--enable-health-checking
: ヘルスチェックを有効にするフラグ。このフラグを使用する場合は、--routing-policy-data
フィールドに IP アドレスではなく転送ルール名を指定する必要があります。
フェイルオーバー
gcloud dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=FAILOVER \ --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \ --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \ --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \ --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \ --enable-geo-fencing \ --enable-health-checking
以下を置き換えます。
RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。 サポートされているレコードタイプの一覧については、DNS ルーティング ポリシーでサポートされるレコードタイプをご覧ください。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_PRIMARY_DATA
:FAILOVER
ルーティング ポリシーに使用するプライマリ ターゲット。このターゲットは、1 つ以上の転送ルール(forwarding-rule-1
など)への参照にする必要があります。これらの転送ルールの少なくとも 1 つが正常である限り、すべての正常な転送ルールの IP アドレスを使用してこの名前のクエリに応答します。ROUTING_POLICY_BACKUP_DATA_TYPE
:FAILOVER
ルーティング ポリシーの場合、バックアップ データで使用されるルーティング ポリシーのタイプ。これはGEO
である必要があります。ROUTING_POLICY_BACKUP_DATA
:FAILOVER
ルーティング ポリシーに使用するバックアップ ターゲット。これらのターゲットは、--routing-policy-primary-data
で指定されたすべての転送ルールが異常な場合に使用されます。Cloud DNS は、地域ベースのバックアップ ターゲットのみをサポートします。このフィールドの形式は、--routing-policy-type = 'GEO'
の場合の--routing-policy-data
のものと一致します(asia-east1=forwarding-rule-2
など)。BACKUP_DATA_TRICKLE_RATIO
: プライマリが正常な場合であっても、バックアップ ターゲットに送信するトラフィックの割合。この割合は 0 ~ 1 にする必要があります(0.1
など)。デフォルトは0
に設定されています。--enable-geo-fencing
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な場合に、トラフィックをリージョンを超えてフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。ジオフェンスを無効にするには、--no-enable-geo-fencing
を使用します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。デフォルトはfalse
です。--enable-health-checking
: ヘルスチェックを有効にするフラグ。このフラグを使用する場合は、--routing-policy-data
フィールドに IP アドレスではなく転送ルール名を指定する必要があります。
API
resourceRecordSets.create
メソッドを使用します。
WRR
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "wrr": { "items": [ { "weight": WEIGHT, "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, { "weight": WEIGHT, "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, ] } } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)WEIGHT
:WRR
ポリシーの場合、${weight_percent}=${rrdatas}
形式のセミコロン区切りリスト(.8=10.128.1.1;.2=10.130.1.1
など)。任意の正の小数で重みを指定します。 注: 重みは正の数値として指定する必要があります。ターゲットにルーティングされるトラフィックの割合は、すべての重みの合計に対する個々の重みの比率から計算されます。LOAD_BALANCER_TYPE
: ロードバランサのタイプ(regionalL4ilb
、globalL7ilb
、regionalL7ilb
など)。 この設定は省略可能です。IP_ADDRESS
: 転送ルールが提供する IP アドレスPORT_NUMBER
: ポート番号IP_PROTOCOL
: ヘルスチェックに使用されるプロトコルを指定します。有効なオプションはtcp
とudp
です。NETWORK_URL
: この転送ルールが適用されるネットワーク URLREGION
: 転送ルールを作成したリージョン
位置情報
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "geo": { "items": [ { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCING_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT_ID" "region": "REGION" } ] } }, } ] } } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)LOCATION
:GEO
ポリシーの場合に、ポリシーを作成する位置情報(asia-east1
など)LOAD_BALANCER_TYPE
: ロードバランサのタイプ(regionalL4ilb
、globalL7ilb
、regionalL7ilb
など)。 この設定は省略可能です。IP_ADDRESS
: 転送ルールが提供する IP アドレスPORT_NUMBER
: 内部ロードバランサのポート番号IP_PROTOCOL
: ヘルスチェックに使用されるプロトコルを指定します。有効なオプションはtcp
とudp
です。NETWORK_URL
: この転送ルールが適用されるネットワーク URLREGION
: 転送ルールを作成したリージョン
フェイルオーバー
フェイルオーバー オプションでは、Cloud DNS は GEO
ポリシーのみをサポートします。
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "primaryBackup": { "trickleTraffic": TRICKLE_TRAFFIC, "primaryTargets": { "internalLoadBalancers": [ { "ipAddress": "IP_ADDRESS" "ipProtocol": "IP_PROTOCOL" "loadBalancerType": "LOAD_BALANCER_TYPE" "networkUrl": "NETWORK_URL" "port": "PORT_NUMBER" "project": "PROJECT_ID" "region": "REGION" } ] }, "backupGeoTargets": { "enableFencing": ENABLE_FENCING, "items": [ { "location": "LOCATION", "rrdatas": [ "RRDATA" ] }, { "location": "LOCATION", "rrdatas": [ "RRDATA" ] } ] } }, } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)TRICKLE_TRAFFIC
: プライマリが正常であっても、バックアップ ターゲットに送信するトラフィックの割合は 0 ~ 1 にする必要があります(0.1
など)IP_ADDRESS
: 転送ルールが提供する IP アドレスPORT_NUMBER
: ポート番号IP_PROTOCOL
: ヘルスチェックに使用されるプロトコルを指定します。有効なオプションはtcp
とudp
です。NETWORK_URL
: この転送ルールが適用されるネットワーク URLPORT_NUMBER
: 内部ロードバランサのポート番号REGION
: 転送ルールを作成したリージョンENABLE_FENCING
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な場合に、トラフィックをリージョンを超えてフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。 デフォルトはfalse
です。LOCATION
:GEO
ポリシーの場合に、ポリシーを作成する位置情報(asia-east1
など)WEIGHT
:WRR
ポリシーの場合、${weight_percent}=${rrdatas}
形式のセミコロン区切りリスト(.8=10.128.1.1;.2=10.130.1.1
など)。任意の正の小数で重みを指定します。RRDATA
: リソース レコードセットに関連付けられた任意の値(例:198.51.100.5
)。rrdata1
rrdata2
rrdata3
のように、複数の値を入力することもできます(例:198.51.100.1
203.0.113.1
...)。
一般公開ゾーンの DNS ルーティング ポリシーを作成する(プレビュー)
一般公開ゾーンの DNS ルーティング ポリシーを作成するには、次の操作を行います。
コンソール
構成を開始する
Google Cloud コンソールで Cloud DNS の [ゾーン] ページに移動します。
レコードを追加するマネージド ゾーンの名前をクリックします。
[ゾーンの詳細] ページで、[ルーティング ポリシー付きで追加] をクリックします。
ベースデータ
省略可: [ルーティング ポリシー付きのレコードセットを作成] ページの [DNS 名] に、事前入力された DNS 名のサブドメインを入力します(例:
mail
)。末尾にドットが自動的に追加されます。[リソース レコードのタイプ] でオプションを選択します。
[TTL] で、リソース レコードの有効期間を数値で入力します。これはキャッシュに保存できる時間です。この値は正の整数である必要があります
省略可: [TTL ユニット] で、時間の単位(例:
minutes
)を選択します。デフォルトはminutes
に設定されています。[次へ] をクリックします。
ルーティング ポリシーの種類
- [ルーティング ポリシー] で、[重み付きラウンドロビン]、[位置情報]、[フェイルオーバー] のいずれかを選択します。
- [次へ] をクリックします。
ルーティング ポリシーのデータ
WRR
[重み] に、リソース レコード(RR)データのサブセクションに対応する重みを入力します。
この重みは 0.0~1,000.0 の範囲内の正の数字でなければなりません。ターゲットにルーティングされるトラフィックの割合は、すべての重みの合計に対する個々の重みの比率から計算されます。たとえば、ターゲット A の重みが 25、ターゲット B の重みが 75 で、合計重みが 100 の場合、Cloud DNS は、合計トラフィックの 25/100 = 0.25(25%)をターゲット A にルーティングし、75/100= 0.75(75%)をターゲット B にルーティングします。
[外部 IP アドレス] セクションで、次の操作を行います。
- [IP アドレス] に外部 IP アドレスを入力します。
- 省略可: 現在のプロジェクト内の Google Cloud リソースの外部 IP アドレスを選択するには、[選択] をクリックします。
- ヘルスチェックを有効にするには、[ヘルスチェック 1] を選択します。
- 省略可: 別の外部 IP アドレスを追加するには、[IP アドレスを追加] をクリックします。
- [完了] をクリックします。
前の手順でヘルスチェックを有効にした場合、[ヘルスチェック] リストでヘルスチェックを選択するか、次の手順で新しいヘルスチェックを作成します。
- [新しいヘルスチェックを作成] をクリックします。
- [名前] に、ヘルスチェックの名前を入力します。
- 省略可: [説明] に、ヘルスチェックの説明を入力します。
- [ソース リージョン] で、ヘルスチェック プローブを送信する 3 つの Google Cloud リージョンを選択します。
- 省略可: [プロトコル] リストでプロトコルを選択します。
[ポート] にポート番号を入力します。
プロトコルとポート番号によって、Cloud DNS がヘルスチェック プローブを送信する方法が決まります。
省略可: コンテンツ ベースのヘルスチェックを構成するには、[レスポンス] に、それぞれ最大 1,024 文字の ASCII 文字(シングルバイト)の待ち受けるレスポンス文字列を指定します。
省略可: ヘルスチェックのロギングを有効にするには、[ログ] で [オン] を選択します。
[チェック間隔] で、ヘルスチェック プローブ間の時間間隔(秒単位)を入力します。チェック間隔は、あるプローバーから発行された 1 回のプローブ開始から、同じプローバーから発行された次の回のプローブ開始までの時間です。
[タイムアウト] で、Google Cloud でプローブに対するレスポンスを待つ時間(秒)を入力します。
[正常しきい値] で、バックエンドが正常であると判定する際に要求されるプローブ結果成功の連続回数を入力します。
[異常しきい値] で、バックエンドを異常とみなすために連続して失敗しなければならないプローブ結果の数を入力します。
[作成] をクリックします。
[次へ] をクリックします。
位置情報
- [ジオフェンス] で [無効] または [有効] を選択します。ジオフェンスを有効にすると、特定の位置情報のすべてのエンドポイントが異常であったとしても、トラフィックをその地域内に制限できます。
- [ソース リージョン] で、有効な Google Cloud ソース リージョンを選択します。
- [外部 IP アドレス] セクションで、次の操作を行います。
- [IP アドレス] に外部 IP アドレスを入力します。
- 省略可: 現在のプロジェクト内の Google Cloud リソースの外部 IP アドレスを選択するには、[選択] をクリックします。
- ヘルスチェックを有効にするには、[ヘルスチェック 1] を選択します。
- 省略可: 別の外部 IP アドレスを追加するには、[IP アドレスを追加] をクリックします。
- [完了] をクリックします。
前の手順でヘルスチェックを有効にした場合、[ヘルスチェック] リストでヘルスチェックを選択するか、次の手順で新しいヘルスチェックを作成します。
- [新しいヘルスチェックを作成] をクリックします。
- [名前] に、ヘルスチェックの名前を入力します。
- 省略可: [説明] に、ヘルスチェックの説明を入力します。
- [ソース リージョン] で、ヘルスチェック プローブを送信する 3 つの Google Cloud リージョンを選択します。
- 省略可: [プロトコル] リストでプロトコルを選択します。
[ポート] にポート番号を入力します。
プロトコルとポート番号によって、Cloud DNS がヘルスチェック プローブを送信する方法が決まります。
省略可: コンテンツ ベースのヘルスチェックを構成するには、[レスポンス] に、それぞれ最大 1,024 文字の ASCII 文字(シングルバイト)の待ち受けるレスポンス文字列を指定します。
省略可: ヘルスチェックのロギングを有効にするには、[ログ] で [オン] を選択します。
[チェック間隔] で、ヘルスチェック プローブ間の時間間隔(秒単位)を入力します。チェック間隔は、あるプローバーから発行された 1 回のプローブ開始から、同じプローバーから発行された次の回のプローブ開始までの時間です。
[タイムアウト] で、Google Cloud でプローブに対するレスポンスを待つ時間(秒)を入力します。
[正常しきい値] で、バックエンドが正常であると判定する際に要求されるプローブ結果成功の連続回数を入力します。
[異常しきい値] で、バックエンドを異常とみなすために連続して失敗しなければならないプローブ結果の数を入力します。
[作成] をクリックします。
[次へ] をクリックします。
フェイルオーバー
- [プライマリ外部 IP アドレス ターゲット] セクションの [IP アドレス] に、このレコードのヘルスチェック対象のプライマリ外部 IP アドレスを入力します。
- 省略可:現在のプロジェクト内の Google Cloud リソースのプライマリ外部 IP アドレスを選択するには、[選択] をクリックします。
- 省略可: 別のプライマリ外部 IP アドレスを追加するには、[ターゲットを追加] をクリックします。DNSSEC が有効になっている場合、プライマリ外部 IP アドレス ターゲットは 1 つだけ追加できます。
- [バックアップ位置情報ポリシー] セクションで、次の操作を行います。
- [ジオフェンス] で [無効] または [有効] を選択します。ジオフェンスを有効にすると、特定の位置情報のすべてのエンドポイントが異常であったとしても、トラフィックをその地域内に制限できます。
- [ソース リージョン] で、有効な Google Cloud ソース リージョンを選択します。
- [外部 IP アドレス] セクションで、次の操作を行います。
- [IP アドレス] に外部 IP アドレスを入力します。
- 省略可: 現在のプロジェクト内の Google Cloud リソースの外部 IP アドレスを選択するには、[選択] をクリックします。
- ヘルスチェックを有効にするには、[ヘルスチェック 1] を選択します。
- 省略可: 別の外部 IP アドレスを追加するには、[IP アドレスを追加] をクリックします。
- [完了] をクリックします。
前の手順でヘルスチェックを有効にした場合、[ヘルスチェック] リストでヘルスチェックを選択します。
既存のヘルスチェックがない場合は、新しいヘルスチェックを作成します。
- [新しいヘルスチェックを作成] をクリックします。
- [名前] に、ヘルスチェックの名前を入力します。
- 省略可: [説明] に、ヘルスチェックの説明を入力します。
- [ソース リージョン] で、ヘルスチェック プローブを送信する 3 つの Google Cloud リージョンを選択します。
- 省略可: [プロトコル] リストでプロトコルを選択します。
- [ポート] にポート番号を入力します。
プロトコルとポート番号によって、Cloud DNS がヘルスチェック プローブを送信する方法が決まります。
- 省略可: コンテンツ ベースのヘルスチェックを構成するには、[レスポンス] に、それぞれ最大 1,024 文字の ASCII 文字(シングルバイト)の待ち受けるレスポンス文字列を指定します。
- 省略可: ヘルスチェックのロギングを有効にするには、[ログ] で [オン] を選択します。
- [チェック間隔] で、ヘルスチェック プローブ間の時間間隔(秒単位)を入力します。チェック間隔は、あるプローバーから発行された 1 回のプローブ開始から、同じプローバーから発行された次の回のプローブ開始までの時間です。
- [タイムアウト] で、Google Cloud でプローブに対するレスポンスを待つ時間(秒)を入力します。
- [正常しきい値] で、バックエンドが正常であると判定する際に要求されるプローブ結果成功の連続回数を入力します。
- [異常しきい値] で、バックエンドを異常とみなすために連続して失敗しなければならないプローブ結果の数を入力します。
- [作成] をクリックします。
[トリクル トラフィック(%)] フィールドに、プライマリ ターゲットのヘルスチェック ステータスに関係なく、フェイルオーバー ターゲットに送信されるトラフィックの割合を入力します。
[ヘルスチェック] リストで、ヘルスチェックを選択します。
[次へ] をクリックします。
確認と作成
- [Review] をクリックします。
- ルーティング ポリシー構成を使用して、Cloud DNS レコードセットを確認します。
- [作成] をクリックします。
gcloud
一般公開ゾーンの DNS ルーティング ポリシーを作成するには、次の操作を行います。
一般公開ゾーンの DNS ルーティング ポリシーでヘルスチェックを有効にするには、外部エンドポイントのヘルスチェックを作成します。
gcloud beta compute health-checks create
コマンドを実行します。gcloud beta compute health-checks create PROTOCOL HEALTH_CHECK_NAME \ --global \ --check-interval=CHECK_INTERVAL \ --source-regions=SOURCE_REGIONS \ --port=PORT_NUMBER
以下を置き換えます。
PROTOCOL
: ヘルスチェックに使用されるプロトコル。 有効なオプションはhttp
、https
、ssl
、tcp
です。HEALTH_CHECK_NAME
: ヘルスチェックの名前。CHECK_INTERVAL
: ヘルスチェック プローブ システムのある接続の開始から次の接続の開始までの時間。単位は秒です。CHECK_INTERVAL
の値は30
秒から300
秒の範囲で指定してくださいSOURCE_REGIONS
: ヘルスチェック プローブを送信する Google Cloud リージョンのカンマ区切りリスト。PORT_NUMBER
: ヘルスチェック リクエストのポート番号。
ResourceRecordSet
を作成してルーティング ポリシーを適用するには、gcloud beta dns record-sets create
コマンドを実行します。WRR
gcloud beta dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=WRR \ --routing-policy-data=ROUTING_POLICY_DATA \ --health-check=HEALTH_CHECK_NAME
以下を置き換えます。
RRSET_NAME
: 接頭辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_DATA
: ルーティング ポリシーのデータ。${weight_percent}:${rrdatas}
形式のセミコロン区切りリストを入力します(例:.8=203.0.113.1;.2=198.51.100.1
)。重みは正の小数で指定します。重みは0
~1000
の範囲の正の数値にする必要があります。HEALTH_CHECK_NAME
: 前の手順で作成したヘルスチェックの名前。
位置情報
gcloud beta dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --health-check=HEALTH_CHECK_NAME
以下を置き換えます。
RRSET_NAME
: 接頭辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_DATA
: ルーティング ポリシーのデータ。${region}=${IP_address},${IP_address}
形式のセミコロン区切りリストを入力します(例:asia-east1=198.51.100.1;us-central1=203.0.113.1, 203.0.113.2
)。 1 つのリージョンに複数の IP アドレスを指定するには、IP アドレスをカンマで区切ります。転送ルール名は有効な値であり、ヘルスチェックが行われます。HEALTH_CHECK_NAME
: 前の手順で作成したヘルスチェックの名前。
ジオフェンスを使用した位置情報
gcloud beta dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --health-check=HEALTH_CHECK_NAME \ --enable-geo-fencing
以下を置き換えます。
RRSET_NAME
: 接頭辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_DATA
: ルーティング ポリシーのデータ。${region}=${IP_address}
形式のセミコロン区切りリストを入力します(例:asia-east1=198.51.100.1;us-central1=203.0.113.1
)。1 つのリージョンに複数の IP アドレスを指定するには、IP アドレスをカンマで区切ります。転送ルール名は有効な値であり、ヘルスチェックが行われます。HEALTH_CHECK_NAME
: 前の手順で作成したヘルスチェックの名前。--enable-geo-fencing
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な場合に、トラフィックをリージョンを超えてフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。ジオフェンスを無効にするには、--no-enable-geo-fencing
を使用します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。デフォルトはfalse
です。
フェイルオーバー
gcloud beta dns record-sets create RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=FAILOVER \ --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \ --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \ --routing-policy-backup-data-type=ROUTING_POLICY_BACKUP_DATA_TYPE \ --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \ --health-check=HEALTH_CHECK_NAME
以下を置き換えます。
RRSET_NAME
: 接頭辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_PRIMARY_DATA
:FAILOVER
ルーティング ポリシーに使用するプライマリ ターゲット。このターゲットは、1 つ以上の転送ルール(forwarding-rule-1
など)への参照にする必要があります。これらの転送ルールの少なくとも 1 つが正常である限り、すべての正常な転送ルールの IP アドレスを使用してこの名前のクエリに応答します。ROUTING_POLICY_BACKUP_DATA
:FAILOVER
ルーティング ポリシーに使用するバックアップ ターゲット。これらのターゲットは、--routing-policy-primary-data
で指定されたすべての転送ルールが異常な場合に使用されます。Cloud DNS は、地域ベースのバックアップ ターゲットのみをサポートします。このフィールドの形式は、--routing-policy-type = 'GEO'
の場合の--routing-policy-data
のものと一致します(asia-east1=forwarding-rule-2
など)。ROUTING_POLICY_BACKUP_DATA_TYPE
:FAILOVER
ルーティング ポリシーの場合、バックアップ データで使用されるルーティング ポリシーのタイプ。これはGEO
にする必要があります。BACKUP_DATA_TRICKLE_RATIO
: プライマリが正常な場合であっても、バックアップ ターゲットに送信するトラフィックの割合。この割合は 0~1 にする必要があります(0.1
など)。 デフォルトは0
に設定されています。HEALTH_CHECK_NAME
: 前の手順で作成したヘルスチェックの名前。
API
一般公開ゾーンの DNS ルーティング ポリシーでヘルスチェックを有効にするには、
healthChecks.insert
メソッドを使用します。ResourceRecordSet
を作成してルーティング ポリシーを適用するには、resourceRecordSets.create
メソッドを使用します。WRR
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "healthCheck": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME" "wrr": { "items": [{ "weight": WEIGHT, "healthCheckedTargets": { "rrdata": ["RRDATA"] } }, { "weight": 1.0, "healthCheckedTargets": { "rrdata": ["RRDATA", "RRDATA"] } }] } } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。HEALTH_CHECK_NAME
: ヘルスチェックの名前。WEIGHT
:WRR
ポリシーの場合、${weight_percent}=${rrdatas}
形式のセミコロン区切りリスト(.8=10.128.1.1;.2=10.130.1.1
など)。任意の正の小数で重みを指定します。 注: 重みは正の数値で指定する必要があります。ターゲットにルーティングされるトラフィックの割合は、すべての重みの合計に対する個々の重みの比率から計算されます。RRDATA
: リソース レコードセットに関連付けられた任意の値(例:198.51.100.5
)。rrdata1
rrdata2
rrdata3
のように、複数の値を入力することもできます(例:198.51.100.1
、203.0.113.1
)。
位置情報
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "healthCheck": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME" "geo": { "enableFencing": ENABLE_FENCING "items": [{ "location": "LOCATION", "healthCheckedTargets": { "rrdata": ["RRDATA"] } }, { "location": "LOCATION", "healthCheckedTargets": { "rrdata": ["RRDATA", "RRDATA"] } }] } } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。HEALTH_CHECK_NAME
: ヘルスチェックの名前。ENABLE_FENCING
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な場合に、トラフィックをリージョンを超えてフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。有効なオプションはtrue
とfalse
です。このデフォルト設定はfalse
です。LOCATION
:GEO
ポリシーの場合、ポリシーを作成する位置情報(asia-east1
など)。RRDATA
: リソース レコードセットに関連付けられた任意の値(例:198.51.100.5
)。rrdata1
rrdata2
rrdata3
のように、複数の値を入力することもできます(例:198.51.100.1
、203.0.113.1
)。
フェイルオーバー
フェイルオーバー オプションでは、Cloud DNS は
GEO
ポリシーのみをサポートします。POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "healthCheck": "https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/healthChecks/HEALTH_CHECK_NAME" "primaryBackup": { "trickleTraffic": TRICKLE_TRAFFIC, "primaryTargets": { "rrdata": ["RRDATA"] } "backupGeoTargets": { "enableFencing": ENABLE_FENCING, "items": [{ "location": "LOCATION", "rrdatas": ["RRDATA] }, { "location": "LOCATION", "rrdatas": ["RRDATA", "RRDATA"] }] } } } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)。RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)。TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)。HEALTH_CHECK_NAME
: ヘルスチェックの名前。TRICKLE_TRAFFIC
: プライマリが正常であっても、バックアップ ターゲットに送信するトラフィックの割合は 0 ~ 1 にする必要があります(0.1
など)。RRDATA
: リソース レコードセットに関連付けられた任意の値(例:198.51.100.5
)。rrdata1
rrdata2
rrdata3
のように、複数の値を入力することもできます(例:198.51.100.1
、203.0.113.1
)。ENABLE_FENCING
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な状態になると、リージョンを超えてトラフィックをフェイルオーバーする必要があるかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。 デフォルトの設定はfalse
です。LOCATION
:GEO
ポリシーの場合、ポリシーを作成する位置情報(asia-east1
など)。
DNS ルーティング ポリシーを更新する
リソース レコードセットのルーティング ポリシーを更新する手順は次のとおりです。
コンソール
Google Cloud コンソールで、Cloud DNS の [ゾーン] ページに移動します。
リソース レコードセットのルーティング ポリシーを更新するゾーンをクリックします。
[ゾーンの詳細] ページで、更新するリソース レコードセットの横にある [edit 編集] をクリックします。
更新が完了したら、[保存] をクリックします。
gcloud
gcloud dns record-sets update
コマンドを実行します。
WRR
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=WRR \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
位置情報
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-health-checking
ジオフェンスを使用した位置情報
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=GEO \ --routing-policy-data=ROUTING_POLICY_DATA \ --enable-geo-fencing --enable-health-checking
フェイルオーバー
gcloud dns record-sets update RRSET_NAME \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \ --routing-policy-type=FAILOVER \ --enable-geo-fencing \ --routing-policy-primary-data=ROUTING_POLICY_PRIMARY_DATA \ --routing-policy-backup-data=ROUTING_POLICY_BACKUP_DATA \ --backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO \ --enable-health-checking
以下を置き換えます。
RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)サポートされているレコードタイプの一覧については、リソース レコードのタイプの選択をご覧ください。
MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。ROUTING_POLICY_TYPE
: ルーティング ポリシーのタイプ。重み付きラウンドロビンの場合は
WRR
、位置情報の場合はGEO
、フェイルオーバー ポリシーの場合はFAILOVER
を入力します。選択されたタイプがポリシーになった後は、このフィールドを変更できません。ポリシーを削除して、別のタイプの新しいポリシーを追加することのみ可能です。ROUTING_POLICY_DATA
: ルーティング ポリシーのデータ--routing-policy-type=WRR
に${weight_percent}:${rrdatas}
形式のセミコロン区切りリストを入力します(例:.8=203.0.113.1;.2=198.51.100.1
)。重みは正の小数で指定します。ターゲットにルーティングされるトラフィックの割合は、すべての重みの合計に対する個々の重みの比率から計算されます。転送ルール名は有効な値であり、ヘルスチェックが行われます。--routing-policy-type=GEO
に${region}=${IP_address}
形式のセミコロン区切りリストを入力します(例:asia-east1=198.51.100.1;us-central1=203.0.113.1
)。1 つのリージョンに複数の IP アドレスを指定するには、IP アドレスをカンマで区切ります。転送ルール名は有効な値であり、ヘルスチェックが行われます。--routing-policy-type=FAILOVER
に、作成した転送ルールの名前を形式${region}=${Forwarding rule name}
で入力します。
--enable-geo-fencing
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な状態になると、リージョンを超えてトラフィックをフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。ジオフェンスを無効にするには、--no-enable-geo-fencing
を使用します。設定されていない場合、リージョン内のすべてのエンドポイントが異常になり、Cloud DNS は次に最も近いリージョンにクエリを転送します。デフォルトの設定はfalse
です。ROUTING_POLICY_PRIMARY_DATA
:FAILOVER
ルーティング ポリシーに使用するプライマリ ターゲット。このターゲットは、1 つ以上の転送ルール(forwarding-rule-1
など)への参照にする必要があります。これらの転送ルールの少なくとも 1 つが正常である限り、すべての正常な転送ルールの IP アドレスを使用してこの名前のクエリに応答します。ROUTING_POLICY_BACKUP_DATA
:FAILOVER
ルーティング ポリシーに使用するバックアップ ターゲット。これらのターゲットは、--routing-policy-primary-data
で指定されたすべての転送ルールが異常な場合に使用されます。Cloud DNS は、地域ベースのバックアップ ターゲットのみをサポートします。このフィールドの形式は、--routing-policy-type = 'GEO'
の場合の--routing-policy-data
のものと一致します(asia-east1=forwarding-rule-2
など)。BACKUP_DATA_TRICKLE_RATIO
: プライマリが正常な場合であっても、バックアップ ターゲットに送信するトラフィックの割合。この割合は 0 ~ 1 にする必要があります(0.1
など)。デフォルトは 0 に設定されています。--enable-health-checking
:--routing-policy-data
への rrdata として提供される転送ルールのヘルスチェックを有効にします。
API
resourceRecordSets.patch
メソッドを使用します。rrset.rrdatas
または rrset.routingPolicy
のいずれかを指定します。routingPolicy
を指定する場合は、新しい routingPolicy
フィールド全体を指定する必要があります。
WRR
WRR
ポリシーには、次のメソッドを使用します。
PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME.", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "wrrPolicy": { "item": [ { "weight": WEIGHT, "rrdatas": ["RRDATA"] }, { "weight": WEIGHT, "rrdatas": ["RRDATA"] } ], } } }
位置情報
次のメソッドを使用します。
PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": "RRSET_NAME", "type": "RRSET_TYPE", "ttl": TTL, "routingPolicy": { "geo": { "items": [ { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCER_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT" "region": "REGION" } ] } }, { "location": "LOCATION", "healthCheckedTargets": { "internalLoadBalancers": [ { "loadBalancerType": "LOAD_BALANCING_TYPE" "ipAddress": "IP_ADDRESS" "port" : "PORT_NUMBER" "ipProtocol": "IP_PROTOCOL" "networkUrl": "NETWORK_URL" "project": "PROJECT" "region": "REGION" } ] } }, } ] } } }
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)TTL
: リゾルバがこのResourceRecordSet
をキャッシュに保存する秒単位の TTL(例:30
)TRICKLE_TRAFFIC
: プライマリが正常であっても、バックアップ ターゲットに送信するトラフィックの割合は 0 ~ 1 にする必要があります(0.1
など)ENABLE_FENCING
:GEO
ルーティング ポリシーの場合、リージョン内のすべてのエンドポイントが異常な場合に、トラフィックをリージョンを超えてフェイルオーバーするかどうかを決定します。設定すると、そのリージョンのすべてのエンドポイントが異常な場合であっても、Cloud DNS は常に最も近いリージョンにクエリを送信します。設定されていない場合、リージョン内のすべてのエンドポイントが正常でない場合は、Cloud DNS は次に最も近いリージョンにクエリを送信します。 デフォルトはfalse
です。LOCATION
:GEO
ポリシーの場合に、ポリシーを更新する位置情報(asia-east1
など)WEIGHT
:WRR
ポリシーの場合、${weight_percent}=${rrdatas}
形式のセミコロン区切りリスト(.8=10.128.1.1;.2=10.130.1.1
など)。任意の正の小数で重みを指定します。RRDATA
: リソース レコードセットに関連付けられた任意の値(例:198.51.100.5
)。rrdata1
rrdata2
rrdata3
のように、複数の値を入力することもできます(例:198.51.100.1
203.0.113.1
...)。LOAD_BALANCER_TYPE
: ロードバランサのタイプ(regionalL4ilb
、globalL7ilb
、regionalL7ilb
など)。 この設定は省略可能です。IP_ADDRESS
: 転送ルールが提供する IP アドレスPORT_NUMBER
: ポート番号IP_PROTOCOL
: ヘルスチェックに使用されるプロトコルを指定します。有効なオプションはtcp
とudp
です。NETWORK_URL
: この転送ルールが適用されるネットワーク URLREGION
: 転送ルールを作成したリージョン
DNS ルーティング ポリシーを削除する
ルーティング ポリシーを削除するには、ルーティング ポリシーを含むリソース レコードセットを削除する必要があります。方法は次のとおりです。
コンソール
Google Cloud コンソールで、Cloud DNS の [ゾーン] ページに移動します。
リソース レコードセットを削除するゾーンをクリックします。
[ゾーンの詳細] ページで、削除するリソース レコードセットの DNS 名の横にあるチェックボックスをオンにします。
[レコードセットを削除] をクリックします。
gcloud
gcloud dns record-sets delete
コマンドを実行します。
gcloud dns record-sets delete RRSET_NAME \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE \
以下を置き換えます。
RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:service.example.com
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)サポートされているレコードタイプの一覧については、リソース レコードのタイプの選択をご覧ください。
MANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(service-zone
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。
API
resourceRecordSets.delete
メソッドを使用します。
DELETE https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
以下を置き換えます。
PROJECT_ID
: プロジェクトの IDMANAGED_ZONE
: このResourceRecordSet
が関連付けられているマネージド ゾーン(my-zone-name
など)。このResourceRecordSet
の名前には、接尾辞としてマネージド ゾーンの DNS 名が必要です。RRSET_NAME
: 接尾辞としてこのゾーンの DNS 名を使用した受信クエリと一致する DNS 名(例:test.example.com
)RRSET_TYPE
: このResourceRecordSet
のリソース レコードタイプ(A
など)
次のステップ
- マネージド ゾーンを操作するには、ゾーンの作成、変更、削除をご覧ください。
- Cloud DNS の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。
- Cloud DNS の概要については、Cloud DNS の概要をご覧ください。