Bunny.netは、コンテンツ配信ネットワーク向けのオリジンロードバランサーを導入した。顧客はリクエストを複数のバックエンドに分散させ、障害が起きた経路からトラフィックを切り替えられる。この機能は9月30日にパブリックプレビューに入り、1つまたは複数のPull Zoneで利用できる、再利用可能なルーティングポリシーとして設定する。

このサービスの対象は、オリジンに到達する必要があるリクエストだ。Bunny CDNのエッジ拠点に保存済みのレスポンスは、引き続きキャッシュから配信される。オリジンに向かうトラフィックについては、運用担当者が地域、クラウド事業者、処理能力、運用上の役割などに基づいてサーバーをグループ化できる。これらのグループに優先順位の階層を設けることで、通常のトラフィックは主系のインフラで処理し、その後ろで予備の処理能力を待機させられる。

優先される階層の中では、リクエストの均等分散、重み付け、近接性や実測遅延に基づくバックエンドの優先選択が可能だ。Bunnyによると、1つのプールに通常のHTTPまたはHTTPSサーバーと、同社のStorage、Edge Scripting、Magic Containersを混在させられる。この設計により、待機系は主系と同一のバックエンドを必要とせず、異なる種類のインフラを利用できる。

キャッシュにヒットしなかったリクエストごとに、エッジは設定された優先順位と負荷分散ルールに従い、送信可能な宛先を順序付きのリストにまとめる。最初の試行が失敗し、再試行しても安全な場合は、次の候補へ進める。Bunnyは、サーバーが5xxエラーを返した後、ボディーを伴うリクエストや、データを作成・変更し得るメソッドのリクエストを無条件に再送しないとしている。また、1つのリクエストが遅いオリジンを際限なく巡回しないよう、フェイルオーバーの一連の処理には制限時間がある。

稼働状態の判断には、Bunnyのネットワーク全体で行う任意設定のチェックと、個々のエッジが観測した障害を組み合わせる。広域の監視システムが劣化していると判断したオリジンは、再びチェックに合格するまで通常の振り分け対象から外される。特定のエッジだけから見える問題にも、そのエッジが対応できる。正常な宛先がなくなった場合、最後の選択肢として異常と判定されたオリジンへの接続を試みることがあるが、管理上無効にされたバックエンドは引き続き除外される。

プレビューでは、暗号化されたエッジCookieを使うスティッキーセッションにも対応する。ただし、接続先の維持よりも稼働状態が優先され、選択済みのオリジンが利用できなくなると訪問者は別のオリジンに移される。遅延に基づく選択では、すでに処理中のリクエストも考慮する。最速のサーバーを繰り返し選んで過負荷にし、その速さの利点を失わせることを防ぐためだ。

Bunnyはパブリックプレビューの料金をロードバランサー1つ当たり月額9.50ドルとし、オリジン向けリクエスト5,000万件を含めた。追加のオリジン向けリクエストは100万件当たり0.65ドルで、キャッシュヒットは件数に含まれない。複数のPull Zoneでポリシーを共有しても、利用枠と月額料金はそれぞれ1つのままだ。同社は、振り分け、パフォーマンス、フェイルオーバーの統計をダッシュボードとAPIで提供している。