本日、Cloudflare待機室をご紹介できることをうれしく思っております!まず、プロジェクトFair Shotという新プログラムで選ばれたお客様に最初にご利用いただけます。このプログラムは、新型コロナワクチン接種の圧倒的な需要によって、予約登録Webサイトが機能しなくなっている問題の解決を目的としています。BusinessプランとEnterpriseプランのお客様への一般提供については、近い将来行う予定です。

でも、待機室が楽しみってどういうことでしょうか?

大半の方が、待機室がどういうところかをご存知のはずです。そこにいるということにうれしい要素は、ほぼありません。私たちがよく知っている待機室は、医師の診察を受ける前にいる部屋です。そうです、予約していても、医師に待たされたり、患者が遅れたりすることがありますね。医師は一度に1人の患者しか診ることができないため、患者が順番待ちをするという仕組みがうまれ、待機室ができました。

サーバーは、医師よりも多くのリクエストを同時に処理することができますが、その負荷も過剰になることがあります。新型コロナウイルス以前の世界で、人気アーティストのコンサートやイベントのチケットをオンラインで購入しようとした際に、オンライン待機室に遭遇したご経験がある方もいらっしゃるのではないでしょうか。オンライン待機室では、アプリケーションへのインバウンドリクエストを制限し、こうしたリクエストを仮想キューに入れます。アプリケーション内のユーザー数が減少したら、アプリケーションが処理できると定義されたThresholds内で、新しいユーザーを中に入れます。これは、アプリケーションをサポートするサーバーに多数のリクエストが殺到するのを防ぐ一方で、ユーザーの立場から見た公平さも確保します。システムが過負荷になった時、リソースにアクセスを試みるユーザーは、不当にドロップされたり、再接続を強制されたりしないで、キューに入れるチャンスを望んでいるのです。

なぜ、今それを?

すぐにライブコンサートに行ける人なんて、ほとんどいない状況なのに、Cloudflareはなぜこんなことをしているのでしょうか?

そうですね、コンサートには行かないかもしれませんが、新型コロナウイルスの二次効果によって、待機室の必要性が増大しているためです。まず第一に、ソーシャルディスタンスを考慮したり、店舗や政府機関の多くが閉鎖され、顧客や国民はオンラインチャンネルに移行しました。それが、実質的にビジネスや政府機関のインフラストラクチャにさらに負担をかけることになりました。

第二に、パンデミックが起こり、その結果として、世界中の多くの人たちが、12か月前には必要としなかったリソースに頼ることになりました。具体的には、その多くは健康や政府機関に関連するリソースで、失業保険のWebサイトがその例です。オンラインインフラストラクチャは、新型コロナウイルスの影響を予測して、ピーク時の負荷に対応するようにセットアップされたわけではありません。ワクチン関連のWebサイトでも同様のパターンが起きていることが分かっています。

歴史的に見て、待機室が必要となるような組織の数はかなり少なかったのです。オンラインの多くのビジネスでは通常、ユーザーによる巨大なクラッシュが一度に起こるのではなく、より一貫性のあるユーザー負荷がかかっています。こうした組織は、カスタムの待機室を構築することができていて、アプリケーション(例:チケット購入)とも深く統合されていました。Cloudflareの待機室は、アプリケーションへのコード変更が不要で、コードを1行も書くことなく、どのWebサイトでも数分のうちにセットアップができます。

お客様のご職業がエンジニアリングアーキテクト(構造技術者)か、ビジネス業務アナリストかに関わらず、待機室の設定はいたってシンプルです。迅速で簡単にみなさまのアプリケーションの信頼性を維持し、予期しないトラフィックの急増から保護できるようにしました。当社が重要だと考える、その他の機能は、自動有効化と動的な流出です。言い換えると、Thresholdsを超えた時に待機室が自動的にONになったり、アプリケーションでユーザーがタスクを完了すれば、ユーザーの大きさの異なるバケットを流出し、キューにすぐに新しいバケットを入れるということです。このように機能するべきなのです。最後に、新型コロナウイルスは、ユーザーと企業に多大な影響を与え、特に保健機関と政府機関が受けた影響は深刻なものでした。当社は、こうしたアプリケーションが継続して利用でき、その機能性を維持できるように別の方法を提供することで、ブラウザ内でエラーを発生させることなく、全てのユーザーが必要なケアを受けられるようにしたかったのです。

