Ozlabo

Cloudflare × さくらのクラウド × WordPress — 円建てで組み直して見えた、無料枠だけで届く範囲

前回、AWS 無料枠だけで WordPress を PageSpeed 98 まで持っていく構成を紹介しました。あの記事の最後で「無料枠終了後の出口の一つは 国産クラウドへの移設」と振りましたが、今回はその 答え合わせ です。さくらインターネットの クラウド25,000円クーポン を使って、AWS とは別ドメイン ozlabo.com同等の WordPress 環境 を組み直してみました。

組み終えてみての結論を先に書くと、「Cloudflare を前段に置けば、オリジンの場所は AWS でもさくらでも本質的にはあまり変わらない」 です。むしろ違いが出たのは、Cloudflare の使い方とドメイン管理側 でした。

注:本ブログ ozlab.jp は引き続き AWS 上で稼働しています。今回さくらのクラウドに新規構築したのは別ドメイン https://ozlabo.com の方です。

1. なぜさくらのクラウドで組み直したのか

AWS 無料枠は 2026年10月で12ヶ月の期限切れ。その後の月額が為替次第で読めない、という事情が一番の動機です。

  • AWS は USD 課金。円安局面では運用コストが線形に効いてくる
  • 国内クラウドは 円建て で計画が立てやすい
  • たまたま さくらのクラウド 25,000円クーポン を獲得していて、実費負担なく検証できる

つまり「クラウド比較がやりたかった」のではなく、為替リスクを切り離せる出口を一つ持っておきたかった、というのが正直な動機です。同じ問題意識を持つ方は意外と多いと思います。

2. ozlabo.com の構成

組んだ構成はこうです。AWS 側(ozlab.jp)とは「役割分担で速さを買う」という思想は揃えつつ、前段 CDN を CloudFront から Cloudflare に置き換え ました。

[ End User ]
    ↓
[ Cloudflare エッジ ]
    - Always Use HTTPS
    - SSL Mode: Full (strict)
    - HTTP/3, Brotli, 画像最適化
    ↓ HTTPS (Cloudflare Origin Certificate, 15年)
[ さくらクラウド KVM (1Core / 2GB / 20GB SSD, 石狩第3) ]
    - AlmaLinux 10.1
    - Nginx 1.26 (FastCGI Cache)
    - PHP-FPM 8.3
    - Valkey 8 (Redis 互換, Object Cache)
    ↓ 内部スイッチ (1Gbps)
[ さくらのクラウド データベースアプライアンス (1Core / 2GB) ]
    - MariaDB 10.11(マネージド)
役割リソース月額(クーポン消化中)
エッジ配信Cloudflare(Free プラン)0円
アプリサーバーさくらクラウド KVM 1Core/2GBクーポン充当
DBさくらのクラウド DBアプライアンス 1Core/2GBクーポン充当
内部接続スイッチ(oz-internal-sw)1Gbpsクーポン充当
DNSCloudflare(Free プランに同梱)0円
TLS 証明書Cloudflare Origin Certificate(15年)0円
ドメインムームードメイン(ozlabo.com)数百円/年

出典: Cloudflare Plans

ポイントは CDN・DNS・SSL の三役を Cloudflare の Free プランで済ませている ことです。AWS では CloudFront + Route 53 + ACM の組み合わせで、Route 53 だけで月 $0.50 が発生していました。Cloudflare ならドメインを移管するだけで DNS が常時 $0 になります。

3. 構築の核心 — 4 つの設計判断

具体的なコマンドや設定ファイル全文は別途 note の記事にまとめますが、考え方の幹は以下の 4 つです。

3-1. DNS とプロキシは Cloudflare に寄せる

ozlabo.com のレジストラはムームードメインのままにし、ネームサーバーだけを Cloudflare に変更 して DNS 管理を移しました。これでオレンジ雲(Proxy)を有効にするだけで Cloudflare のエッジに乗り、SSL/CDN/WAF/Bot 対策 がまとめて効きます。

ここで一つ落とし穴があったのですが、それは後述します(節 5)。

3-2. オリジン証明書は Cloudflare 発行の 15年もの

ブラウザ ↔ Cloudflare は Cloudflare Universal SSL(Let’s Encrypt)、Cloudflare ↔ オリジンは Cloudflare Origin Certificate(15年) という二段 SSL にしています。SSL Mode は Full (strict) 一択です。

オリジン証明書は Cloudflare からの接続でしか信頼されない ため、Cloudflare を経由しない直アクセスは TLS で弾けるという副次的なメリットもあります。15年期限なので Let’s Encrypt の更新ジョブを組まなくていい のも地味に運用負荷を下げます。

出典: Cloudflare — Origin CA certificates

3-3. DB はマネージドアプライアンスを選ぶ

ここは AWS 版と思想が分かれた部分です。AWS 側は RDS(マネージド)を当然のように使っていましたが、さくら側でも 「自前で MariaDB を建てる」のではなく「データベースアプライアンス」を選択 しました。

