0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFront のアカウント間移行で CNAMEs の付け替えがエラーになる問題と解決策

0
Last updated at Posted at 2026-02-20

はじめに

今回、ある AWS アカウントで稼働しているウェブサイトを別の AWS アカウントに移動させることになりました。インフラ構成はそのまま移行させるのですが、CloudFront の移行時に知っておくべき仕様があったので、その内容を記載します。

問題

Distribution に同じ Alternative Domain Name (CNAMEs) を設定できない

CloudFront に独自ドメインを当てるときは Alternative domain name (CNAMEs) にドメインを指定して、対応する TLS/SSL 証明書を設定します。しかし、複数のディストリビューションに同じ CNAMEs を指定することはできず、以下のようなエラーとなります。これは 異なるアカウントでドメイン設定が行われている場合でも重複とみなされます ので注意が必要です。

One or more of the CNAMEs you provided are already associated with a different resource.

今回はウェブサイトのアカウント間移行なので、2つのアカウントで同一のドメインを設定したいのですが、この制約によりエラーとなります。

CNAME レコードが Distribution を指している場合 Distribution を追加できない

CNAME レコードでいずれかの CloudFront ディストリビューションを指している場合、新しいディストリビューションに該当レコードを設定した状態で更新できません。以下のようなエラーとなります。

One or more aliases specified for the distribution includes an incorrectly configured DNS record that points to another CloudFront distribution. You must update the DNS record to correct the problem. For more information, see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-restrictions

例えば、www.example.com1234567890abcd.cloudfront.net を指している場合、ディストリビューションに新しく www.example.com を登録しようとするとエラーが出ます。レコードを削除すれば、正しく更新できるようになります。

解決策

上記をまとめると、CloudFront の制約として以下の通りの内容があることが分かります。 そのため、別のディストリビューションを使うように移行するには、この条件を回避する必要があります。

  • 複数のディストリビューションで同一の CNAMEs 設定は不可能(アカウントが別でもこの制約がある)
  • DNS で CNAME レコードが設定されているディストリビューションがある場合、そのディストリビューション以外に CNAMEs 設定は不可能(※この制約は Route 53 の ALIAS の場合は引っかからない)

素朴な解決策

サイトが一時的にダウンしてもよい、というのであれば、

  • DNS の CNAME レコードを新しいディストリビューションに付け替える
  • 元のディストリビューションの CNAMEs 設定を削除する
  • 新しいディストリビューションに CNAMEs 設定を行う

という手順を踏むことで移行は可能です。 ただし、この方法ではダウンタイムが発生します。

ワイルドカードを使った解決策

ディストリビューションの CNAMEs としてワイルドカードドメインを設定できます。 これを利用して、以下の通り設定が可能です。

  • 新しいディストリビューションに *.example.com の CNAMEs 設定を行う
    • 既に www があるため、より狭い側にマッチして、この時点では通信は古いディストリビューションに届く
  • 切り替え時点で DNS の CNAME レコードを削除する
    • こうすると www.example.com がなくなり *.example.com にマッチするので、新しいディストリビューションを向くことになる
  • 古いディストリビューションの CNAMEs 設定を削除する
  • 新しいディストリビューションに CNAMEs 設定を行う
    • www を追加して * を削除する

一時的にワイルドカード証明書が必要、既存の仕組みでワイルドカードドメインを利用していないという制約はありますが、この方法を使うことでノーダウンタイムでのディストリビューションの切り替えが可能です。
より詳しくは以下の記事などで説明されています。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?