Amazon Route 53 ホストゾーンでの、CNAME レコード作成に関するエラーをトラブルシューティングしたいです。
解決策
Route 53 で CNAME レコードを作成する際、次のエラーが発生する可能性があります。
Apex ドメインの CNAME
エラーメッセージ: 「InvalidChangeBatch 400: RRSet of type CNAME with DNS name example.com. is not permitted at apex in zone example.com (ゾーン example.com の最上位では、DNS 名 example.com. を持つ CNAME タイプの RRSetは許可されません)」
このエラーは、ドメインの Zone Apex (トップノード) に対する CNAME レコードを作成できないことが原因で発生します。例:
- ドメインが example.com の場合、example.com に対する CNAME レコードを作成することはできません。
- www.example.com、newproduct.example.com などに対しては、CNAME レコードを作成できます。
解決策: Apex ドメインのエイリアスレコードを作成し、たとえば次の AWS リソースを指すようにします。
- Amazon CloudFront ディストリビューション
- ロードバランサー
- 同じホストゾーン内の他のレコード
注: Zone Apex のエイリアスレコードは、トラフィックを CNAME レコードにルーティングできません。
詳細については、「Route 53 で AWS ホストサービスのエイリアスレコードを作成する方法を教えてください」を参照してください。
DNS レコードの競合
エラーメッセージ: 「InvalidChangeBatch 400: RRSet of type CNAME with DNS name test.example.com is not permitted as it conflicts with other records with the same DNS name in zone (ゾーン内の同じ DNS 名を持つ他のレコードと競合するため、DNS 名 test.example.com を持つ CNAME タイプの RRSet は許可されません)」
このエラーは次の場合に発生します。
- CNAME レコードが既存のレコードと競合している場合。
- 同じサブドメインには、CNAME レコードおよび、MX、A、または TXT レコードの両方を配置することはできません。
解決策:
- 競合する DNS レコードが使用されていない場合は削除する
- A-エイリアスレコードを作成し、サブドメインがリソースを指すようにする
詳細については、「レコードの削除」を参照してください。
ドメイン名ラベルが長すぎる場合
エラーメッセージ: 「Bad request.(InvalidChangeBatch 400: DomainLabelTooLong (Domain label is too long) encountered with 'org/services-and-resources/resources/classes-events/trauma-nurse'', Unparseable CNAME encountered) (ドメインラベルが長すぎます。解釈できない CNAME が存在します)」
このエラーは、ドメインラベルが許容される長さを超えた場合に発生します。必要条件:
- 各ラベルは 63 文字以内である必要があります。
- ドメイン名の合計長 (ドットを含む) は、255 文字を超えることはできません。
解決策: ドメイン名は、ドットで区切られた一連のラベルで構成されることを確認してください。許容される各ラベルの長さは最大 63 文字です。ドメイン名の長さ (ドットを含む) は合計で 255 文字を超えることはできません。Route 53 は任意の有効なドメイン名をサポートします。
詳細については、「DNS ドメイン名の形式」を参照してください。
CNAME レコード内に複数の値がある場合
エラーメッセージ: 「Can't create a CNAME record that has different values for the same CNAME record (同じ CNAME レコードに対して値が異なる CNAME レコードは作成できません)」
このエラーは、CNAME レコードに関する次の要因で発生します。
- 単一のドメイン名を指している必要があります。
- 複数のドメイン名または IP アドレスを指定することはできません。
- IP アドレスではなく、別のドメインを指している必要があります。
解決策: このエラーを回避するには、CNAME レコードが IP アドレスではなく、単一のドメイン名のみを指していることを確認してください。
詳細については、「CNAME のレコードタイプ」を参照してください。
関連情報
エイリアスリソースレコードと非エイリアスリソースレコードのどちらを使用するか
AWS リソースにインターネットトラフィックをルーティングする