Quantcast
Channel: ADACHIN SERVER LABO
Viewing all articles
Browse latest Browse all 164

[AWS]30個のエイリアスレコードをawscliでRoute53に追加する

$
0
0

さすがに手動で30個のエイリアスレコードをペアで

😑「確認お願いします!」

😇「はいOKです」

😑 更新

x 30

というのはなんともエンジニアらしくないので、awscliを使って一気に追加してみました。


■AWS CLI を使用して Route 53 でエイリアスリソースレコードセットを作成する方法を教えてください。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/alias-resource-record-set-route53-cli/

{
     "Comment": "Creating Alias resource record sets in Route 53",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                            "Name": "elb.example.com",
                            "Type": "A",
                            "AliasTarget":{
                                    "HostedZoneId": "Z1H1FL5HABSF5",
                                    "DNSName": "ALB-xxxxxxxx.us-west-2.elb.amazonaws.com",
                                    "EvaluateTargetHealth": false
                              }}
                          }]
}

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

jsonファイルを作って実行時に指定する感じですな👀


■準備

  • ~/aws/credentials

[adachin-aws]
aws_access_key_id = Axxxxxxxxxxxxxx
aws_secret_access_key =  xxxxxxxxxxxxxxxxxxxxxxxxxx

  • 53.json

{
  "Comment" : "",
  "Changes" : [
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev0.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev1.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev2.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev3.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev4.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev5.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev6.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},

    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev0-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev1-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev2-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev3-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev4-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev5-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev6-hoge.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},

    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev0-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev1-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev2-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev3-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev4-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev5-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev6-fuga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},

    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev0-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev1-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev2-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev3-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev4-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev5-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev6-moga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},

    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev0-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev1-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev2-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev3-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev4-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev5-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}},
    {"Action":"CREATE","ResourceRecordSet":{"Name":"dev6-toga.adachin.jp","Type":"A","AliasTarget":{"HostedZoneId":"xxxxxxxxxxxx","DNSName":"dualstack.rproxy-xxxxxxxx.ap-northeast-1.elb.amazonaws.com","EvaluateTargetHealth":false}}}
  ]
}

Nameだけ変更してもらって、HostedZoneIdエイリアスホストゾーンIDを指定します。

  • Syntaxチェック

$ jq . 53.json
エラーでなければOK

👍


■実行

$ aws route53 change-resource-record-sets --hosted-zone-id xxxxxxxx --change-batch file://53.json --profile adachin-aws
{
    "ChangeInfo": {
        "Id": "/change/xxxxxxxxxxxx",
        "Status": "PENDING",
        "SubmittedAt": "2019-05-07xxxxxxxxxxxxxxxx",
        "Comment": ""
    }
}

–hosted-zone-idはRoute53で対象ドメインのホストゾーンIDを指定しましょう。

🎉


■まとめ

実行したときの感動!!!
Terraformより楽でいいですな。
最近Terraform触ってない…(白目)


Viewing all articles
Browse latest Browse all 164

Trending Articles