Closed10
AWS アカウント間でドメイン移管する
大きく分けて 2 段階
- ドメイン移管
- 移管元アカウントで移管リクエストを作成する
- 移管先アカウントで移管リクエストを受諾する
- ネームサーバー移行
- 移管元アカウントの NS レコードの TTL を短くする
- 移管先アカウントでホストゾーンを作る
- 移管元アカウントからレコードをエクスポートする
- 移管先アカウントにレコードをインポートする
- 移管先アカウントのドメインにネームサーバーを登録する
- 移行できたか確かめる
- 移管元アカウントのホストゾーンを削除する
移管元アカウントで移管リクエストを作成する
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-transfer-between-aws-accounts.html
DOMAIN_NAME="your.domain.name"
DESTINATION_ACCOUNT_ID="000000000000"
aws route53domains \
transfer-domain-to-another-aws-account \
--region us-east-1 \
--domain-name ${DOMAIN_NAME} \
--account-id ${DESTINATION_ACCOUNT_ID}
DOMAIN_NAME
には移管したいドメイン名を、 DESTINATION_ACCOUNT_ID
には移管先アカウントの ID を設定する
Route53 自体はリージョン関係ないのだが、 CLI で設定するときには --region us-east-1
が必要みたい
プロファイル指定など必要であれば --profile
オプションで指定する
以降、プロファイルはすべて必要なときに指定する
結果として JSON が返ってくるので Password
は控えておく
{
"OperationId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"Password": "yyyyyyyyyyyyyy"
}
移管先アカウントで移管リクエストを受諾する
DOMAIN_NAME="your.domain.name"
aws route53domains \
accept-domain-transfer-from-another-aws-account \
--region us-east-1 \
--domain-name ${DOMAIN_NAME} \
--password "yyyyyyyyyyyyyy"
--password
には移管リクエスト作成時に出力されたパスワードを指定する
成功すると OperationId
プロパティのみの JSON が返ってくる
これでドメイン移管はおわり
移管元アカウントの NS レコードの TTL を短くする
AWS コンソールで操作するのが速い
ボタンで設定できる 1min 60sec にしておく
移管先アカウントでホストゾーンを作る
移管元アカウントからレコードをエクスポートする
OLD_HOSTED_ZONE_ID="XXXXXXXXXXXXXXXXXXXXX"
aws route53 \
list-resource-record-sets \
--hosted-zone-id ${OLD_HOSTED_ZONE_ID} \
--output json > records.old.json
ホストゾーンの ID は AWS コンソールに載っているので引っ張ってくる
移管先アカウントにレコードをインポートする
移行元アカウントからエクスポートしたレコードをインポート可能な形に変形する
cat records.old.json \
| jq '.ResourceRecordSets[] | select(.Type | test("(NS|SOA)") | not)' \
| jq -s 'map({Action: "CREATE", ResourceRecordSet:.}) | {Comment: "importing DNS records", Changes: .}' \
> commands.json
で、こう
NEW_HOSTED_ZONE_ID="XXXXXXXXXXXXXXXXXXXX"
aws route53 \
change-resource-record-sets \
--hosted-zone-id ${NEW_HOSTED_ZONE_ID} \
--change-batch file://commands.json
移管先アカウントのドメインにネームサーバーを登録する
移行できたか確かめる
dig your.domain.name NS
移管先アカウントのネームサーバーが出てきたら OK
移管元アカウントのホストゾーンを削除する
このスクラップは2024/05/15にクローズされました