AWS CLIを使ってRoute 53のロードバランサのエイリアスレコードを作成する

2022年3月20日

前回は Route53 の A レコードを更新する方法をまとめました。

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

普段 Route53 のレコードの更新には CloudFormation や Terraform を使うことが多いのですが、AWS CLI を使って Route 53 の A レコードを更新する機会...

続きを見る

今回はロードバランサのエイリアスリソースのレコードセットを更新する方法の備忘録です。AWS CLI を使用して Route 53 でエイリアスリソースレコードセットを作成する方法を教えてください。 を参考にしました。

ロードバランサの CanonicalHostedZoneId を確認する

Route53 にロードバランサのエイリアスレコードを設定するためにロードバランサの CanonicalHostedZoneId が必要なので、AWS CLI を使って確認します。ロードバランサが起動していれば以下のコマンドで確認できます。

aws elbv2 describe-load-balancers --query 'LoadBalancers[].CanonicalHostedZoneId'

実行結果の例です。1つ目がネットワークロードバランサで、2つ目がアプリケーションロードバランサです。

[
    [
        "Z31USIVHYNEOWT",
        "my-nlb",
        "network"
    ],
    [
        "Z14GRHDCWA56QT",
        "my-alb",
        "application"
    ]
]

json ファイルを作成する

AWS CLI で Route 53 のレコードを更新するための json ファイルを作成します。今回はネットワークロードバランサのエイリアスレコードを作成します。AliasTarget.HostedZoneId にひとつ前のコマンドで取得した CanonicalHostedZoneId を設定します。

cat <<EOS > sample.json
{
  "Comment": "CREATE/DELETE/UPSERT Alias resource record sets in Route 53",
  "Changes": [
    {
      "Action": "UPSERT",
      "ResourceRecordSet": {
        "Name": "example.com",
        "Type": "A",
        "AliasTarget": {
          "HostedZoneId": "Z31USIVHYNEOWT",
          "DNSName": "1234567890abcdefghijklmnopqrstuv-1234567890abcdef.elb.ap-northeast-1.amazonaws.com",
          "EvaluateTargetHealth": false
        }
      }
    }
  ]
}
EOS

AWS CLI でレコードの変更リクエストを作成する

以下のコマンドでレコードを変更します。--hosted-zone-idはご自身のものに置き換えてください。

aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json

実行をするとステータスと ID が返ってきます。

{
    "ChangeInfo": {
        "Status": "PENDING", 
        "Comment": "CREATE/DELETE/UPSERT Alias resource record sets in Route 53", 
        "SubmittedAt": "2022-03-03T09:11:14.444000+00:00", 
        "Id": "/change/C3QYC83OA0KX5K"
    }
}

返ってきた ID をオプションに指定して、変更リクエストの状態を確認できます。

aws route53  get-change --id /change/C3QYC83OA0KX5K

Status が INSYNC になれば変更完了です。

{
    "ChangeInfo": {
        "Status": "INSYNC", 
        "Comment": "CREATE/DELETE/UPSERT Alias resource record sets in Route 53", 
        "SubmittedAt": "2022-03-03T09:11:14.444000+00:00", 
        "Id": "/change/C3QYC83OA0KX5K"
    }
}

-技術ブログ
-