コラム /
Cloudflare で月3,000円から本格運用する設定の実話 ─ WAF・R2・Pages・Workers の実務構成
📖 約5分 / 公開日: 2026/05/23
Cloudflare を「とりあえずDNS管理に使っている」だけの状態から抜け出すと、インフラコストの構造が変わる。月3,000円でどこまでできるか、実際に運用した構成を元に書く。
## 料金体系の整理から入る
Cloudflare には Free・Pro(月20ドル)・Business(月200ドル)・Enterprise の4段階がある。中小規模の本番運用であれば Pro で十分なケースがほとんどだ。
Pro で何が使えるようになるか。まず WAF(Web Application Firewall)の Managed Rules が有効になる。Owasp Core Ruleset と Cloudflare Managed Ruleset の両方を適用でき、SQLインジェクションやXSSの大半はここで止まる。次に Polish(画像自動圧縮・WebP変換)、そして優先サポートへのアクセス。Free には WAF Managed Rules はない。この差が大きい。
月20ドルを円換算すると、2026年5月時点で約3,000円。ここがスタートライン。
## WAF の実務設定
Pro に上げたら即座に設定すべきことが3つある。
1つ目、Managed Rules の有効化。Security → WAF → Managed rules から Cloudflare Managed Ruleset と OWASP Core Ruleset を ON にする。デフォルトは Block だが、最初は Log モードで2〜3日様子を見るのが安全だ。誤検知で正規リクエストを落とすと最悪ログイン不能になる。
2つ目、Custom Rules での絞り込み。管理画面(/wp-admin や /admin、/phpmyadmin など)を日本国外からアクセスされたとき Block するルールを追加する。条件は ip.geoip.country ne "JP" and http.request.uri.path contains "/wp-admin"。WordPress を動かしているなら必須だ。実際、この1ルールを入れた翌週から WordPress へのブルートフォースが99%以上消えた。数字でいうと毎日6,000〜12,000件あったログイン試行が10件以下に落ちた。
3つ目、Bot Fight Mode。Security → Bots から有効にする。悪性ボットのほとんどはここで処理される。注意点として、Google Bot や Bing Bot などの正規クローラーは自動で許可リストに入るが、独自の監視ツール(Pingdom、UptimeRobot など)は User-Agent によってはブロックされることがある。事前に IP を Skip リストへ追加しておく。
## R2 で画像・静的ファイルのコストを切る
R2 は Cloudflare のオブジェクトストレージ。AWS S3 との最大の違いは egress が無料なこと。S3 はデータ取り出しに $0.09/GB かかる。大量の画像を配信するサイトでは毎月数千円から数万円の差が出る。
料金は保存が $0.015/GB/月、Aクラス(PUT/COPY/POST/LIST)が $4.50/100万リクエスト、Bクラス(GET/HEAD)が $0.36/100万リクエスト。毎月10万リクエスト以下の操作は無料枠に収まる。月100GBの画像ストレージを持つサイトで計算すると、保存で$1.50、リクエストで$1程度。合計$2〜3、約300〜450円になる。
S3互換APIなので既存の AWS SDK がほぼそのまま動く。エンドポイントURLとアクセスキーを差し替えるだけ。Laravel であれば .env の AWS_* を書き換えてドライバーを s3 のままにしておけば良い。
落とし穴が1つある。R2 の Public Bucket でファイルを公開するとき、カスタムドメインを設定せずに r2.dev のサブドメインを使うと Hotlinking 保護がかかってブラウザから直接アクセスできないケースがある。本番では必ずカスタムドメインを設定すること。これは無料でできる。
## Workers でエッジ処理を入れる
Cloudflare Workers は JavaScript(TypeScript)をエッジで動かすサービス。無料プランで10万リクエスト/日まで使えて、有料($5/月で1,000万リクエスト)でもかなり安い。
実際に使っているユースケースをいくつか挙げる。
OGP 動的生成。ブログ記事のOGP画像を記事タイトルで動的に生成する処理を Workers で実装している。オリジンサーバへの負荷がゼロで、キャッシュも効く。Vercel の Edge Functions と似た概念だが、Workers は全世界300+のPoP(エッジロケーション)で動く。
A/Bテスト。Cookie を見てトラフィックを振り分ける。フロントエンドで実装するより高速で、オリジンへの到達前に処理が終わる。
リダイレクト管理。大量の301リダイレクトをnginxやApacheの設定ファイルで管理するより、Workers の KV ストアに入れた方がデプロイが速くて管理しやすい。特に EC サイトで商品URLが頻繁に変わるケースに向いている。
## Pages でフロントエンドのデプロイを完結させる
静的サイトや Next.js のフロントエンドを Cloudflare Pages でホストすると、CDN配信が自動的に Cloudflare のエッジに乗る。Vercel との比較で言うと、商用利用時の制限が Pages の方が緩く、帯域コストが実質ゼロになる。
Git連携は GitHub・GitLab どちらも対応。ブランチ push で自動ビルド・デプロイ、プレビューURLの自動発行まで Vercel と同様の体験がある。
ただし、Next.js の App Router を使う場合は注意が必要だ。Server Actions や Route Handlers の一部機能が Workers ランタイムでは動作しない。Vercel のようなサーバレス関数を前提とした実装になっている場合、移行コストが発生する。Pages Functions(Workers ベース)でカバーできる部分は多いが、全部ではない。
## 月コストの実際
Proプラン:$20(約3,000円)
R2:$2〜5(ストレージ100GBあたり)
Workers(有料プラン):必要なら $5
Pages:無料〜
合計、月$22〜30で済む。同等の構成をAWSで組むと CloudFront + S3 + WAF で最低でも月1万〜2万円かかる。
## 1つだけ推奨しないこと
Cloudflare の SSL/TLS 設定を「柔軟」(Flexible)のままにしている人をたまに見る。これはCloudflare〜オリジン間がHTTPになるモードだ。本番ではかならず「フル(strict)」に変更する。フルの場合はオリジンサーバに有効な証明書が必要だが、Let's Encrypt で無料で取得できる。柔軟のまま本番運用している状態は「HTTPSに見えているだけ」であり、セキュリティ的に無意味だ。
設定変更は SSL/TLS → 概要 → フル(strict)を選択するだけ。5秒で終わる。運用中のサイトでいきなり変更すると混在コンテンツが出る場合があるので、テスト環境で確認してから切り替えること。
## まとめに代えて
Cloudflare を「無料のDNS管理ツール」として使っていると、Proの$20(3,000円)を払うのを躊躇する。でも実際に切り替えると WAF で脅威の大半が消え、R2で帯域コストが消え、Workers でエッジ処理が入る。この3つが月3,000円で手に入る。コストパフォーマンスでいえば現時点でクラウドサービス全体の中でも最上位に入ると思っている。
## 料金体系の整理から入る
Cloudflare には Free・Pro(月20ドル)・Business(月200ドル)・Enterprise の4段階がある。中小規模の本番運用であれば Pro で十分なケースがほとんどだ。
Pro で何が使えるようになるか。まず WAF(Web Application Firewall)の Managed Rules が有効になる。Owasp Core Ruleset と Cloudflare Managed Ruleset の両方を適用でき、SQLインジェクションやXSSの大半はここで止まる。次に Polish(画像自動圧縮・WebP変換)、そして優先サポートへのアクセス。Free には WAF Managed Rules はない。この差が大きい。
月20ドルを円換算すると、2026年5月時点で約3,000円。ここがスタートライン。
## WAF の実務設定
Pro に上げたら即座に設定すべきことが3つある。
1つ目、Managed Rules の有効化。Security → WAF → Managed rules から Cloudflare Managed Ruleset と OWASP Core Ruleset を ON にする。デフォルトは Block だが、最初は Log モードで2〜3日様子を見るのが安全だ。誤検知で正規リクエストを落とすと最悪ログイン不能になる。
2つ目、Custom Rules での絞り込み。管理画面(/wp-admin や /admin、/phpmyadmin など)を日本国外からアクセスされたとき Block するルールを追加する。条件は ip.geoip.country ne "JP" and http.request.uri.path contains "/wp-admin"。WordPress を動かしているなら必須だ。実際、この1ルールを入れた翌週から WordPress へのブルートフォースが99%以上消えた。数字でいうと毎日6,000〜12,000件あったログイン試行が10件以下に落ちた。
3つ目、Bot Fight Mode。Security → Bots から有効にする。悪性ボットのほとんどはここで処理される。注意点として、Google Bot や Bing Bot などの正規クローラーは自動で許可リストに入るが、独自の監視ツール(Pingdom、UptimeRobot など)は User-Agent によってはブロックされることがある。事前に IP を Skip リストへ追加しておく。
## R2 で画像・静的ファイルのコストを切る
R2 は Cloudflare のオブジェクトストレージ。AWS S3 との最大の違いは egress が無料なこと。S3 はデータ取り出しに $0.09/GB かかる。大量の画像を配信するサイトでは毎月数千円から数万円の差が出る。
料金は保存が $0.015/GB/月、Aクラス(PUT/COPY/POST/LIST)が $4.50/100万リクエスト、Bクラス(GET/HEAD)が $0.36/100万リクエスト。毎月10万リクエスト以下の操作は無料枠に収まる。月100GBの画像ストレージを持つサイトで計算すると、保存で$1.50、リクエストで$1程度。合計$2〜3、約300〜450円になる。
S3互換APIなので既存の AWS SDK がほぼそのまま動く。エンドポイントURLとアクセスキーを差し替えるだけ。Laravel であれば .env の AWS_* を書き換えてドライバーを s3 のままにしておけば良い。
落とし穴が1つある。R2 の Public Bucket でファイルを公開するとき、カスタムドメインを設定せずに r2.dev のサブドメインを使うと Hotlinking 保護がかかってブラウザから直接アクセスできないケースがある。本番では必ずカスタムドメインを設定すること。これは無料でできる。
## Workers でエッジ処理を入れる
Cloudflare Workers は JavaScript(TypeScript)をエッジで動かすサービス。無料プランで10万リクエスト/日まで使えて、有料($5/月で1,000万リクエスト)でもかなり安い。
実際に使っているユースケースをいくつか挙げる。
OGP 動的生成。ブログ記事のOGP画像を記事タイトルで動的に生成する処理を Workers で実装している。オリジンサーバへの負荷がゼロで、キャッシュも効く。Vercel の Edge Functions と似た概念だが、Workers は全世界300+のPoP(エッジロケーション)で動く。
A/Bテスト。Cookie を見てトラフィックを振り分ける。フロントエンドで実装するより高速で、オリジンへの到達前に処理が終わる。
リダイレクト管理。大量の301リダイレクトをnginxやApacheの設定ファイルで管理するより、Workers の KV ストアに入れた方がデプロイが速くて管理しやすい。特に EC サイトで商品URLが頻繁に変わるケースに向いている。
## Pages でフロントエンドのデプロイを完結させる
静的サイトや Next.js のフロントエンドを Cloudflare Pages でホストすると、CDN配信が自動的に Cloudflare のエッジに乗る。Vercel との比較で言うと、商用利用時の制限が Pages の方が緩く、帯域コストが実質ゼロになる。
Git連携は GitHub・GitLab どちらも対応。ブランチ push で自動ビルド・デプロイ、プレビューURLの自動発行まで Vercel と同様の体験がある。
ただし、Next.js の App Router を使う場合は注意が必要だ。Server Actions や Route Handlers の一部機能が Workers ランタイムでは動作しない。Vercel のようなサーバレス関数を前提とした実装になっている場合、移行コストが発生する。Pages Functions(Workers ベース)でカバーできる部分は多いが、全部ではない。
## 月コストの実際
Proプラン:$20(約3,000円)
R2:$2〜5(ストレージ100GBあたり)
Workers(有料プラン):必要なら $5
Pages:無料〜
合計、月$22〜30で済む。同等の構成をAWSで組むと CloudFront + S3 + WAF で最低でも月1万〜2万円かかる。
## 1つだけ推奨しないこと
Cloudflare の SSL/TLS 設定を「柔軟」(Flexible)のままにしている人をたまに見る。これはCloudflare〜オリジン間がHTTPになるモードだ。本番ではかならず「フル(strict)」に変更する。フルの場合はオリジンサーバに有効な証明書が必要だが、Let's Encrypt で無料で取得できる。柔軟のまま本番運用している状態は「HTTPSに見えているだけ」であり、セキュリティ的に無意味だ。
設定変更は SSL/TLS → 概要 → フル(strict)を選択するだけ。5秒で終わる。運用中のサイトでいきなり変更すると混在コンテンツが出る場合があるので、テスト環境で確認してから切り替えること。
## まとめに代えて
Cloudflare を「無料のDNS管理ツール」として使っていると、Proの$20(3,000円)を払うのを躊躇する。でも実際に切り替えると WAF で脅威の大半が消え、R2で帯域コストが消え、Workers でエッジ処理が入る。この3つが月3,000円で手に入る。コストパフォーマンスでいえば現時点でクラウドサービス全体の中でも最上位に入ると思っている。