理由はシンプルで、運用 OS を 1 台に絞れるから です。アプリサーバー側だけが “OS 管理対象” になり、DB はパッチ・バックアップ・更新がさくら側に閉じ込められる。1 人運用前提のサイトでは、この差が地味に効きます。

DB アプライアンスは 内部スイッチ経由でのみ到達可能 に閉じ込めたので、外部からは到達できません。送信元許可を 0.0.0.0/0 にしてもクローズドネットワーク扱いです。

3-4. キャッシュ戦略は Cloudflare 任せにしすぎない

Cloudflare は強力ですが、WordPress と素直に組ませるとログイン状態や管理画面まで巻き込んでキャッシュ事故 を起こします。今回は次のように層を分けました。

  • Cloudflare:静的アセット(画像/CSS/JS)を中心に
  • Nginx FastCGI Cache:オリジン側で HTML を一時キャッシュ
  • Valkey(Redis 互換) Object Cache:WordPress 内部のクエリ使い回し

オリジン側に FastCGI Cache を持たせるのは Cloudflare との二重キャッシュに見えますが、記事更新直後に Cloudflare をパージしても、オリジンが詰まらない保険 になります。これは経験則で、最初から仕込んでおくべきです。

各設計判断の 実コマンド・nginx.conf 抜粋・wp-config.php 設定・Cloudflare ダッシュボード手順 は、別途 note にて有料公開予定です。

4. AWS 構成と並べてみた所感

同じ「役割分担」の発想で組んでみると、両者は意外と似たり寄ったり です。差が出たのは以下の3点。

観点AWS(ozlab.jp)さくら × Cloudflare(ozlabo.com)
課金USD・為替リスクあり円建て・読みやすい
DNSRoute 53(月 $0.50)Cloudflare(月 $0)
前段 CDNCloudFront(AWS 完結)Cloudflare(別ベンダー併用)
TLSACM(無料・自動)Origin Cert 15年(無料・更新不要)
学習コストVPC/SG/IAM が前提KVM + 内部スイッチで素直
拡張性AWS の他サービスと連結しやすい単機能サイトに集中しやすい

「ベンダーロックインを薄める」 という観点では、Cloudflare を前段に置いた方が後で別の VPS や別クラウドにオリジンを差し替えやすい、という気づきがありました。CloudFront はあくまで AWS の中の一機能なので、オリジンを別クラウドに移す動機が出にくい構成です。

5. 実体験として共有したい「ハマりどころ」

無料記事として残しておく価値が高い、構築中の地味なハマりです。

5-1. Cloudflare の apex(ルート)レコードは「フルドメイン名」で登録

Cloudflare ダッシュボードで ozlabo.com の A レコードを追加するとき、Name 欄に @ と入力する のが直感的なやり方ですが、これだと 画面上は “Proxied” と表示されるのに権威 DNS に反映されない という挙動に遭遇しました。

回避策は単純で、Name 欄に ozlabo.com のフルドメイン名をそのまま入れる ことです。仕様上は @ も等価のはずなのに、なぜか今回はこれで通りました。Cloudflare に DNS 移管したばかりの方は、dig で外部から引いて確認 するのが確実です。

6. クーポン消化後どうするか

25,000円クーポンが切れた後の素の費用感は、おおむね以下のようになります(2026-05時点のさくらのクラウド料金表ベース、実額は要確認)。

項目想定月額
KVM 1Core/2GB/20GB SSD1,500〜2,000円台
DB アプライアンス 1Core/2GB4,000円台〜
内部スイッチ2,000円台
Cloudflare(Free プラン)0円
ドメイン更新(.com)1,500〜2,500円/年

出典: さくらのクラウド 料金

DB アプライアンスがコストの主役になるので、「マネージドの安心」と「自前 MariaDB の月数百円」をどう天秤にかけるか が次の判断ポイントになります。AWS の RDS db.t4g.micro 相当(無料枠内)と比べると円建てとはいえやや高めなので、ここは検証中です。

7. まとめ

  • AWS 無料枠で組んだ WordPress と 同じ思想の構成を、Cloudflare × さくらのクラウドで組み直した
  • 25,000円クーポンを使って 実費負担なしで為替リスクの出口を検証 できた
  • 前段 CDN を CloudFront から Cloudflare に変えると、DNS と SSL がまとめて無料 になる
  • DB は KVM 自前ではなく マネージドアプライアンス にすると 1 人運用が楽
  • Cloudflare の apex 登録の癖、パケットフィルタの順序、SSH 鍵の置き場所 は地味にハマる
  • AWS と国産クラウドの差は思ったより小さく、為替リスクの逃げ場として実用的

「AWS 無料枠が切れた後どうしよう」と考えている方には、Cloudflare を前段に置いた 国産クラウドのオリジン構成 は十分検討の価値があります。Cloudflare を一度前段に挟んでおくと、後でオリジンを別クラウドに差し替える自由も確保できます。

実コマンド・設定ファイル・Cloudflare ダッシュボードのスクショ込みの 実装ガイドは note で公開予定 です。AWS 版とさくら版の両方を対比できる形で出します。


関連記事