前回は Route53 の A レコードを更新する方法をまとめました。
-
AWS CLIを使ってRoute 53のAレコードを作成する
普段 Route53 のレコードの更新には CloudFormation や Terraform を使うことが多いのです ...
続きを見る
今回はロードバランサのエイリアスリソースのレコードセットを更新する方法の備忘録です。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"
}
}