普段 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"
          }
        ]
      }
    }
  ]
}
EOSAWS 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/C3QYC83OA0KX5KStatus が 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 レコードを更新する方法をまとめました。 今回はロードバランサのエイリアスリソースのレコー ... 続きを見る 
