CloudflareからBunny.netへ移行
(jola.dev)- 集中化された Cloudflare 依存 を減らすため、個人ブログを bunny.net へ移行した事例
- bunny.net はスロベニア拠点の 欧州CDNサービス で、世界的に高速な性能と効率的なPoPネットワークを提供
- ドメイン登録は Porkbun を利用し、Cloudflare の「Orange Cloud」機能を bunny.net 環境へ移行
- Pull Zone、キャッシュポリシー、SSL 証明書、Edge Rule などを段階的に設定して CDN を完全に構成
- DDoS 防御、Origin Shield、Stale Cache などの基本機能だけでも安定しており、個人ユーザーにとって Cloudflare の実質的な代替 になり得る
Cloudflareからbunny.netへ移行
- Cloudflare 依存 と集中化の問題を減らすため、個人ブログを bunny.net に移行した過程と設定方法を整理
- Cloudflare は無料で強力な機能を提供する一方、単一企業への依存が大きく、障害時にはインターネット全体へ影響し得る構造になっている
- 米国企業中心のインターネット集中化への違和感と、さまざまな論争を受けて代替を模索
Bunny.net の概要
- bunny.net はスロベニア拠点の 欧州企業 で、Cloudflare と競合可能な CDNサービス を提供
- 世界的に高い 性能と速度 を示し、PoP ネットワークの規模は小さめだが効率的
- 欧州の技術エコシステムの成長を支援する点でも前向きに評価されている
Cloudflareから離れる
- ブログのドメイン登録事業者として Cloudflare を使っていたが、欧州内の代替 を見つけるのは難しかった
- INWX は無料の WHOIS プライバシーがないため除外し、代わりに Porkbun を選択
- Porkbun は Cloudflare のインフラを利用しているが、サポート品質が高い
- Cloudflare の「Orange Cloud」機能(自動キャッシュ、オリジン秘匿、保護機能)を bunny.net へ移行
Bunny.net の設定手順
-
アカウント作成
- 登録時に 14日間の20ドル分クレジット を提供し、クレジットカード登録でさらに 30 ドル分を提供
- メール認証後に設定可能で、従量課金制(月額最低 1 ドル)が適用される
- 「ユーザーが製品ではなく顧客になる」構造へ転換
-
Pull Zone の作成
- CDN 有効化のための中核コンポーネントで、Origin URL を指定してサーバーを接続
- 複数のアプリを運用しているなら Host ヘッダー にドメインを指定
- Standard ティア を選択後、地域ごとに 価格帯の異なる Zone を設定可能
- 無効化した地域のユーザーは、最寄りの有効な Zone にリダイレクトされる
-
Pull Zone の接続
- 「Add a custom hostname」にウェブサイトのドメインを入力
- 案内に従って CNAME レコード を追加し、CDN 経路を接続(
website.b-cdn.net形式) - DNS 伝播後、「Verify & Activate SSL」をクリックして SSL 認証を完了
- 成功すると、ウェブサイトは bunny.net CDN 経由で配信される
キャッシュ設定
- ウェブサイトが適切な Cache-Control ヘッダー を返せば、bunny.net はそれを尊重する
- 「Caching → General」で「Respect origin Cache-Control」設定を確認
no-cacheが設定されている場合はキャッシュしない
- キャッシュヘッダーがない場合は Smart Cache 機能により、画像、CSS、JS などだけを自動キャッシュ
- Elixir Phoenix ベースのブログでは、
publicパイプラインに カスタムキャッシュヘッダーミドルウェア を追加cache-control: public, s-maxage=86400, max-age=0設定により HTML ページまでキャッシュ- 新しい記事を公開した際は、最新の HTML を反映するため Pull Zone のキャッシュを手動で初期化 する必要がある
- Larm ツールで測定した結果、世界各地の複数地点で 応答速度の向上 を確認
推奨される基本設定
- 「Force SSL」を有効化して、すべてのリクエストを HTTPS に強制
- DDoS 防御 は標準提供され、さらに Origin Shield を有効にするとサーバー負荷を軽減
- オリジン近くの場所を選んでキャッシュを集約し、エッジサーバーはまず Origin Shield を参照する
- 「Stale Cache: While Origin Offline / While Updating」オプションにより
- オリジン障害時でも キャッシュ済みコンテンツを継続提供
- 更新中でも以前のキャッシュを一時的に提供
- Edge Rule を追加して、自動生成された pull zone ドメインを実際のドメインへリダイレクト
- ルール名: 「Default domain redirect」
- 動作: Redirect、ステータスコード 301
- 条件:
*://<slug>.b-cdn.net/*へのリクエスト時にhttps://jola.dev{{path}}へ移動
まとめと評価
- 本設定は bunny.net の 基本機能 のみを扱っており、 Edge Rules、高度なキャッシュ構成、Security Shield、動画ストリーミング、Edge Scripting、Edge Containers などはまだ扱っていない
- ダッシュボードの統計・ログ・メトリクス が非常に詳細で、リクエスト単位でキャッシュ有無や問題を追跡できる
- 今後はすべてのサービスを bunny.net へ移行中で、S3 互換ストレージの公開 に期待している
- 個人ユーザーにとっても Cloudflare の代替として十分に競争力のある選択肢 である
1件のコメント
Hacker Newsの意見
好意的なブログ記事であるなら、透明性のある開示のためにページ内のすべてのリンクが Bunny Affiliate Program につながっていることを明記したほうがよさそう
私は bunny.net を CDN と DNS 用途で使っている
無料サービスはいずれ有料に変わるかもしれないという不安があるので、最初から少額でも払うほうがよいと思う。$2 から $3 に上がるのは構わないが、無料から $20 に変わるのは危険だ
それに、開発者を大事にしてくれる 小規模で独立した企業を好んでいる。だから bunny.net、transistor.fm、Plausible Analytics を使っている
私は Cloudflare Workers + Pages で SaaS を運営している。同じリポジトリからサーバーレス関数と静的サイトをデプロイできるので、開発体験がとても良い
ただ最近、CDN のエッジキャッシュがデプロイ後も古い HTML を返す問題に遭遇した。デバッグが難しく、どのキャッシュ層が原因なのか推測するしかない
それでも無料ティアで始めるには最高だ。Workers、Pages、KV、R2 で、ほぼ無料に近い本番アプリを運用できる
Cloudflare はもはや単なる CDN ではなく エッジプラットフォームだ。もし Bunny に簡単に移れるなら、Cloudflare の本当の機能を使っていたわけではない
WinterTC のような標準をきちんとサポートしていないのは残念だ。BunnySDK のような専用の serve 関数を使うのは、むしろさらに強い 独占的ロックインだ
私たちは Bunny をさまざまな用途で使っていて非常に満足している。特に サポート品質が素晴らしい。Cloudflare も良いが、有料のエンタープライズサポートを受けないと限界がある。UpCloud もサポートが優秀だ
「Cloudflare はインターネットの単一障害点だ」という話はよく聞くが、実際にはもっと複雑だ
小規模なサービスが分散して使われれば、障害の分布は変わるかもしれない。その代わり、より頻繁に小規模な障害が起きる可能性もある
また、Cloudflare のインフラは完全に中央集権的ではない。一部のサービスは地域ごとに独立している
私は 1 年前に Bunny へ移行し、とても満足している。EU ベースの CDNをサポートできる点も良く、Magic Containers のおかげで世界規模にスケールする API を月 $1 程度で運用できる
この記事は広告のように見えるかもしれないが、実際には単なる体験共有だった。アフィリエイトリンクは明示しており、隠す意図はない
一つ注意すべき点は、教育機関などで
*.b-cdn.netドメインがブロックされていることが多いということだ残念な点は、無料ホスティングがないことだ。トラフィックが少なくても月 1 ユーロ(VAT 別)は払わなければならない
また、CNAME flattening をサポートする DNS プロバイダーがあまり多くない。キャッシュ無効化も 2 回やらないと正しく反映されない