使用
- Lightsail(DNSゾーン、ロードバランサー)
- お名前.com
- Route53
- Amplify
解決前の状況
バックエンド
- Lightsail
- インスタンス
- ロードバランサー
- DNSゾーン
- お名前.com
やっていたこと
LightsailのDNSゾーン作成(example.com)
ロードバランサー割り当て
DNSゾーン作成後に表示されるNSレコードをお名前.comのネームサーバーに登録
フロントエンド
- Amplify
- Route53
- お名前.com
やっていたこと
Route53でホストゾーンを登録(sub.example.com)
Route53でホストゾーン登録後に表示されるNSレコードをお名前.comのネームサーバーに登録
Amplifyのカスタムドメインで作成でroute53で登録したサブドメインを設定
何が問題だったか
1.1.1.1(CloudFlare)のDNSサーバーを使用した場合DNS_PROBE_FINISHED_NXDOMAINが起きていた
また、8.8.8.8(Google Public DNS)の場合は、連続で実行すると失敗していた
nslookup example.com
> 成功
nslookup example.com 1.1.1.1
> 失敗
** server can't find example.com: SERVFAIL
nslookup sub.example.com
> 成功
nslookup sub.example.com 1.1.1.1
> 失敗
** server can't find example.com: SERVFAIL
対応
- Lightsailで使用していたDNS設定をRoute53に移行
- サブドメインを単体でホストゾーン登録はしない
- Amplifyのカスタムドメイン登録で、先ほど移行したRoute53に登録されているドメインからサブドメインを設定する
やったこと
- LightsailのDNSゾーンを削除
- Route53にお名前.comで登録されているドメイン名でホストゾーンを作成(example.com)
- 作成されたNSレコードをお名前.comのネームサーバーに登録
- AレコードでLightsailのロードバランサーを指定
以下参考↓
https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/add-alias-record-for-lightsail-load-balancer#add-address-record-route-53 - Amplifyのカスタムドメイン設定→sub.example.comとして登録
待つ
反映確認のため自分の環境で使用しているDNSサーバーのキャッシュをクリアをした
macOSの場合
sudo killall -HUP mDNSResponder
反映された
再度最初に失敗していたnslookupを確認
nslookup example.com
> 成功
nslookup example.com 1.1.1.1
> 成功
nslookup sub.example.com
> 成功
nslookup sub.example.com 1.1.1.1
> 成功
参考