マルチアカウントの AWS 環境でハイブリッドネットワークの DNS 解決をセットアップする - AWS 規範的ガイダンス

マルチアカウントの AWS 環境でハイブリッドネットワークの DNS 解決をセットアップする

Anvesh Koganti、Amazon Web Services

概要

このパターンは、複数の Amazon Web Services (AWS) アカウントを含むハイブリッドネットワーク環境で DNS 解決を設定するための包括的なソリューションを提供します。これにより、Amazon Route 53 Resolver エンドポイントを介してオンプレミスネットワークと AWS 環境間の双方向 DNS 解決が可能になります。このパターンは、マルチアカウントで一元化されたアーキテクチャで DNS 解決を可能にする 2 つのソリューションを示しています。

  • 基本セットアップでは Route 53 プロファイルを使用しません。これにより、あまり複雑でない中小規模のデプロイのコストを最適化できます。

  • 高度なセットアップでは、Route 53 プロファイルを使用してオペレーションを簡素化します。より大規模な、または複雑な DNS デプロイに最適です。

注記

実装する前に、「制限事項」セクションでサービスの制限とクォータを確認してください。決定するときは、管理のオーバーヘッド、コスト、運用の複雑さ、チームの専門知識などの要因を考慮してください。

前提条件と制限事項

前提条件

  • 共有サービスとワークロードアカウント全体にデプロイされた Amazon Virtual Private Cloud (Amazon VPC) を使用する AWS マルチアカウント環境 (アカウント構造の AWS ベストプラクティスに従って AWS Control Tower を介して設定されていることが望ましい)。

  • オンプレミスネットワークと AWS 環境間の既存のハイブリッド接続 (AWS Direct Connect または AWS Site-to-Site VPN)。

  • VPC 間のレイヤー 3 ネットワーク接続用の Amazon VPC ピアリング、AWS Transit Gateway、または AWS クラウド WAN。(この接続はアプリケーショントラフィックに必要です。DNS 解決が機能するためには必要ありません。DNS 解決は VPC 間のネットワーク接続を独立して操作します。)

  • オンプレミス環境で実行されている DNS サーバー。

機能制限

  • Route 53 Resolver のエンドポイント、ルール、プロファイルはリージョンコンストラクトであり、グローバル組織の複数の AWS リージョンでレプリケーションが必要になる場合があります。

  • Route 53 Resolver、プライベートホストゾーン、およびプロファイルの Service Quotas の包括的なリストについては、Route 53 ドキュメントの「クォータ」を参照してください。

アーキテクチャ

ターゲットテクノロジースタック

  • Route 53 アウトバウンドエンドポイントとインバウンドエンドポイント

  • 条件付き転送用の Route 53 Resolver ルール

  • AWS Resource Access Manager (AWS RAM)

  • Route 53 プライベートホストゾーン

ターゲットアーキテクチャ

アウトバウンドエンドポイントとインバウンドエンドポイント

次の図は、AWS からオンプレミスへの DNS 解決フローを示しています。これは、ドメインがオンプレミスでホストされているアウトバウンド解決の接続設定です。この設定に関連するプロセスの概要を次に示します。詳細については、「エピック」セクションを参照してください。

  1. アウトバウンド Route 53 Resolver エンドポイントを共有サービス VPC にデプロイします。

  2. オンプレミスでホストされているドメインの共有サービスアカウントに Route 53 Resolver ルール (転送ルール) を作成します。

  3. オンプレミスのホストドメインを解決する必要があるリソースをホストする他のアカウントの VPC とルールを共有して関連付けます。これは、このセクションで後述するように、ユースケースに応じてさまざまな方法で行うことができます。

AWS のインバウンドエンドポイントとアウトバウンドエンドポイントからオンプレミス DNS 解決へのフロー。

