Edited at

AWS CLIを使ってRoute53の操作

More than 1 year has passed since last update.


概要

GUIからCUIに移行しているので使いそうなコマンドをメモとして残しておきます。

コード化したり自動化できたりするので便利ですね。


環境

$ aws --version

aws-cli/1.14.30 Python/3.6.4 Darwin/16.7.0 botocore/1.8.34

$ jq --version
jq-1.5


Zoneの作成

$ aws route53 create-hosted-zone --name example.com --caller-reference `date +%Y-%m-%d_%H-%M-%S`


Zoneの一覧確認

$ aws route53 list-hosted-zones | jq '.HostedZones[] | {Id, Name}'


レコード一覧の確認

$ aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/xxxxx | jq '.ResourceRecordSets'


Aレコードの登録・更新・削除

これについてはjsonを使わないとダメっぽい。「--generate-cli-skeleton」でテンプレートを作ってjsonを読み込むようにしましょう。

$ aws route53 change-resource-record-sets --hosted-zone-id /hostedzone/xxxxx --change-batch file://test.json

{

"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "xxx.xxx.xxx.xxx"
}
]
}
},
{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "xxx.xxx.xxx.xxx"
}
]
}
},
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "xxx.xxx.xxx.xxx"
}
]
}
}
]
}