2025/10/5更新
タイトルのサービス名に誤りがあったので修正しました
はじめに
本記事ではAmazon Route 53で取得したドメインを他のAWSアカウントに移管してみたので、そのメモになります。
対象のドメイン移管
本記事で取り扱う範囲は以下の通りです。
| 移管元と移管先のレジストラ | 本記事の対象/対象外 | 備考 |
|---|---|---|
| AWS(Amazon Route 53)からAWS(Amazon Route 53) | 🙆♂️対象 | ドメインを別の AWS アカウントに転送する |
| AWS(Amazon Route 53)から別レジストラ | ❌対象外 | Amazon Route 53 から別のレジストラにドメインを移行する |
| 別レジストラからAWS(Amazon Route 53) | ❌対象外 | ドメイン登録の Amazon Route 53 への移管 |
| 別レジストラから別レジストラ | ❌対象外 | 各レジストラのドキュメントを確認しましょう |
料金
移管にかかる料金については下記の通りです。
| 移管元と移管先のレジストラ | 料金 | 備考 |
|---|---|---|
| AWS(Amazon Route 53)からAWS(Amazon Route 53) | 無料 | ドメインの移管 「あるアカウントから別の AWS アカウントへのドメインの移管には料金はかかりません。」 |
| AWS(Amazon Route 53)から別レジストラ | AWS側は無料 ※Details transferring a domain AWAY from AWS | 移管先の料金は各レジストラのドキュメントを確認しましょう |
| 別レジストラからAWS(Amazon Route 53) | TLD(Top Level Domain)によって料金が発生 | Amazon Route 53 Pricing for Domain Registration |
| 別レジストラから別レジストラ | 各レジストラのドキュメントを確認しましょう |
前提
- ドメイン移管元のAWSアカウントが存在していること。また、このアカウントのRoute 53でドメインを取得済みであること
- ドメイン移管先のAWSアカウントが存在していること
- 移管元AWSアカウントで以下のいずれかの権限を保持しているユーザアカウントで操作可能なこと
- AdministratorAccess
- AmazonRoute53DomainsFullAccess
- AmazonRoute53FullAccess
- PowerUserAccess
- TransferDomains、DisableDomainTransferLock、およびRetrieveDomainAuthCodeのすべてのアクション
手順(ドメインを別のAWSアカウントに転送する)
では実際にやってみます。
移管元AWSアカウントでの作業
移管元のAWSアカウントにログイン後、Route 53のコンソールを開きます。

その後、左のメニューから「登録済みドメイン」を選択します。その中から、移管対象のドメインを選択します。

画面右上にある、「移管(OUT)」から「別のAWSアカウントに移管」を選択します。すると、移管先のAWSアカウントIDの入力が求められますので入力します。

その後、移管時に必要なパスワードが表示されますので忘れずにメモしておきましょう。メニュー左の「リクエスト」を確認すると、ステータスが「進行中」でタイプが「ドメインの内部移管(アウト)」のリクエストが存在することを確認できます。
もしパスワードのコピーを忘れてしまった場合は、一度進行中のリクエストをキャンセル(アクションから選択可能)し、再度同様の手順を踏むことで対処します
移管先AWSアカウントでの作業
移管先AWSアカウントではドメインの受け入れを行います。移管先AWSアカウントでRoute 53のコンソールのリクエストを確認すると、ステータスが「アクションが必要です」、タイプが「でのドメインの内部移管(Internal transfer of domain in)」となっているリクエストが確認できます。
アクションから「承認」を押すことで次のステップに進めます。