接続を設定した後の、アウトバウンド解決に関連するステップは次のとおりです。

  1. Amazon Elastic Compute Cloud (Amazon EC2) インスタンスは、db.onprem.example.com の DNS 解決リクエストを VPC+2 アドレスの VPC の Route 53 Resolver に送信します。

  2. Route 53 Resolver は Resolver ルールをチェックし、アウトバウンドエンドポイントを使用してリクエストをオンプレミス DNS サーバー IP に転送します。

  3. アウトバウンドエンドポイントは、リクエストをオンプレミス DNS IP に転送します。トラフィックは、共有サービス VPC とオンプレミスデータセンター間の確立されたハイブリッドネットワーク接続を経由します。

  4. オンプレミス DNS サーバーはアウトバウンドエンドポイントに応答し、VPC の Route 53 Resolver に応答を転送します。Resolver は EC2 インスタンスに応答を返します。

次の図は、オンプレミス環境から AWS への DNS 解決フローを示しています。これは、ドメインが AWS でホストされているインバウンド解決の接続設定です。この設定に関連するプロセスの概要を次に示します。詳細については、「エピック」セクションを参照してください。

  1. インバウンド Resolver エンドポイントを共有サービス VPC にデプロイします。

  2. 共有サービスアカウントにプライベートホストゾーンを作成します (一元的アプローチ)。

  3. プライベートホストゾーンを共有サービス VPC に関連付けます。これらのゾーンを共有し、VPC 間の DNS 解決用のクロスアカウント VPC と関連付けます。これは、このセクションで後述するように、ユースケースに応じてさまざまな方法で行うことができます。

オンプレミスのインバウンドエンドポイントとアウトバウンドエンドポイントから AWS DNS 解決へのフロー。

接続を設定した後の、インバウンド解決に関連するステップは次のとおりです。

  1. オンプレミスリソースは、ec2.prod.aws.example.com の DNS 解決リクエストをオンプレミス DNS サーバーに送信します。

  2. オンプレミス DNS サーバーは、ハイブリッドネットワーク接続を介して共有サービス VPC 内のインバウンド Resolver エンドポイントにリクエストを転送します。

  3. インバウンド Resolver エンドポイントは、VPC Route 53 Resolver による解決によって、関連するプライベートホストゾーンでリクエストを検索し、適切な IP アドレスを取得します。

  4. これらの IP アドレスはオンプレミス DNS サーバーに返され、オンプレミスリソースに応答が返されます。

この設定により、オンプレミスリソースは、インバウンドエンドポイントを介して適切なプライベートホストゾーンにクエリをルーティングすることで、AWS プライベートドメイン名を解決できます。このアーキテクチャでは、プライベートホストゾーンは共有サービス VPC に一元化されるため、単一のチームによる一元的な DNS 管理が可能になります。これらのゾーンは、VPC 間の DNS 解決のユースケースに対応するために、多くの VPC に関連付けることができます。または、DNS ドメインの所有権と管理を各 AWS アカウントに委任することもできます。この場合、各アカウントは独自のプライベートホストゾーンを管理し、各ゾーンを中央共有サービス VPC に関連付けて、オンプレミス環境との統合解決を行います。この分散型アプローチは、このパターンの範囲外です。詳細については、「Hybrid Cloud DNS Options for Amazon VPC」ホワイトペーパーの「Scaling DNS management across multiple accounts and VPCs」を参照してください。

Resolver エンドポイントを使用して基本的な DNS 解決フローを確立する場合は、AWS アカウント全体で Resolver ルールとプライベートホストゾーンの共有と関連付けを管理する方法を決定する必要があります。これには 2 つのアプローチ方法があります。1 つは「基本セットアップ」セクションで説明されているように、AWS RAM を使用して Resolver ルールとプライベートホストゾーンの直接的な関連付けを共有して、セルフマネージド共有する方法、もう 1 つは「高度なセットアップ」セクションで説明されているように Route 53 プロファイルを使用する方法です。どちらを選択するかは、組織の DNS 管理設定と運用要件によって異なります。次のアーキテクチャ図は、異なるアカウントにまたがる複数の VPC を含むスケーリングされた環境を示しています。これは、一般的なエンタープライズデプロイを表しています。

基本セットアップ