Cloudflareの待機室の仕組みは?当社のエッジネットワークとWorkers製品上に待機室を構築しました。Workersと当社の新しいDurable Objectsサービスを活用することで、お客様によるコーディングも不要で、シームレスで、「すぐに使える」製品を提供いたします。さらに、当社のWorkers製品の規模とパフォーマンスを活用することで、遅延によるオーバーヘッドを著しく削減し、エンドユーザーに提示される推定時間をできるだけ正確にして、どのユーザーも必要以上にキューに入れておかないようにします。しかし、一元化されたシステムを分散化されたネットワークに構築することは簡単な作業ではありません。世界中からリクエストがアプリケーションに送られる場合、当社では特定のアプリケーションへのインバウンドとアウトバウンドなど、想定される負荷を広く正確に把握できるようにしておく必要があります。

Waiting Room なしで、Cloudflareを通過するリクエスト
待機室なしで、Cloudflareを通過するリクエスト

こうしたリクエストも、地球上を移動するのと同じくらいの時間がかかります。そして、独自のエッジケースが提示されました。Webサイトが北米とヨーロッパから適正なトラフィックがある時に、突然南米から大きなトラフィック急増が発生した場合、当社は、いつユーザーをこのアプリケーションに送り、いつ待機室を起動して過負荷からオリジンサーバーを保護するのかを、どうやって把握すればよいのでしょう?

賢いエンジニアリングと当社のWorkers製品のおかげで、アプリケーションへのグローバルな需要とほとんど同時に、それ自体が同期できるシステムを作成することができました。それによって、ユーザーを待機室にキューイングするべきか、するべきでないかのタイミングに関する必要なインサイトが得られるのです。当社のグローバルエニーキャスト ネットワークと200を超えるデータセンターを活用して、お客様のインフラストラクチャを保護するために単一障害点を排除しつつ、高い負荷がかかる中、アプリケーションに入るためにわずかな時間待つ必要があるエンドユーザーにも優れた体験を提供します。

Waiting RoomでCloudflareを通過するリクエスト
待機室でCloudflareを通過するリクエスト

待機室のセットアップ方法

待機室は、信じられないほど簡単であっという間に設定できます!評価段階で言えば、「最も簡単」の評価になるほどで、ユーザーは5つのフィールドを記入するだけです。1) 待機室の名称、2)ホスト名(設定されているゾーンですでに事前入力されています)、3)特定の時間、アプリケーションにいられるアクティブユーザーの合計数、4)1分あたりアプリケーションで許可される新規ユーザー数、5)特定ユーザーのセッション期間コーディングも、アプリケーション変更も必要ありません。

ブランディングの追加を希望されないお客様のために、デフォルトの待機室テンプレートを利用するオプションもご用意しています。これで、待機室の立ち上げも実行もプロセスが簡略化されます。

これだけです!保存を押すと、待機室は準備完了です!

お客様が時間と技術をお持ちの場合も、同じ手順にしたがっていただきます。ただし、当社のユーザーには完全なカスタマイズ機能をご提供するため、待機室をブランド化し、製品全体のルックアンドフィールを合わせることができます。

最後に、別々の待機室を管理することも非常に簡単です。「Manage Waiting Room」表を使うと、どの待機室のキューイングがアクティブで、どの待機室がキューイングしていないか、無効化になっているか、全体像が丸ごとひと目で把握できます。

待機室が持つパワーをお客様の手に委ねることができて、うれしい限りです。これで、当社のお客様はご自分のビジネスと顧客に集中することができるようになるはずです。エンタープライズ向けに待機室製品で大きなアップデートがあるというブログを近日中に投稿しますので、お見逃しなく!