普段 Route53 のレコードの更新には CloudFormation や Terraform を使うことが多いのですが、AWS CLI を使って Route 53 の A レコードを更新する機会があったので備忘録。手順は AWS CLI を使用して Amazon Route 53 にシンプルなリソースレコードセットを作成するにはどうすればよいですか? を参考にしました。
目次
json ファイルを作成する
以下のコマンドを参考に、AWS CLI で Route 53 のレコードを更新するための json ファイルを作成します。Action
は UPSERT
が便利です。レコードが存在しなければ作成、存在していれば更新(削除してから作成)してくれます。複数のレコードの変更を一度に行うこともできます。
cat <<EOS > sample.json
{
"Comment": "CREATE/DELETE/UPSERT a record",
"Changes": [
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "example.com",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "4.4.4.4"
}
]
}
}
]
}
EOS
AWS CLI でレコードの変更リクエストを作成する
以下のコマンドでレコードを変更します。--hosted-zone-id
オプションはご自身の Hosted Zone の ID に置き換えてください。
aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json
実行をするとステータスと ID が返ってきます。ID はこの後の進捗確認のために使います。
{
"ChangeInfo": {
"Status": "PENDING",
"Comment": "CREATE/DELETE/UPSERT a record",
"SubmittedAt": "2022-03-03T09:11:14.444000+00:00",
"Id": "/change/C3QYC83OA0KX5K"
}
}
AWS CLI で返ってきた ID を指定して、変更リクエストの状態を確認できます。
aws route53 get-change --id /change/C3QYC83OA0KX5K
Status が INSYNC
になれば変更完了です。
{
"ChangeInfo": {
"Status": "INSYNC",
"Comment": "CREATE/DELETE/UPSERT a record",
"SubmittedAt": "2022-03-03T09:11:14.444000+00:00",
"Id": "/change/C3QYC83OA0KX5K"
}
}
次回はロードバランサのエイリアスレコードを作成する方法を紹介します。
-
AWS CLIを使ってRoute 53のロードバランサのエイリアスレコードを作成する
前回は Route53 の A レコードを更新する方法をまとめました。 今回はロードバランサのエイリアスリソースのレコー ...
続きを見る