6 ポイント 投稿者 GN⁺ 21 일 전 | 1件のコメント | WhatsAppで共有
  • 集中化された Cloudflare 依存 を減らすため、個人ブログを bunny.net へ移行した事例
  • bunny.net はスロベニア拠点の 欧州CDNサービス で、世界的に高速な性能と効率的なPoPネットワークを提供
  • ドメイン登録は Porkbun を利用し、Cloudflare の「Orange Cloud」機能を bunny.net 環境へ移行
  • Pull ZoneキャッシュポリシーSSL 証明書Edge Rule などを段階的に設定して CDN を完全に構成
  • DDoS 防御Origin ShieldStale 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件のコメント

 
GN⁺ 21 일 전
Hacker Newsの意見
  • 好意的なブログ記事であるなら、透明性のある開示のためにページ内のすべてのリンクが Bunny Affiliate Program につながっていることを明記したほうがよさそう

    • リンクを入れすぎたことに気づいて一部を削除した。単に Bunny に アフィリエイトプログラムがあるのが興味深くて追加しただけで、意図的に隠していたわけではない
    • 法律の専門家ではないが、報酬のある推薦を開示しないと FTCガイドライン違反になる可能性がある。米国だけでなく英国にも似た規制があるようだ
  • 私は bunny.net を CDN と DNS 用途で使っている
    無料サービスはいずれ有料に変わるかもしれないという不安があるので、最初から少額でも払うほうがよいと思う。$2 から $3 に上がるのは構わないが、無料から $20 に変わるのは危険だ
    それに、開発者を大事にしてくれる 小規模で独立した企業を好んでいる。だから bunny.net、transistor.fm、Plausible Analytics を使っている

    • そういうときは別のプロバイダーへ移ればいいだけだ。CDN と DNS には ベンダーロックインがほとんどないので、設定をエクスポートして別の場所にインポートすればよい
    • 論理的に考えると、Cloudflare は無料利用枠を少し絞る程度の調整をする可能性が高い。現実には、互いに破壊的な価格競争を避けようとするからだ。小さな会社を使うのは依然として良い選択だ
    • 無料サービスは結局プロバイダーを助ける形になり、ユーザーが**「商品」**になりやすい。お金を払えば価値交換が明確になる
    • ただし有料サービスでも、突然の値上げや条件変更はあり得る
    • 私も同じ理由で bunny.net を使っている。インターネット生態系の多様性維持のためでもある
  • 私は Cloudflare Workers + Pages で SaaS を運営している。同じリポジトリからサーバーレス関数と静的サイトをデプロイできるので、開発体験がとても良い
    ただ最近、CDN のエッジキャッシュがデプロイ後も古い HTML を返す問題に遭遇した。デバッグが難しく、どのキャッシュ層が原因なのか推測するしかない
    それでも無料ティアで始めるには最高だ。Workers、Pages、KV、R2 で、ほぼ無料に近い本番アプリを運用できる

    • Cloudflare の最大の利点は wrangler CLI だ。Claude Code と組み合わせれば、設定とデバッグを完全に自動化できる
    • Bunny にも似た機能がある。SQLite 互換 API とエッジ関数も提供している。私は地域別のデバッグ問題のために dnsisbeautiful.com/global-http-availability という無料ツールを作った
    • 私も同じキャッシュ問題を経験し、これを解決するためのスクリプトを共有した人もいた
    • Bunny には無料ティアはないが、前払い方式なので突然の課金リスクがない。トラフィック急増で数十万ドルを請求されるようなことがない点が気に入っている
    • 私たちはデプロイ後に CI でキャッシュを自動的にパージするよう設定している。ただしキャッシュ伝播の遅延により、stale コンテンツが再びキャッシュされることがある
  • Cloudflare はもはや単なる CDN ではなく エッジプラットフォームだ。もし Bunny に簡単に移れるなら、Cloudflare の本当の機能を使っていたわけではない
    WinterTC のような標準をきちんとサポートしていないのは残念だ。BunnySDK のような専用の serve 関数を使うのは、むしろさらに強い 独占的ロックイン

    • 参考までに、Cloudflare のエッジプラットフォームもかなり閉鎖的
    • WinterTC は HTTP サーバーの起動方法を規定していない。少なくとも Fetch API の Request/Response インターフェースだけを要求している
  • 私たちは Bunny をさまざまな用途で使っていて非常に満足している。特に サポート品質が素晴らしい。Cloudflare も良いが、有料のエンタープライズサポートを受けないと限界がある。UpCloud もサポートが優秀だ

  • 「Cloudflare はインターネットの単一障害点だ」という話はよく聞くが、実際にはもっと複雑だ
    小規模なサービスが分散して使われれば、障害の分布は変わるかもしれない。その代わり、より頻繁に小規模な障害が起きる可能性もある
    また、Cloudflare のインフラは完全に中央集権的ではない。一部のサービスは地域ごとに独立している

    • しかし単一のプロバイダーを使うことは、依然として単一障害点だ。本当の復元力を求めるなら複数プロバイダーを併用すべきだ。つまり、自前のオリジンサーバーを運用し、CDN は最小限に使うべきだ
  • 私は 1 年前に Bunny へ移行し、とても満足している。EU ベースの CDNをサポートできる点も良く、Magic Containers のおかげで世界規模にスケールする API を月 $1 程度で運用できる

    • Magic Containers は特に 小規模プロジェクトに向いている。Cloudflare Durable Objects に似た機能を、はるかに安く提供している
  • この記事は広告のように見えるかもしれないが、実際には単なる体験共有だった。アフィリエイトリンクは明示しており、隠す意図はない

    • 「単一障害点から別の単一障害点へ移っただけだ」という批判は誤解だ。筆者が懸念していたのは自分のサイトではなく、インターネット全体の中央集権化だった。Bunny は米国中心の構造に対する代替案だ
    • このスレッドをスパムとして報告した人もいた
  • 一つ注意すべき点は、教育機関などで *.b-cdn.net ドメインがブロックされていることが多いということだ

    • 私たちも Cloudflare R2 を CDN として使ったところ、欧州の一部政府機関でアセットがブロックされる問題を経験した。Bunny に移したらすべて解決した
  • 残念な点は、無料ホスティングがないことだ。トラフィックが少なくても月 1 ユーロ(VAT 別)は払わなければならない
    また、CNAME flattening をサポートする DNS プロバイダーがあまり多くない。キャッシュ無効化も 2 回やらないと正しく反映されない

    • 価格をからかう人もいるが、要点は金額ではなく 参入障壁だ。クレジットカードを入力しなければならない点が問題だ
    • 「1 ユーロが高すぎるなんて」と皮肉る反応もあった
    • 実際、無料ティアがないのはバグではなく機能だ。予測可能なコスト構造のための選択だ
    • GitHub Pages のように無料だがよく落ちるサービスと比べれば、1 ユーロは十分払う価値のある額だ
    • 結局、月 1.20 ユーロで済む話だ