説明
AWS::Route53::HostedZone を作成すると既定の NS レコードと SOA レコードは作成されますが、アプリケーションのドメイン名がサービスの接続先に自動で結び付けられるわけではありません。必要な A レコードや CNAME レコードなどは別途管理します。
想定される影響
必要なレコードがない場合や接続先が誤っている場合、ユーザーが DNS 名でサービスに接続できなくなるおそれがあります。
対処方法
必要なレコードが意図した接続先を指しているか確認し、AWS::Route53::RecordSet や AWS::Route53::RecordSetGroup などで変更を管理してください。別のスタックやツールで管理している場合は管理元を明確にし、重複して作成しないでください。パブリックゾーンでは、親ドメインからのネームサーバーの委任も確認してください。
例
所有するドメインを指定します。HostedZoneName は末尾のドットなしのゾーン名、DomainName は www などのサブドメイン名、DnsEndpoint は実際の接続先ホスト名です。変更後のレコードは、作成した HostedZone に関連付けられます。
変更前
yaml
Parameters:
HostedZoneName:
Type: String
Resources:
HostedZone:
Type: AWS::Route53::HostedZone
Properties:
Name: !Ref HostedZoneName
変更後
yaml
Parameters:
HostedZoneName:
Type: String
DomainName:
Type: String
DnsEndpoint:
Type: String
Resources:
HostedZone:
Type: AWS::Route53::HostedZone
Properties:
Name: !Ref HostedZoneName
RecordSet:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: !Ref HostedZone
Name: !Sub '${DomainName}.${HostedZoneName}.'
Type: CNAME
TTL: '900'
ResourceRecords:
- !Ref DnsEndpoint