LoginSignup
19

More than 5 years have passed since last update.

Route53のAレコードをawscliで更新する

Posted at

IAMポリシーの設定

更新には route53:ChangeResourceRecordSets アクションが必要。
進捗確認もするなら route53:GetChange アクションが必要。
Route53のリソースレベルパーミッションでは、レコード単位の指定はできないのでホステッドゾーンまで指定。

Using IAM to Control Access to Amazon Route 53 Resources
AWS Services That Work with IAM

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "route53:ChangeResourceRecordSets",
      "Resource": "arn:aws:route53:::hostedzone/XXXXXXXXXXXXXX"
    },
    {
      "Effect": "Allow",
      "Action": "route53:GetChange",
      "Resource": "arn:aws:route53:::change/*"
    }
  ]
}

更新リクエスト用のJSONを用意

形式については aws route53 change-resource-record-sets helpAWS CLIのドキュメント を参照。
UPSERT があって便利。

r53.json
{
  "Comment" : "",
  "Changes" : [
    {
      "Action" : "UPSERT",
      "ResourceRecordSet" : {
        "Name" : "my.example.com",
        "Type" : "A",
        "TTL" : 300,
        "ResourceRecords" : [
          {
            "Value": "0.0.0.0"
          },
          {
            "Value": "0.0.0.0"
          }
        ]
      }
    }
  ]
}

更新リクエストを送る

awscli
$ aws route53 change-resource-record-sets --hosted-zone-id XXXXXXXXXXXXXX --change-batch file://r53.json

リクエストが受け付けられると PENDING ステータスになる。
Idは進捗確認に必要なのでメモっておく。

response
{
    "ChangeInfo": {
        "Status": "PENDING",
        "Comment": "comment",
        "SubmittedAt": "2015-08-05T00:00:00.000Z",
        "Id": "/change/XXXXXXXXXXXXX"
    }
}

進捗確認

awscli
$ aws route53 get-change --id /change/XXXXXXXXXXXXX

まだ PENDING だが、この時点で一部更新されている可能性はある。

response
{
    "ChangeInfo": {
        "Status": "PENDING",
        "Comment": "comment",
        "SubmittedAt": "2015-08-05T00:00:00.000Z",
        "Id": "/change/XXXXXXXXXXXXX"
    }
}

INSYNC ステータスになったら完了。
Route53のDNSサーバは全て更新されている。

response
{
    "ChangeInfo": {
        "Status": "INSYNC",
        "Comment": "comment",
        "SubmittedAt": "2015-08-05T00:00:00.000Z",
        "Id": "/change/XXXXXXXXXXXXX"
    }
}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19