🐕

AWS環境でのドメイン移行時に気をつけたポイント

2023/05/07に公開

まえがき

昨年、私が勤めている企業のプロダクトでドメインの移行を行いました。
実際に稼働しているサービスでのドメイン移行作業はなかなか行うことは無いので良い経験になりました。
今回はドメイン移行時に気をつけたポイントをブログに残しておこうと思いました。

私が作業に向けての準備を進めている際にはドメイン移行作業に関する記事は主にWordpressを用いた個人ブログのドメイン移行など小規模な事例が大半を占めていました。
もし今後、中〜大規模のプロダクトでドメイン移行を行われる際にはぜひ本記事を参考にしてください。

書かないこと

移行作業の詳細な手順はボリュームが多くなってしまうので記述しません。

ポイント

  1. ALBを用いて旧ドメインから新ドメインへのリダレクトを行う
  2. 旧ドメインのSitemapは残しておく
  3. robots.txtの中身を変更する

それぞれのポイントについて詳細に解説していきます。

1. ALBを用いて旧ドメインから新ドメインへのリダレクトを行う

今回のドメイン移行を行うにあたって、主にALBを用いて作業を進めました。
実は、簡単にリダイレクトを行うにはS3の静的ホスティング機能+CloudFrontの組み合わせを使うのが一番簡単なようです。
S3の静的ホスティング機能にはリダイレクトを設定できるオプション機能が備わっています。
それを用いることで簡単にリダイレクトを行う事が出来ます。

また、その際にHTTPSに対応させるにはCloudFrontを用いる必要があります。
こちらについても詳しく解説しているドキュメントがあるので以下を参考にしてください。
CloudFront を使用して、Amazon S3 でホストされた静的ウェブサイトを提供するにはどうすればよいですか?

ビューワーと CloudFront 間の通信で HTTPS を必須にする

ただ、今回はリダイレクトさせるためにはALBを採用しました。
理由としては、旧URLの中身を全てリダイレクトさせるのではなく一部は残しておきたいコンテンツがあったためです。残しておきたいコンテンツに関する話はポイント2で詳しく解説します。
ディレクトリパターンごとに参照先やHTTPステータスコードを設定できるALBを使うべきであると判断したためです。
しかし、もしかしたら上記の条件もS3で対応出来たかもしれません。
もし技術選定をされる際には改めてどちらが適切なのかを改めて検討してみてください。
S3のリダイレクト機能については以下の記事に詳しくまとめられていました。
S3のリダイレクト機能を改めて整理してみた
(少し内容を見た感想としては今回の条件も実現できそうな気がしました😅)

ALBを用いてリダイレクトを行うためには以下のリスナー設定を行います。

HTTP : 80
    - IF
        - default
    - THEN 
        - Redirect to : https://{新ドメイン}:443/#{path}?#{query}
        - Status code : HTTP 301 "Permanently moved"

HTTPS : 443
    - IF
        - default
    - THEN 
        - Redirect to : https://{新ドメイン}/#{path}?#{query}
        - Status code : HTTP 301 "Permanently moved"

ALBを用いてリダイレクトを行う方法については以下の記事で詳しく解説されています。
良ければ参考にしてみてください。
Application Load Balancer を使用して、あるドメインを別のドメインにリダイレクトするにはどうすればよいですか?

2.旧ドメインのSitemapは残しておく

これは旧ドメインのコンテンツが新ドメインに移行していることをGoogle等のドメイン評価に反映させるためです。
Googleはクローラを用いてWebサイト内のコンテンツを巡回し、ドメイン評価を行います。
このときに、どのURLを参照すれば良いかはSitemapに記述しておくことでクローラに教えてあげます。
このSitemapは旧ドメインに残しておく必要があります。
理由としては、旧ドメインの全てのページが301リダイレクトされることを抜け漏れることなくGoogleに伝えるためです。
そのために旧ドメインのSitemapは残しておく必要があります。

この条件を満たすためにはS3+CloudFront+ALBを用いました。
まず、SitemapのXMLファイルをS3バケットにアップロードしておきます。
次に、そのS3バケットをCloudFront経由で参照出来るように参照します。
最後にALBで (旧ドメイン)/sitemapのリクエストがあったときには先程作成したCloudFrontのディストリビューションを参照するように設定します。

3. robots.txtの中身を変更する

robots.txtは検索エンジンのクローラに対して、サイトのどのURLにアクセスしてよいかを伝えるために使用します。
ファイル内に以下のように記述することでどのURLにアクセスすればSitemapに辿り着けるかクローラに教えてあげる事が出来ます。

Sitemap: https://(ドメイン)/sitemap.xml

このドメイン名を新ドメインに変更してあげる必要があります。
作業自体は簡単ですが、忘れがちな設定のためここに記述しておきます。

感想

以上が私がAWS環境でのドメイン移行作業を行う際に気をつけたポイントです。
今回の作業にあたって、AWSに関する知識はもちろんのこと、SEO周りの知識も多く求められました。
ぜひSEO周りについても詳しく調べてみてください。

また、今回私がドメイン移行作業を行った際には特に大きな不具合もなく作業は成功しました。
それは事前に徹底的に検証作業を行なったためです。
ぜひ実際に作業される際にはDev環境などを用いて徹底的に検証作業を行うことをおすすめします。
今後どなたかがAWS環境でドメイン移行を行う際に本記事が参考になれば幸いです。

We are hiring!!

私が勤めているWHITE CROSS株式会社では一緒に働いてくれる仲間を募集しています。
良ければ応募してください。
https://herp.careers/v1/whitecross/MYSko-FONLTA
https://speakerdeck.com/yutanagahata/white-cross-inc-recruiting-deck-for-engineer

参考
(オプション) ウェブページリダイレクトの設定
robots.txt の概要

Discussion