Fastly の Fanout でステートフルのリアルタイム通信がより簡単に
これまで以上に大規模かつ高速で使いやすいリアルタイム通信ネットワークを提供する Fastly の Fanout が一般公開され、誰もがステートフルのリアルタイム通信を簡単に利用できるようになりました。インターネットはその誕生以来、ますますダイナミックになり、リアルタイム化が進んでいますが、その過程で静的な html ページから動的かつインタラクティブなアプリケーションへの移行が進行し、ステートフルなソリューションを必要とする真にリアルタイムの通信が今、広く求められてい ます。
WebSocket はリアルタイム通信の実現において非常に有効ですが、HTTP インフラストラクチャの外に別のテクノロジースタックを構築して管理する必要があることを含め、負担が伴います。また、オリジンでステートフルな接続を長時間維持するためには、長時間のコンピューティングインスタンスも維持する必要があり、これによって複雑性が増します。オリジンのアーキテクチャによっては、これが不可能または非常に困難な場合があるほか、デプロイプロセスによって問題が生じる可能性もあります。
Fanout は WebSocket ソリューションのひとつで、使いやすさを求めている方は簡単に実装できます。しかしメリットはそれだけではなく、多様な機能セットにアクセスし、リアルタイム通信を実現することも可能です。現在 Fanout を使用して WebSocket の実装に対応している方も、WebSocket から完全に移行する方も、Fanout がサポートする1対多の通信や Pub/Sub 機能によって大きなメリットが得られます。リアルタイムでオブジェクトを数千 (または数百万、数千万) ものクライアントにリアルタイムで送信したい場合、オリジンから Fastly にそのオブジェクトを一度送信するだけで、残りは Fanout によってネットワークエッジから送信されます。一方、Fanout を使用しない場合、毎回オリジンから送信し、HTTP スタックとは別に運用する必要がある WebSocket のメッセージングスタックのメンテナンスと管理の費用に加え、データ送信コストがかかります。
Fanout を使用して WebSocket を実装する
Fastly の Fanout を使用して WebSocket を実装する場合、Fanout によってエッジで WebSocket スタイルのステートフルなクライアント接続が維持されるため、オリジンにパススルーする必要がなくなり、オリジンへの負担を軽減できます。Fanout によって WebSocket のアクティビティが HTTP リクエストに変換され、HTTP サーバーに送信されるので、別のスタックを使用することなく必要な情報がすべて得られます。また、Fastly Compute をバックエンドとして使用すれば、オリジンが関与する必要がまったくなくなり、リアルタイムの負担をエッジに完全にオフロードできます。
Fanout で WebSocket を超える
ニーズに応じて Fanout は WebSocket よりもはるかに多くのことが可能です。Fanout は Pub/Sub をサポートし、より効率的にデータ転送を処理できるほか、真に1対多のリアルタイム通信を実現します。Fanout を利用することで、パフォーマンスやスケーリング、メンテナンスのボトルネックを気にせずに、リアルタイム通信を活用するより高度な方法を検討し始めることができます。
リアルタイムがリアルに簡単に
今こそ、頭を悩ませることなく、これまで温めてきたリアルタイム通信のアイディアを実現し、ステートフルの通信がもたらすあらゆるメリットを活かすべきです。そして、大幅にスケールアップする場合でも Fanout は最良の選択肢です。実際、Fanout にご興味のある方はどなたでもご購入前に無料アカウントを利用して、ひと月あたり最大100万メッセージ、100万接続分数まで無料でご利用いただけます。undefinedこの記事の終わりに掲載されているチャートでは、Fanout と WebSocket の詳細な比較が示されているのでご参照ください。以下は Fanout を使用する最大のメリットの例です。
コスト削減 → オリジンの負荷をオフロードしてコストを節約できます。コンテンツを一度 Fastly にプッシュするだけで、後は Fanout が処理してくれるので、データ送信コストを削減できるのです。また Fanout はリバースプロキシであるため、オリジンにリクエストを送信する前にそれらをエッジでバンドルしてさらにオリジンの負荷を軽減できます。このように Fanout を利用することで、リアルタイムのオペレーションの拡大に伴いスケールする必要がある WebSocket への設備投資と管理コストを削減することが可能になります。
より優れたパフォーマンス → Fanout は Fastly のグローバルエッジネットワークに完全に統合されているので、WebSocket やその他の競合製品に比べて大幅に優れたパフォーマンスを発揮します。
生産性の向上 → Pub/Sub 機能を利用し、オーバーヘッドをすべて Fastly エッジにアウトソースすることで、開発者はより重要な作業に専念し続けることができます。完全に HTTP スタック内で作業し、大規模な1対多のステートフルなリアルタイム通信でしたいことを設定するだけで済みます。
Fanout が優れている理由
Fanout によって、WebSocket では不可能なさまざまなことができます。1対多の通信をサポートし、Pub/Sub でユーザーグループを設定できることもそのひとつですが、Fanout が他のリアルタイム通信ソリューションよりも優れている理由は多数あります。
Fastly のパフォーマンスと Fanout 機能の組み合わせによる相乗効果
Fastly のエッジネットワークは他の CDN よりも高速かつ先進的です。完全にソフトウェア定義型の Fastly CDN では、最先端 POP を自在に操作できるので、Fanout のようなサービスの統合など、他のネットワークでは不可能なことも Fastly では可能です。Fastly に買収、統合される前の Fanout は、8つほどの POP で構成され、機能的ではあるものの古いタイプのアーキテクチャを採用したネットワーク上でうまく機能していました。Fastly 上で実行されることで、Fanout は世界最大規模の1対多のリアルタイムデータ配信ネットワークへと変身し、レイテンシとパフォーマンスが大幅に改善されました。
スケーリング能力の強化
Fastly のグローバルエッジネットワークに統合されることで Fanout にもたらされたメリットのひとつに、スケーリング能力の強化が挙げられます。Fanout は、ユーザーが使用できる同時接続数の制限が、競合サービスに比べて少ないという特徴があります。Fastly のアーキテクチャと、ニーズに合わせて効率的にスケーリングできる能力により、お客様に課される制限を少なく抑え、お客様が思い描くあらゆることを自由に実行できるようサポートします。トラフィックエンジニアリング自動化システムなど、私たちが Fastly ネットワークにイノベーションや改良を加えることで、すぐに、インテリジェントに、自動的により多くのトラフィックをネットワーク上で処理し、必要に応じて調整することが可能になり、お客様にもメリットがもたらされます。このような Fastly ネットワークの強化は、従来の CDN サービスだけでなく、Fastly ネットワーク上で実行されるリアルタイム通信の強化にもつながります。Fastly ネットワークがお客様のボトルネックになることはありません。
ご購入前に無料トライアルで大規模にテスト
大容量を誇る Fastly ネットワークでは、無料アカウントの容量も、もちろん充実しています。まずは完全無制限の30日間無料トライアルで Fastly Fanout をお試しいただいた後、無料アカウントでひと月あたり最大100万接続分数、100万メッセージまでご利用いただけます。1対多のリアルタイムサービスを提供する他のプロバイダーはスタートアップ企業なので、規模もスタートアップレベルです。多くのプロバイダーは無料アカウントを提供していません。提供している場合でも、通常 Fastly よりもずっと小規模です。一方、Fastly と競合する CDN プロバイダーは、1対多のリアルタイム・メッセージング・ソリューションをまったく提供していません。パフォーマンス、コスト、スケーリング能力、生産性の面で優れ、WebSocket よりも高速で簡単に管理できるソリューションをお求めの方には、Fanout がスマートな選択肢です。まずは、Fastly の無料アカウントを作成してください。
ビルトインセキュリティ
Fastly を通過するあらゆるトラフィックに対して、レイヤー3および4の DDoS 対策やボット対策が自動的に適用されます。Fastly でオリジンの負荷を軽減することで、データ送信コストを削減できるだけでなく、さまざまなセキュリティ上の問題によってお客様のオリジンへの負荷 が増えるのを防げるので、こうした心配がなくなります。Fastly のネットワーク上にリアルタイム通信を構築すると、コストや労力を増やすことなくセキュア・バイ・デザインのネットワークがもたらすメリットを活用できます。
オリジンの負荷を軽減
Fanout はリバースプロキシなので、エッジで Fastly によってリクエストが集められ、まとめられます。つまり、何百万ものメッセージがオリジンに送信されることはなく、ごく一部のリクエストのみがオリジンで処理されるのです。負荷軽減のメリットはそれだけではありません。Fastly の Compute プラットフォームを使用してエッジでさらに多くのロ ジックを構築することで、リアルタイムメッセージングのバックエンド全体を Fastly のエッジにオフロードすることができます。
コスト削減とベンダーの整理
多くの企業が予算の削減を迫られるなか、誰もがベンダーの整理を検討しており、設備投資やオーバーヘッド、維持費の削減や、ベンダーの管理に要する労力を減らすなど、ベンダーの整理を通じてできる限りコストを抑えようと必死です。その意味において、コンテンツ配信ネットワークサービス、高度なセキュリティ対策とエッジコンピューティングを提供する完全なプラットフォームの一部として提供される Fastly の Fanout は、優れたソリューションと言えます。明瞭な料金設定で超過料金や予想外の料金が発生することがなく、カスタマーサポートがすべてパッケージに含まれています。
アプリケーション開発者にとって使いやすく設定も簡単
Fastly の Fanout はバックエンドに依存しません。Fanout の使用を開始するのに、WebSocket をオリジンで設定したり、既存の HTTP アーキテクチャとは別のスタックを使用したりする必要はありません。データをパブリッシュするには、Fastly API で API エンドポイントをヒットし、クライアントからのトラフィックが Fastly サービスに流れるようにするだけで済みます。サービスを設定するだけですぐにパフォーマンスを向上させることができ、メンテナンスや管理に悩まされることもありません。
実世界でデータ配信を最大7倍に高速化
バーベキュー用品で知られる Pit Boss Grills の親会社 Dansons は、リアルタイムデータをより高速に通信し、Pit Boss Grills のモバイルアプリ向けワイヤレス制御テクノロジー Grill Connect™ におけるレイテン シを削減できるソリューションを必要としていました。Dansons は Fanout への移行後、以前のソリューションに比べて Grill Connect のデータ転送速度が5-7倍向上したことを確認しました。アプリとグリル間の通信時間がわずか数ミリ秒に短縮された結果、まさにリアルタイムでグリルの火加減をアプリでコントロールしていると実感できるユーザーエクスペリエンスの提供に成功しました。Dansons のケーススタディについてはこちらをご覧ください。
Fanout の比較チャート
異なるリアルタイム通信ソリューションで何が可能かを詳しく知りたい方は、以下のチャートをご参照ください。このチャートでは、社内で WebSocket を実装する場合、WebSocket パススルーを Fastly のサポートを得て実行する場合、Fastly の Fanout を使用する場合の3つのケースを比較しています。リアルタイムソリューションのニーズを抱えているあらゆる企業、とくに複雑さやオーバヘッド が増えることを懸念してリアルタイム通信の導入をためらっている企業には、メリットが多く、しかも使いやすい最先端のメッセージングソリューションとして Fanout をお勧めします。興味のある方は、Fanout の詳細をこちらでご確認いただけます。また、いつでもお問い合わせください。皆さまからのご連絡をお待ちしています。
WebSockets | Fastly で WebSockets を利用 | Fastly Fanout | |
---|---|---|---|
リアルタイム通信に大規模なグローバルネットワークを使用してレイテンシの短縮、コスト削減、信頼性の向上を実現できる | "check" | "check" | |
HTTP スタック内で完全に実装でき、(WebSocket などの) 別のテクノロジースタックのメンテナンスやスケーリングが不要 | "check" | ||
アプリケーション開発者が HTTP スタック内であらゆるリアルタイム関連の作業を遂行できる | "check" | ||
HTTP 経由でリクエストをオリジンに送信する前にエッジにあるリバースプロキシでリクエストをまとめ、オリジンへの負荷を軽減できる | "check" | ||
複数のトランスポートプロトコルをサポートする (HTTP、WebSocket、HTTP、HTTP Long Polling、Server Sent Event (SEE) など) | "check" | ||
オリジンにおけるステートフルロジックのメンテナンスが不要になる | "check" | ||
オリジンの容量拡大やスケーリング に伴うコストを削減できる ハードウェアやソフトウェアのコストを増やすことなく、接続数を拡大し、管理できる | "check" | ||
オリジンが各受信エンドポイントに個別にコンテンツをプッシュする必要がある1対1のステートフルなリアルタイム通信をサポート | "check" | "check" | "check" |
1対多のステートフルなリアルタイム通信を大規模にエッジで実行できる オリジンはエッジにデータを一度転送するだけで済み、エンドポイントへのプッシュはエッジで実行される | "check" | ||
(使用量の増加に伴い拡大する) データ送信コストを削減できる | "check" | ||
エッジでリクエストを検査できる (オリジンへの負荷をさらに軽減) | "check" | "check" | |
リアルタイムトラフィックに DDoS 対策とボット対策が自動的に適用される (レイヤー3/4) | "check" | "check" | |
Pub/Sub - サブスクリプションチャンネルとユーザー/エンドポイントのグループ化で最適化された選択的なコンテンツ配信を実現 | "check" | ||
API を使用できる | "check" | ||
30日間無制限の無料トライアルと、ひと月あたり100万メッセージ、100万接続分数まで利用できる大容量の無料アカウントが提供されている | "check" | "check" |
Fanout に関する参考リソース
Fastly の Compute と Fanout の基本的なハンドラーについて理解するのに役立つスターターキット
Fastly の Compute と、Fanout GRIP プロキシ経由で接続をバックエンドに送信する方法に関するスターターキット
Fanout の転送を JavaScript で実行する方法に関するスターターキット
こちらのリーダーボードのデモアプリケーションにライブでアクセスし、GitHub でソースコード を確認できます