基本セットアップでは、マルチアカウント AWS 環境でのハイブリッド DNS 解決の実装で、AWS RAM を使用して Resolver 転送ルールとプライベートホストゾーンの関連付けを共有し、オンプレミスと AWS リソース間の DNS クエリを管理します。この方法では、オンプレミスネットワークに接続された共有サービス VPC 内の一元化された Route 53 Resolver エンドポイントを使用して、インバウンドとアウトバウンド両方の DNS 解決を効率的に処理します。

  • アウトバウンド解決の場合、Resolver 転送ルールは共有サービスアカウントで作成され、AWS RAM を使用して他の AWS アカウントと共有されます。この共有は、同じリージョン内のアカウントに限定されます。その後、ターゲットアカウントはこれらのルールを VPC に関連付け、それらの VPC 内のリソースを有効にしてオンプレミスドメイン名を解決できます。

  • インバウンド解決の場合、プライベートホストゾーンは共有サービスアカウントに作成され、共有サービス VPC に関連付けられます。これらのゾーンは、Route 53 API、AWS SDK、または AWS Command Line Interface (AWS CLI) を使用して、他のアカウントの VPC に関連付けることができます。関連付けられた VPC のリソースは、プライベートホストゾーンで定義された DNS レコードを解決できます。これにより、AWS 環境全体で統一された DNS ビューが作成されます。

次の図は、この基本セットアップの DNS 解決フローを示しています。

マルチアカウントの AWS 環境でハイブリッド DNS 解決に基本セットアップを使用します。

この設定は、限られた規模で DNS インフラストラクチャを操作する場合に適しています。ただし、環境が大きくなるにつれて、管理が難しくなる可能性があります。プライベートホストゾーンと Resolver ルールを共有し、VPC と個別に関連付ける方法を管理する際に発生する運用オーバーヘッドは、スケールとともに大幅に増加します。さらに、プライベートホストゾーンあたり 300 VPC の関連付け制限などの Service Quotas は、大規模なデプロイで制約要因になる可能性があります。高度なセットアップは、これらの課題に対処します。

高度なセットアップ

Route 53 プロファイルは、複数の AWS アカウントにまたがるハイブリッドネットワークの DNS 解決を管理するために合理化されたソリューションを提供します。プライベートホストゾーンと Resolver ルールを個別に管理する代わりに、DNS 設定を 1 つのコンテナにグループ化します。これは、リージョン内の複数の VPC とアカウント間で簡単に共有および適用できます。このセットアップでは、DNS 設定の管理を大幅に簡素化しながら、一元化された Resolver エンドポイントアーキテクチャを共有サービス VPC で維持します。

次の図は、高度なセットアップの DNS 解決フローを示しています。

マルチアカウントの AWS 環境でハイブリッド DNS 解決に Route 53 プロファイルを使用する高度なセットアップを使用します。

Route 53 プロファイルを使用すると、プライベートホストゾーンの関連付け、Resolver 転送ルール、DNS ファイアウォールルールを 1 つの共有可能なユニットにパッケージ化できます。共有サービスアカウントでプロファイルを作成し、AWS RAM を使用してメンバーアカウントと共有できます。プロファイルを共有してターゲット VPC に適用すると、必要なすべての関連付けと設定がサービスによって自動的に処理されます。これにより、DNS 管理の運用オーバーヘッドが大幅に削減され、拡大する環境に優れたスケーラビリティが提供されます。

自動化とスケール

CloudFormation や Terraform などの Infrastructure as Code (IaC) ツールを使用して、Route 53 Resolver エンドポイント、ルール、プライベートホストゾーン、プロファイルを自動的にプロビジョニングおよび管理します。DNS 設定を継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインと統合して、一貫性、再現性、迅速な更新を実現します。

ツール

AWS のサービス

  • AWS Resource Access Manager (AWS RAM) により、AWS アカウント全体でリソースを安全に共有し、運用上のオーバーヘッドを削減して、可視性と監査性を実現します。

  • Amazon Route 53 Resolver は AWS リソースからの DNS クエリに再帰的に応答し、デフォルトですべての VPC で使用できます。Resolver エンドポイントと条件付き転送ルールを作成して、オンプレミスデータセンターと VPC の間の DNS 名前空間を解決できます。

  • Amazon Route 53 プライベートホストゾーンは、ドメインとそのサブドメインへの DNS クエリに対し、Route 53 がどのように応答するかに関する情報を保持するコンテナです。

  • Amazon Route 53 プロファイルを使用すると、DNS 関連の Route 53 設定を多くの VPC とさまざまな AWS アカウントで簡潔に適用および管理できます。

