Vercel から Cloudflare への移行手順について
このブログはVercelでホスティングしていたのですがCloudflareに移行しました。
はじめに
移行したときに手順を残していなかったので、手順の復習もかねてサンプルのサイトを使ってもう一度VercelからCloudflareへの移行を実施してみました
サンプルのサイトのドメインはお名前.comで0円で取得しました
サイトのコンテンツはタイトルだけを表示する以下のページです

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

Vercel側の管理画面での設定は以下です

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

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

まずは以下のドキュメントを参考にネームサーバーをCloudflareに移行していきます
Integrate your Vercel project with your Cloudflare domain.
Cloudflareをリバースプロキシとして利用する方法で移行することにしました
Cloudflareの管理画面のWebサイトで「始める」をクリックします

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

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

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

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

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

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

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

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

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

リダイレクトルールの設定
Vercelではデフォルトの設定でサブドメインなしのドメインでサイトにアクセスしたときにwwwサブドメインにリダイレクトされます
ネームサーバーの移行でAレコードとwwwサブドメインのCNAMEレコードを追加しました
現在はどちらもVercelに向いているので、サブドメインなしでサイトにアクセスした場合はwwwサブドメインにリダイレクトされます
サイトの配信元をVercelからCloudflare Pagesに移行しても同じ動作となるようにリダイレクトルールを追加します
リダイレクトルールで「ルールの追加」をクリックします

受信リクエストはカスタムフィルタ式を選択してホスト名がサイトのドメインに等しい条件を指定します
実行内容は動的でwwwサブドメインとリクエストのパスを結合する式を設定、ステータスコードは301、クエリ文字列を保持するにチェックをして「展開」をクリックします

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

サブドメインなしのドメインでサイトにアクセスしてwwwサブドメインにリダイレクトされれば問題ありません
コンテンツをCloudflare Pagesに移行する
ネームサーバーの移行が完了したので、サイトのコンテンツをVercelからCloudflare Pagesに移行します
今回はサイトのコンテンツはzipファイルを直接アップロードしてCloudflare Pagesにデプロイしました
カスタムドメインを設定をクリックします

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

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

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

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

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

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