【第4回】ホームページを世界に載せる 〜Cloudflare Pages デプロイ編〜

クライマックス回

Cloudflareにドメインを預けるところまで来ました。今回はいよいよホームページ本体をCloudflareに載せて、独自ドメインで公開します。

シリーズで一番「おおっ!」と感動するタイミングです。


Cloudflare Pages とは

静的サイトや今どきのフレームワーク製サイトを無料でホスティングできるサービスです。VercelやGitHub Pagesに近い立ち位置。

特徴は、

  • 完全無料(個人利用レベルなら制限に当たらない)
  • GitHubと自動連携(pushするだけでデプロイ)
  • 全世界のCDNに自動配信(Cloudflareの網に勝手に乗る)
  • HTTPS自動化(SSL証明書を勝手に取ってくる)
  • 独自ドメインも無料

これだけ揃って無料なのが、正直ちょっとおかしい。でも本当に無料です。


事前準備

前シリーズ(または第2シリーズ)で作ったホームページが GitHub にアップロード済み であることが前提です。

まだの人は、前シリーズ第5回を参照してGitHubへのpushまで済ませておいてください。


手順1: Pagesの新規プロジェクト

  1. Cloudflareダッシュボードにログイン
  2. 左メニューの 「Workers & Pages」 をクリック
  3. 「Create」→「Pages」タブ→「Connect to Git」 を選択
  4. GitHubアカウントを連携(初回のみ認証画面が出る)

GitHub連携時、どのリポジトリへのアクセスを許可するかを選べます。対象のリポジトリ(例: myhp)だけに絞るのがオススメ。


手順2: リポジトリを選んでビルド設定

リポジトリを選ぶと、ビルド設定を聞かれます。

Next.jsの場合の設定例

項目 設定値
Framework preset Next.js
Build command npx @cloudflare/next-on-pages@latest
Build output directory .vercel/output/static
Root directory (空欄のまま)

Framework preset で「Next.js」を選ぶと、ビルドコマンドなどが自動入力されます。普通はそのままで大丈夫。

静的HTMLサイトの場合

項目 設定値
Framework preset None
Build command (空欄)
Build output directory /(または distpublic など)

手順3: 環境変数(必要なら)

APIキーや秘密情報を使うサイトなら、Environment variablesのセクションで設定。今回のシンプルなホームページなら、何もなくてOKです。


手順4: デプロイ!

Save and Deploy」を押すと、ビルドが始まります。

ログが流れ始めて、

Cloning repository...
Installing dependencies...
Running build command...
Deploying...
✨ Success!

と進んで、3〜5分ほどで完了。あなたのプロジェクト名.pages.dev というURLが発行されます。

試しに開いてみてください。ホームページが表示されれば成功です。


手順5: 独自ドメインを紐づける(クライマックス)

ここからが本番。

  1. 作ったPagesプロジェクトを開く
  2. 上部タブの 「Custom domains」 を選択
  3. 「Set up a custom domain」
  4. 使いたいドメイン(例: example.com)を入力
  5. 「Continue」→「Activate domain」

CloudflareがDNSの設定を自動で入れてくれます。前回、ドメインをCloudflareに預けたのがここで効く。

30秒〜数分待つと、あなたの独自ドメインでホームページが開きます。

https://example.com にアクセスして、自分の作ったサイトが表示された瞬間は、本当に感動します。


www付きも使いたい

example.comwww.example.com の両方で開けるようにしたい場合。

  1. Custom domains で、今度は www.example.com を追加
  2. 自動でDNSが設定される
  3. どちらでアクセスしても同じサイトが表示されるようになる

どちらを正とするかは統一したほうがSEO的にも良いので、Cloudflareの Page Rules で「www付きは www なしにリダイレクトする」みたいな設定をするのが定番(これは第5回で)。


これからの更新ワークフロー

一度セットアップしてしまえば、更新は本当に楽。

  1. スマホでコードを編集(Claude Codeに指示)
  2. git push
  3. Cloudflare Pagesが自動で検知してビルド&デプロイ
  4. 数分後、独自ドメインのサイトに反映

pushから公開まで数分で完結する。この気持ちよさを一度味わうと戻れません。


つまずきポイント

  • ビルドが失敗する: ログを最後までスクロールしてエラー箇所を特定。Claude Codeにログ貼ると一発で原因が出る
  • 「DNS record already exists」エラー: 既存のDNSレコードと重複してる。Cloudflare の DNSタブで古いレコードを削除
  • 独自ドメインでアクセスできない: 反映待ちの可能性。5〜10分待って再挑戦
  • Node.jsのバージョンエラー: 環境変数で NODE_VERSION = 20 などを指定すると解決することが多い

次回予告

最終回は、Cloudflareの便利機能を使い倒す回。

  • 自動で付いてるSSL/HTTPSの話
  • 表示を爆速にするキャッシュ設定
  • 怪しいアクセスを弾くセキュリティ機能
  • アクセス解析(Google Analytics要らず)
  • Page Rulesでリダイレクト

ここまでやって、ようやくCloudflareの真のポテンシャルが引き出せます。

続く。