LoginSignup
2
2

More than 5 years have passed since last update.

AWS APIでRoute53のCloudFrontへのエイリアスを作成する

Posted at

こんにちはsekitakaです。

AWSもデベロッパーコンソールで作業すると、履歴が残らないのでコード化してソース管理できるといいですね。

CloudFrontへのDNS設定は以下のようにAPIを実行することで設定可能です。

# coding:utf-8
#!/usr/bin/python
import boto3

client = boto3.client('route53')
response = client.change_resource_record_sets(
    HostedZoneId='XXXXXXXXXXXX', # Route53のレコード設定したいドメイン(example.com)のゾーンID
    ChangeBatch={
        'Comment': u'任意のコメント',
        'Changes': [
            {
                'Action': 'UPSERT',
                'ResourceRecordSet': {
                    'Name': "xxxxxx.example.com" + ".", # 公開したいドメイン
                    'Type': 'A', # CloudFrontに向ける場合は、Aレコードにしろとドキュメントに書いてあった
                    'AliasTarget': {
                        'HostedZoneId': 'Z2FDTNDATAQYW2', # CloudFrontに向ける場合は、この値を指定しろとドキュメントに書いてあった
                        'DNSName': "xxxxxxxx..cloudfront.net" + ".", # CloudFrontのディストリビューションのドメイン
                        'EvaluateTargetHealth': False
                    }
                }
            },
        ]
    }
)
print response

ハマりどころとしては、ResourceRecordSetの各種の設定値が、どのレコードタイプを使用するかやエイリアスのタイプによって、使用できる値と使用できない値がある点です。
今回はTTLを設定していたところ、わかりにくいエラーが出力されハマってしまいました。

幸いboto3のドキュメントはかなり丁寧だったので、じっくり読めば間違いに気づけました。

2
2
0

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
2
2