その後、移管元AWSアカウントで生成されたパスワードを入力し、利用規約に同意して移管します。
手順(ホストゾーンを別のAWSアカウントに移行する)
ここまででドメインの移管はできましたが、ドメイン取得時に自動的に作成されるホストゾーンは移管されません。ホストゾーンを移管しなくてもDNSの名前解決には影響ありませんが、移管元と移管先のアカウント管理が異なる人・組織になる場合は注意が必要です。
例えば、移管元のAWSアカウントでDNSのレコードを変更・削除すると該当ドメインのサービス提供に影響が生じる可能性があります。また、レコードの追加・変更・削除を行いたい際に都度移管元AWSアカウントでの作業が必要になります。
こういった運用上のリスクを抑えるためにも、ホストゾーンの移管も極力実施した方が良いでしょう。
最初の手順では、移行時に影響がないかを確認するため、「ゾーンの可用性をモニタリングする」とあり、クエリログが設定されている前提の手順があります。今回はクエリログを設定していないため割愛します。
TTL設定を下げる
ドメイン取得時、NSレコードのTTLは172800秒(2日)となっています。ホストゾーン移管時の影響を抑えるため、TTLを60秒~900秒にしておくことが推奨されています。
移管元のAWSアカウントで該当のNSレコードを編集し、任意の値に変更します(ここでは900秒にしました)。

Route 53では現状DNSSEC設定の移行をサポートしていないらしく、DNSSECを設定している場合はDSレコードをあらかじめ削除しておきます(今回は割愛しています)。
新しいホストゾーンを作成する
移管先のAWSアカウントでホストゾーンを作成します。ドメイン名は移管したドメインと同じ名前を入力し、パブリックホストゾーンで作成します。

ヘルスチェックの移行
ヘルスチェックを作成している場合は下記手順に従って移行します。
レコードの移行
レコードの移行には「コンソール上から実施」「AWS CLIを利用」する2種類の方法があります。移行対象のレコードが少ない場合はコンソールで十分ですので、今回はコンソールから実施します。
まずは移管元AWSアカウントでホストゾーンに記載されているNSレコードとSOAレコード以外のレコードのレコード名と値の組み合わせをメモしておきます。
その後、移管先AWSアカウントで、メモしたNSレコードとSOAレコード以外のレコードを新規作成します。

その後、登録済みドメインから、右上のアクションの中から「ネームサーバーの編集」をクリックし、新しいホストゾーンのNSレコードに記載があるネームサーバーの値を反映させます。

これで変更を保存すると、ネームサーバーの変更が行われます。
新しく作成したホストゾーンのNSレコードおよびSOAレコードの値は書き換えないでください。
何を血迷ったか、筆者は古いホストゾーンの値をコピーして書き換えてしまいました。
その後、nslookupで名前解決ができないことに冷や汗をかき、ホストゾーンを再作成した上で上記の対応を行うことで無事に名前解決できるようになりました。
まとめにも書きますが、ホストゾーンの移管は手動じゃなくてコマンドで実施することをお勧めします...
移管元AWSアカウントのホストゾーン削除
ここまででホストゾーンの移行も完了していますので、移管元のホストゾーンも削除したいのですが、ドキュメントには下記記載がありますので、2日間は削除しないでおきます。
新しいホストゾーンのネームサーバーを使用するようにドメイン登録を更新してから少なくとも 48 時間は、古いホストゾーンもこのホストゾーン内のレコードも削除しないでください。DNS リゾルバーがそのホストゾーンのレコードの使用を停止する前に古いホストゾーンを削除した場合、リゾルバーで新しいホストゾーンの使用を開始するまでドメインはインターネットで利用できないおそれがあります。
2日経過後、移管元AWSアカウントでホストゾーンの削除をしますが、ドメイン取得に自動で作成されたNSレコードとSOAレコード以外に作成したレコードがある場合は削除ができないので先に削除しておきます。(レコードが残っている場合は下記のような警告が出ます)

以上でホストゾーンの移管も完了です。
まとめ
ドメインの移管手順自体はすごくシンプルですが、ホストゾーンの移管は万が一値を間違えると名前解決ができなくなるので慎重に作業が必要になると思いました。単純な作業ほど細心の注意を払いましょう。
ホストゾーンの移管は手動(コンソールから行う方法)とAWS CLIを利用する方法がありますが、軽微な作業であってもコマンドを活用するAWS CLIを利用する方法を推奨します。nslookupやdigで焦ることになります(1敗)。
参考