ベストプラクティス

このセクションでは、Route 53 Resolver を最適化するためのベストプラクティスについていくつか説明します。これらは Route 53 のベストプラクティスのサブセットを表します。包括的なリストについては、「Amazon Route 53 のベストプラクティス」を参照してください。

リゾルバーエンドポイント

  • 再帰的なルーティングを防ぐため、VPC の関連付けを慎重に計画して DNS アーキテクチャを設計してください。VPC がインバウンドエンドポイントをホストする場合は、循環参照を作成できる Resolver ルールに関連付けないでください。

  • アカウント間で DNS リソースを共有するときに AWS RAM を戦略的に使用して、クリーンなルーティングパスを維持します。

詳細については、Route 53 ドキュメントの「Resolver エンドポイントを使用した設定のループを回避する」を参照してください。

Resolver エンドポイントのスケーリング

  • 1 秒あたりのクエリ数 (QPS) が多い環境では、エンドポイントで ENI あたり 10,000 QPS の制限があることに注意してください。DNS QPS をスケールするために、エンドポイントにさらに ENI を追加できます。

  • Amazon CloudWatch は InboundQueryVolume および OutboundQueryVolume メトリクスを提供します (CloudWatch ドキュメントを参照してください)。しきい値が特定の値 (10,000 QPS の 80% など) を超えた場合に警告するモニタリングルールを設定することをお勧めします。

  • Resolver エンドポイントのステートフルセキュリティグループルールを設定して、大量のトラフィックが発生している最中に接続追跡制限によって DNS クエリスロットリングが発生しないようにします。セキュリティグループでの接続追跡の仕組みに関する詳細は、Amazon EC2 ドキュメントの「Amazon EC2 セキュリティグループの接続の追跡」を参照してください。

詳細については、Route 53 ドキュメントの「Resolver エンドポイントのスケーリング」を参照してください。

Resolver エンドポイントの高可用性を提供する

  • 冗長性を確保するために、少なくとも 2 つのアベイラビリティーゾーンに IP アドレスを持つインバウンドエンドポイントを指定します。

  • メンテナンスやトラフィックの急増時に可用性を確保するための追加のネットワークインターフェイスをプロビジョニングします。

詳細については、Route 53 ドキュメントの「Resolver エンドポイントの高可用性」を参照してください。

エピック

タスク説明必要なスキル

インバウンドエンドポイントをデプロイします。

Route 53 Resolverはインバウンド エンドポイントを使用して、DNS クエリをオンプレミスネットワークから Route 53 Resolver に転送します。手順については、Route 53 ドキュメントの「VPC へのインバウンド DNS クエリの転送」 を参照してください。受信エンドポイント IP アドレスをメモしておきます。

AWS 管理者、クラウド管理者

アウトバウンドエンドポイントをデプロイします。

Route 53 Resolver は、アウトバウンドエンドポイントを使用して DNS クエリをオンプレミスの DNS レゾルバ に送信します。手順については、Route 53 ドキュメントの「アウトバウンド DNS クエリのネットワークへの転送」 を参照してください。出力エンドポイント ID を書きとめておきます。

AWS 管理者、クラウド管理者
タスク説明必要なスキル

AWS でホストされているドメインのプライベートホストゾーンを作成します。

このゾーンには、オンプレミス環境から解決する必要がある AWS ホストドメイン (例えば prod.aws.example.com) のリソースの DNS レコードが格納されます。手順については、Route 53 ドキュメントの「プライベートホストゾーンの作成」を参照してください。

プライベートホストゾーンを作成するときは、VPC を同じアカウントが所有するホストゾーンに関連付ける必要があります。このために共有サービス VPC を選択します。

AWS 管理者、クラウド管理者

基本セットアップ: プライベートホストゾーンを他のアカウントの VPC に関連付けます。

基本セットアップを使用している場合 (「アーキテクチャ」セクションを参照):

