【AWS Amplify】さくらのドメインでカスタムドメイン設定時にハマったポイント
はじめに AWS Amplifyでホスティングしているアプリに、さくらインターネットで管理しているドメインのサブドメインを設定しようとしたところ、「ドメインの所有権を検証中…」のまま進まない問題に遭遇しました。 原因はさくらのDNS特有の仕様 でした。同じ問題でハマっている方の参考になれば幸いです。 環境 AWS Amplify Hosting さくらインターネット ドメインコントロールパネル ネームサーバー: ns1.dns.ne.jp / ns2.dns.ne.jp 症状 Amplifyのカスタムドメイン設定画面で指示されたCNAMEレコードを設定したが、いつまで経っても「ドメインの所有権を検証中…」から進まない。 Amplifyからの指示内容 Amplifyからは以下のようなDNSレコード設定を求められます: 1. SSL証明書検証用 ホスト名 タイプ 値 _abc123.your-subdomain.example.com. CNAME _def456.xyz.acm-validations.aws. 2. サブドメイン転送用 ホスト名 タイプ 値 your-subdomain CNAME xxxxx.cloudfront.net 原因 digコマンドで確認したところ、CNAMEの値にドメイン名が二重に追加されていました。 $ dig your-subdomain.example.com CNAME # 期待する結果 your-subdomain.example.com. IN CNAME xxxxx.cloudfront.net. # 実際の結果(誤り) your-subdomain.example.com. IN CNAME xxxxx.cloudfront.net.example.com. さくらのDNSでは、CNAMEの値に末尾ドット(.)がない場合、自動的にゾーン名(ドメイン名)が補完される仕様 になっています。 解決方法 さくらのドメインコントロールパネルでCNAMEレコードを設定する際、値(データ)の末尾に必ずドット(.)を付ける 必要があります。 正しい設定例 エントリ名 タイプ データ _abc123.your-subdomain CNAME _def456.xyz.acm-validations.aws. ← 末尾に. your-subdomain CNAME xxxxx.cloudfront.net. ← 末尾に. ⚠️ 注意 : Amplifyの指示画面では2つ目のレコード(cloudfront.net)に末尾ドットが表示されていない場合がありますが、さくらのDNSでは両方とも末尾ドットが必要 です。 ...
