【Route53】プライベートホストゾーンを他のAWSアカウントのVPCに関連付ける方法

記事タイトルとURLをコピーする

こんにちは!イーゴリです。

今回は、下記の構成図のように、AWSアカウントAのRoute 53プライベートホストゾーンと、アカウントBのVPCを関連付ける方法をご紹介します。

前提条件

対象のVPCでは、enableDnsHostnames と enableDnsSupport を有効(true)に設定しておく必要があります。

Amazon VPC の設定 プライベートホストゾーンを使用するには、次の Amazon VPC 設定で true を指定する必要があります:
・enableDnsHostnames
・enableDnsSupport

docs.aws.amazon.com

手順

下記の制約があるため、AWS CLIを使います。

VPC とプライベートホストゾーンの関連付けを許可する場合や、関連付けを作成する場合はいずれも、Route 53 コンソールを使用することはできません。

docs.aws.amazon.com

変更前の確認(アカウントA)

コマンド:

aws route53 get-hosted-zone --id Z06263833MIV466 

出力結果:

{
    "HostedZone": {
        "Id": "/hostedzone/Z06263833MIV466",
        "Name": "license-manager-user-subscriptions-license-server.amazon.com.",
        "CallerReference": "1733199117",
        "Config": {
            "PrivateZone": true
        },
        "ResourceRecordSetCount": 4
    },
    "VPCs": [
        {
            "VPCRegion": "ap-northeast-1",
            "VPCId": "vpc-07d12d2e135d"
        }
    ]
}

VPCの関連付け(アカウントA)

コマンド:

aws route53 create-vpc-association-authorization \
--hosted-zone-id Z06263833MIV466 \         
--vpc VPCRegion=ap-northeast-1,VPCId=vpc-0e6632f68337

出力結果:

{
    "HostedZoneId": "Z06263833MIV466",
    "VPC": {
        "VPCRegion": "ap-northeast-1",
        "VPCId": "vpc-0e6632f68337"
    }
}

認証リクエストの送信(アカウントB)

コマンド:

aws route53 associate-vpc-with-hosted-zone \
--hosted-zone-id Z06263833MIV466 \
--vpc VPCRegion=ap-northeast-1,VPCId=vpc-0e6632f68337

出力結果:

{
    "ChangeInfo": {
        "Id": "/change/C08098311XQ2BR3",
        "Status": "PENDING",
        "SubmittedAt": "2025-04-08T03:23:52.622000+00:00",
        "Comment": ""
    }
}

変更後の確認(アカウントA)

コマンド:

aws route53 get-hosted-zone --id Z06263833MIV466 

出力結果:

{
    "HostedZone": {
        "Id": "/hostedzone/Z06263833MIV466",
        "Name": "license-manager-user-subscriptions-license-server.amazon.com.",
        "CallerReference": "1733199117",
        "Config": {
            "PrivateZone": true
        },
        "ResourceRecordSetCount": 4
    },
    "VPCs": [
        {
            "VPCRegion": "ap-northeast-1",
            "VPCId": "vpc-07d12d2e135d"
        },
        {
            "VPCRegion": "ap-northeast-1",
            "VPCId": "vpc-0e6632f68337"
        }
    ]
}

動作確認

アカウントBにあるEC2から下記のコマンドを実行します。

例:

dig <対象レコード.ドメイン名>

コマンド:

dig test.license-manager-user-subscriptions-license-server.amazon.com

出力結果:

; <<>> DiG 9.18.33 <<>> test.license-manager-user-subscriptions-license-server.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2672
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test.license-manager-user-subscriptions-license-server.amazon.com. IN A

;; ANSWER SECTION:
test.license-manager-user-subscriptions-license-server.amazon.com. 300 IN A 192.168.1.1

;; Query time: 0 msec
;; SERVER: 192.168.0.2#53(192.168.0.2) (UDP)
;; WHEN: Tue Apr 08 08:22:20 UTC 2025
;; MSG SIZE  rcvd: 110

上記の結果にテストレコードが表示されているため、問題ありません。

注意点(関連付け承認の解除)

VPCの関連付けが完了したら、承認(Authorization)を削除することが推奨されています。

docs.aws.amazon.com 推奨 – VPC をホストゾーンと関連付けるために、ここでの許可を削除します。許可を削除しても関連付けには影響しませんが、今後 この VPC とホストゾーンを再度関連付けることはできません。

承認情報を削除せずに残しておくと、意図しないVPCからの関連付けが許可される可能性があり、セキュリティ上のリスクとなるため注意が必要です。

関連付け承認の解除は以下のコマンドで実行できます。

aws route53 delete-vpc-association-authorization \
--hosted-zone-id ゾーンID> \
--vpc VPCRegion=XXX,VPCId=vpc-XXX

アカウント間のネットワーク通信のパターン

今回は、AWSアカウント間でのRoute 53のVPC関連付け方法をご紹介しましたが、この設定だけではアカウント間のネットワーク通信は行われません。

DNSによる名前解決は可能になりますが、実際に対象リソースへ通信するためには、別途ネットワーク接続を構成する必要があります。

代表的な構成パターンとしては、以下のようなものがあります。

VPCピアリング

シンプルにVPC同士を接続する方法で、小規模な構成に適しています。

ただし、接続するVPCごとに個別にピアリング設定が必要となるため、VPC数が増えるとフルメッシュ構成となり、管理が複雑になります。将来的にネットワークの拡張が想定される場合は、Transit Gateway などの利用を検討するとよいでしょう。

VPC数が少ない場合はシンプルですが、VPCが増えるにつれて接続数は n(n-1)/2 で増加します。例えば6つのVPCをフルメッシュで接続すると、15本のピアリング設定が必要になります。新しいVPCを追加するたびに、既存の全VPCとの接続設定が必要となり、管理コストが急増します。

Transit Gateway

一方、Transit Gatewayを使用するとハブ&スポーク構成となり、各VPCはTGWへの接続1本を追加するだけで済みます。 複数のVPCやアカウントを集約して接続できるため、大規模環境やマルチアカウント構成に適しています。また、VPCピアリングは比較的コストを抑えられる一方で、Transit Gateway は構成がシンプルになる反面コストが高くなる傾向があるため、運用のしやすさとコストのバランスを考慮して選択することが重要です。

AWS PrivateLink(VPCエンドポイント)

特定のサービスに対してプライベート接続を提供する方法で、通信範囲を限定したい場合に有効です。

簡易的な構成であれば VPCピアリング、複数アカウントや大規模環境では Transit Gateway、特定サービスのみ公開したい場合は PrivateLink といったように、ユースケースに応じて選択することが重要です。

以上、御一読ありがとうございました。

本田 イーゴリ (記事一覧)

クロスインダストリー第2本部 インフラ技術課

・2026 AWS Ambassadors
・2026 Japan AWS Top Engineers (Services)
・2026 Japan All AWS Certifications Engineers
・2024 Japan AWS Top Engineers (Security)
・EC-Council CCSE
・Azure AZ-900

趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