メンバーアカウント VPC のリソースが、このプライベートホストゾーンの DNS レコードを解決できるようにするには、VPC をホストゾーンに関連付ける必要があります。関連付けを承認してから、プログラムで関連付けを作成する必要があります。手順については、Route 53 ドキュメントの「Amazon VPC を異なる AWS アカウントで作成したプライベートホストゾーンに関連付ける」を参照してください。

AWS 管理者、クラウド管理者

高度なセットアップ: Route 53 プロファイルを設定および共有します。

高度なセットアップを使用している場合 (「アーキテクチャ」セクションを参照):

  1. Route 53 プロファイルを作成し、関連するプライベートホストゾーンを関連付けます。手順については、Route 53 ドキュメントの「Route 53 プロファイルの作成」を参照してください。

  2. AWS RAM を使用してプロファイルをメンバーアカウントと共有し、共有プロファイルをターゲット VPC に関連付けます。手順については、Route 53 ドキュメントの「Route 53 プロファイルの共有」および「Route 53 プロファイルを VPC に関連付ける」を参照してください。

注記

組織の構造と DNS 要件によっては、異なるアカウントまたはワークロードに対して複数のプロファイルを作成および管理する必要がある場合があります。

AWS 管理者、クラウド管理者
タスク説明必要なスキル

オンプレミスでホストされているドメインの転送ルールを作成します。

このルールは、オンプレミスドメイン (onprem.example.com など) の DNS クエリを、すべてオンプレミスの DNS Resolver に転送するよう Route 53 Resolver に指示します。このルールを作成するには、オンプレミスの DNS Resolver の IP アドレスとアウトバウンドエンドポイント ID が必要です。手順については、Route 53 ドキュメントの 「転送ルールの作成」 を参照してください。

AWS 管理者、クラウド管理者

基本セットアップ: 転送ルールを共有し、他のアカウントの VPC に関連付けます。

基本セットアップを使用している場合:

転送ルールを有効にするには、ルールを共有して、他のアカウントの VPC に関連付ける必要があります。その後、Route 53 Resolver はドメインを解決する際にルールを考慮します。手順については、Route 53 ドキュメントの「他の AWS アカウントとの Resolver ルールの共有と共有ルールの使用」および「転送ルールを VPC に関連付ける」を参照してください。

AWS 管理者、クラウド管理者

高度なセットアップ: Route 53 プロファイルを設定および共有します。

高度なセットアップを使用している場合:

  1. 前のステップで Route 53 プロファイルを既に作成している場合は、同じプロファイルを使用できます。そうでない場合は、Route 53 プロファイルを作成し、関連する Resolver 転送ルールを関連付けます。手順については、Route 53 ドキュメントの「Route 53 プロファイルの作成」を参照してください。

  2. AWS RAM を使用してプロファイルをメンバーアカウントと共有し、共有プロファイルをターゲット VPC に関連付けます。手順については、Route 53 ドキュメントの「Route 53 プロファイルの共有」および「53 プロファイルを VPC に関連付ける」を参照してください。

注記

組織の構造と DNS 要件によっては、異なるアカウントまたはワークロードに対して複数のプロファイルを作成および管理する必要がある場合があります。

AWS 管理者、クラウド管理者
タスク説明必要なスキル

オンプレミスの DNS Resolver で条件付き転送を設定します。

解決のためにオンプレミス環境から AWS に DNS クエリを送信するには、インバウンドエンドポイント IP アドレスを指すようにオンプレミス DNS Resolver で条件付き転送を設定する必要があります。これにより、AWS ホストドメイン (prod.aws.example.com など) のすべての DNS クエリを解決のために Route 53 Resolver のインバウンドエンドポイント IP アドレスに転送するよう DNS Resolver に指示します。

ネットワーク管理者
タスク説明必要なスキル

AWS からオンプレミス環境への DNS 解決をテストします。

転送ルールが関連付けられている VPC 内のインスタンスから、オンプレミスホストドメイン (db.onprem.example.com の場合など) の DNS クエリを実行します。

ネットワーク管理者

オンプレミス環境から AWS への DNS 解決をテストします。

オンプレミスサーバーから、AWS のホストドメイン (ec2.prod.aws.example.com の場合など) の DNS 解決を実行します。

ネットワーク管理者

関連リソース