AWS CLIを使ってRoute 53のAレコードを作成する

2022年3月19日

普段 Route53 のレコードの更新には CloudFormation や Terraform を使うことが多いのですが、AWS CLI を使って Route 53 の A レコードを更新する機会があったので備忘録。手順は AWS CLI を使用して Amazon Route 53 にシンプルなリソースレコードセットを作成するにはどうすればよいですか? を参考にしました。

目次

  1. json ファイルを作成する
  2. AWS CLI でレコードの変更リクエストを作成する

json ファイルを作成する

以下のコマンドを参考に、AWS CLI で Route 53 のレコードを更新するための json ファイルを作成します。ActionUPSERTが便利です。レコードが存在しなければ作成、存在していれば更新(削除してから作成)してくれます。複数のレコードの変更を一度に行うこともできます。

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 レコードを更新する方法をまとめました。 今回はロードバランサのエイリアスリソースのレコー ...

続きを見る

-技術ブログ
-