Vercel から Cloudflare への移行手順について

このブログはVercelでホスティングしていたのですがCloudflareに移行しました

はじめに

移行したときに手順を残していなかったので、手順の復習もかねてサンプルのサイトを使ってもう一度VercelからCloudflareへの移行を実施してみました

サンプルのサイトのドメインはお名前.comで0円で取得しました

サイトのコンテンツはタイトルだけを表示する以下のページです サンプルサイトのコンテンツ

ネームサーバーの移行

Cloudflareへの移行前はお名前.comのネームサーバーの管理画面でVercelのネームサーバーを設定しています Cloudflareに移行前のお名前.comのネームサーバーの設定

Vercel側の管理画面での設定は以下です Cloudflareに移行前のVercelのドメインの設定

VercelのネームサーバーのDNSレコードは以下になっています Cloudflareに移行前のVercelのDNSレコード

VercelではLet’s Encryptで発行された証明書が使用されています Cloudflareに移行前のVercelの証明書

まずは以下のドキュメントを参考にネームサーバーをCloudflareに移行していきます

Cloudflareをリバースプロキシとして利用する方法で移行することにしました

Cloudflareの管理画面のWebサイトで「始める」をクリックします 「始める」をクリックします

移行するサイトのドメインを入力して「続行」をクリックします 移行するサイトのドメインを入力して「続行」をクリック

プランはFreeを選択して「続行」をクリックします プランはFreeを選択して「続行」をクリック

現在のDNSレコードが自動で追加されますが不要なレコードを削除して以下のようにしました DNSレコードの設定内容

SSL/TSLの暗号化モードがFullになっていることを確認します SSL/TSLの暗号化モードの確認

Cloudflareのネームサーバーをお名前.comに設定するために確認します Cloudflareのネームサーバーの確認

確認したネームサーバーをお名前.comのネームサーバーの設定画面に入力して変更します お名前.comのネームサーバーの設定画面

しばらく時間をおくとCloudflareの管理画面に以下のように表示されます Cloudflareの管理画面

digコマンドでCloudflareのネームサーバーになっていることを確認しました digコマンド

サイトにアクセスして証明書が変わっていることを確認しました 証明書が変わっていることを確認

リダイレクトルールの設定

Vercelではデフォルトの設定でサブドメインなしのドメインでサイトにアクセスしたときにwwwサブドメインにリダイレクトされます

ネームサーバーの移行でAレコードとwwwサブドメインのCNAMEレコードを追加しました

現在はどちらもVercelに向いているので、サブドメインなしでサイトにアクセスした場合はwwwサブドメインにリダイレクトされます

サイトの配信元をVercelからCloudflare Pagesに移行しても同じ動作となるようにリダイレクトルールを追加します

リダイレクトルールで「ルールの追加」をクリックします 「ルールの追加」をクリック

受信リクエストはカスタムフィルタ式を選択してホスト名がサイトのドメインに等しい条件を指定します

実行内容は動的でwwwサブドメインとリクエストのパスを結合する式を設定、ステータスコードは301、クエリ文字列を保持するにチェックをして「展開」をクリックします 保持するにチェックをして「展開」をクリック

Vercelの管理画面ではサブドメインなしのドメインがInvalidになりますが、Cloudflareのリダイレクトルールでリダイレクトされるので問題はありません Vercelの管理画面

サブドメインなしのドメインでサイトにアクセスしてwwwサブドメインにリダイレクトされれば問題ありません

コンテンツをCloudflare Pagesに移行する

ネームサーバーの移行が完了したので、サイトのコンテンツをVercelからCloudflare Pagesに移行します

今回はサイトのコンテンツはzipファイルを直接アップロードしてCloudflare Pagesにデプロイしました

カスタムドメインを設定をクリックします カスタムドメインを設定をクリック

wwwサブドメインありのドメインを入力して続行をクリックします メインを入力して続行をクリック

DNSレコードを更新するかの確認で問題なければドメインをアクティブにするをクリックします ドメインをアクティブにするをクリック

アクティブになるまで2日ほどかかるとのことです アクティブになるまで2日ほどかかる

しばらくするとアクティブになりました しばらくするとアクティブになりました

サイトにアクセスしてCloudflare Pagesにアップロードしたコンテンツが表示されることを確認しました Cloudflare Pagesにアップロードしたコンテンツが表示されることを確認

あとはしばらく様子をみてからVercelのプロジェクトの削除を行いました