- 新しい順
- 投票が多い順
- コメントが多い順
AWS Amplify と CloudFront の代替ドメイン名の競合について、詳細な原因と仕組みを説明します。
Amplify のカスタムドメイン管理の仕組み
AWS Amplify は内部的に CloudFront ディストリビューションを作成し、そのディストリビューションにカスタムドメインを代替ドメイン名(CNAME)として関連付けています。この CloudFront ディストリビューションは Amplify によって管理されており、通常の CloudFront コンソールからは直接表示されません。Amplify アプリケーションにカスタムドメインを設定すると、バックグラウンドでこの「内部 CloudFront ディストリビューション」が作成され、指定したドメインと関連付けられます。
競合が見えなかった理由
CloudFront コンソールや Route53 から競合が見えなかった理由は以下の通りです:
-
Amplify が作成する CloudFront ディストリビューションは「内部リソース」として扱われ、通常の CloudFront コンソールには表示されません。
-
Route53 では、DNS レコードが存在しなくても、CloudFront サービス内部では依然としてドメインと CloudFront ディストリビューションの関連付けが残っている可能性があります。
-
CloudFront の代替ドメイン名(CNAME)は、AWS 全体で一意である必要があり、一度関連付けられると、その関連付けが完全に解除されるまで他のディストリビューションで使用できません。
同様の問題を回避する方法
- AWS CLI を使用して競合を確認する:
aws cloudfront list-conflicting-aliases --distribution-id <新しいディストリビューションID> --alias <カスタムドメイン>
これにより、どのアカウントのどのディストリビューションがそのドメインを使用しているかを確認できます。
-
Amplify アプリケーションからカスタムドメインを削除した後、DNS の伝播に十分な時間(24〜48時間)を確保してから、新しい CloudFront ディストリビューションにドメインを追加してください。
-
移行計画を立てる際は、Amplify から CloudFront への移行には、一時的な中断期間を設けるか、サブドメインを使用して段階的に移行することを検討してください。
-
複数の AWS アカウントを使用している場合は、各アカウントでドメインの使用状況を確認してください。
この問題は、Amplify アプリケーションを削除することで解決したのは、内部的な CloudFront ディストリビューションとドメインの関連付けが完全に解除されたためです。ただし、DNS の伝播や AWS システム内部の更新には時間がかかることがあるため、削除後すぐに新しい設定を行うと問題が発生する可能性があります。
Sources
AWS Amplify re-domain mapping not allowed | AWS re:Post
"One or more of the CNAMEs you provided are already associated with a different resource." issue when I add my CNAME's to my cloudfront distribution. | AWS re:Post
CNAME problem deploying a custom domain in Amplify | AWS re:Post
Can't Activate AWS Amplify Custom Domain | AWS re:Post
関連するコンテンツ
- 質問済み 6年前
