📍

AWS×GCPマルチクラウド環境でのプライベートDNS名前解決を実現する

に公開

株式会社ナレッジワークのSREのtomです。

AWSとGCPのマルチクラウド環境でシステムを構築する際、異なるクラウド間での名前解決は重要な課題になります。特にVPC内部でのみ有効なプライベートDNSを、相互に解決できる仕組みを構築する必要があります。

本記事では、AWSとGCPをVPN接続した上で、クラウド間のプライベートDNS名前解決を行う構成について紹介します。

なお、AWSとGCPのVPN接続については、以下のドキュメントを参考にVPC間でプライベートネットワークを相互に疎通しています(ここでは詳細を割愛します)。
https://repost.aws/ja/knowledge-center/vpn-google-dynamic-routing

背景と課題

AWSとGCPの各クラウドでは、それぞれ以下のように内部専用のDNSゾーンが用意されていると仮定します。

  • AWS: aws.internal
  • GCP: gcp.internal

これらのゾーンは通常、それぞれのクラウド内VPCからしか解決できません。しかし、マルチクラウド環境でサービス間通信を行う際には、相手クラウドのプライベートホスト名を解決できる必要があります(AWS ALBなどは作成後でもIPアドレスが変更されるため)。
そこで、Route 53(AWS)とCloud DNS(GCP)を組み合わせて、双方向の名前解決を可能にする仕組みを構築しました。

GCPからAWSへの名前解決

まずは、GCPからAWS Route53のPrivateホストゾーンaws.internalの名前解決について説明します。

AWS側の対応

Route53のResolver Inbound Endpointを作成します。

作成するとIPアドレスが設定されるので、こちらをGCP側の対応で使用します。

GCP側の対応

Cloud DNSのサーバーポリシーとゾーン(フォワーダールール)を作成します。ゾーンでは、aws.internalドメインの問い合わせをAWS Route 53のResolver Inbound Endpointに転送するよう設定します(転送先DNSサーバーのロケーションをAWS Route 53のResolver Inbound EndpointのIPで設定)。

公式ドキュメント「転送ゾーンの作成」の転送先ネットワークを確認すると、以下の要件があります。

Cloud DNS は、すべてのお客様に 35.199.192.0/19 ソース範囲を使用します。この範囲には、 Google Cloud VPC ネットワークから、または VPC ネットワークに接続されたオンプレミス ネットワークからのみアクセスできます。

GCPがDNSクエリを転送する際は35.199.192.0/19のIPが使用されるため、AWS側がこのグローバルIP宛にレスポンスする際に、VPNを経由させる必要があります。

今回、VPN接続のルーティングはBGPを利用したので、Cloud Routerの「アドバタイズされた IP範囲」のカスタムIP範囲に35.199.192.0/19を設定します。

これにより、GCPから*.aws.internalのFQDNを解決できるようになります。

AWSからGCPへの名前解決

次にAWSからGCP Cloud DNSのPrivateゾーンgcp.internalの名前解決について説明します。

GCP側の対応

Cloud DNSでサーバーポリシーの受信クエリ転送を有効化し、gcp.internalのプライベートゾーンを作成します。

Cloud Firewallにて、AWS VPC範囲からのDNSトラフィックを許可します。

AWS側の対応

Route 53のResolver Outbound Endpointを作成します。

ルールにてgcp.internalへの問い合わせをGCPCloud DNSのサーバーポリシー「受信クエリ転送 IP」を設定します(ターゲットIPアドレスに設定)。

これにより、AWSから*.gcp.internalのFQDNを解決できるようになります。

まとめ

AWSとGCPのDNSサービスを活用することで、異なるクラウド間での名前解決ができました。

この構成により、アプリケーションから相手クラウドの内部FQDNを解決できるため、マルチクラウド環境におけるサービス連携が実現できます。

Cloud DNSのIP範囲によるルーティングの設定がやや難解ではありますが、マネージドサービスであるため設定自体は簡単にできます。

本記事がAWSとGCPのマルチクラウド環境構築の参考になれば幸いです。

株式会社ナレッジワーク

Discussion