Route53 の HostedZone を作成した直後、レコードが一つもない時には Import 機能を使用できますが、既存のレコードの場合では使用できません。
また、Route 53 API のリクエスト頻度は、1 秒あたり 5 件のリクエストの制限があります。
大量のレコードを追加・変更したい場合に、change-resource-record-sets コマンドの --change-batch オプションが便利です!
1. jsonファイルを作成します
jsonファイルの中に、ChangeResourceRecordSets リクエストを記載することで、後ほどchange-resource-record-setsコマンドに渡せて実行できます。
リクエストのアクションは三種類で、CREATE、DELETE、UPSERT です。
CREATE は新規のレコードの作成、DELETEはレコードの削除、UPSERTはレコードの変更です。
ドキュメントでは一つのリクエストしか記載してなかったのですが、実は複数まとめて記載することができます。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/simple-resource-record-route53-cli/
sample.json
{
"Comment": "CREATE a record ",
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "a.example.com",
"Type": "A",
"TTL": 60,
"ResourceRecords": [{ "Value": "192.0.1.1" }]
}
},{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "b.example.com",
"Type": "A",
"TTL": 60,
"ResourceRecords": [{ "Value": "192.0.1.2" }]
}
},{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "c.example.com",
"Type": "A",
"TTL": 60,
"ResourceRecords": [{ "Value": "192.0.1.3" }]
}
}]
}
2. change-resource-record-sets コマンドを実行します
$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json