share facebook facebook2 twitter menu hatena pocket slack

2016.04.12 TUE

AWS CLIを使ってRoute53に登録されている情報を調べる

比嘉 啓太

WRITTEN BY比嘉 啓太

Route53に登録されている情報を調べる
AWSCLI使っているけどjqの使い方がメインの話

HostedZonesを調べる

aws route53 list-hosted-zones --profile PROFILENAME

json形式でRoute53へ登録されているHostedZones情報が見れる
jqコマンド等で適宜必要な情報を取得する

HostedZoneIDを調べる

aws route53 list-hosted-zones --profile PROFILENAME | jq -c -r '.HostedZones[].Id'

/hostedzone/xxxxxxxxxxの形式で出力する。見づらい場合は jq -c -r '.HostedZones[]|[.Name,.Id]'なりで
出力このIDを利用して色々チェックする

HostedZoneに設定されている一覧を見る

aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/xxxxxxxx --profile PROFILE

json形式でHostedZoneに登録されている情報が見れる
先ほどと同じようにjqコマンド等で必要な情報を取得

特定のTypeのレコードを出力する

登録されているレコード一覧の作成

aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/xxxxxxxx --profile PROFILENAME | jq -c -r '.ResourceRecordSets[].Name'

この状態だとAレコードだけでなくNSやTXT、SOA等も全て出力してしまう。
なので特定のレコードだけを出力する

aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/xxxxxxxx --profile PROFILENAME | jq -c -r '.ResourceRecordSets[]| if .Type == "A" then .Name else empty end'

これでAレコードだけの出力が出来る。
複数のレコードを条件としたい場合は elif で繋いで出力する

aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/xxxxxxxx --profile PROFILENAME | jq -c -r '.ResourceRecordSets[]| if .Type == "A" then [.Type,.Name] elif .Type == "CNAME" then [.Type,.Name] else empty end'

AWS CLIのCommandReferenceはこちらroute53

元記事はこちら

AWS CLIを使ってRoute53に登録されている情報を調べる

比嘉 啓太

比嘉 啓太

沖縄出身エンジニア。サーバ構築等のインフラを担当しています。最近はWindowsとUbuntuをさわっていることが多いです。