予約開始時間に新型コロナワクチン接種の予約サイトにアクセスを試みても、いつまで経っても繋がらずに予約枠が終了、
さらにはシステムが過負荷でダウンして受付が一時中止に──こんなニュースが2021年4月ごろに相次いだ。

ネットの利用率が高いとはいえない高齢者層の予約でさえ支障が起きるとなると、
このまま何の策も取らずに予約対象者が拡大していけば、同じ状況が何度も起きる恐れもある。

こうした予約サイトのアクセス集中はどうすればさばき切ることができるのか?
アクセス負荷の分散に詳しい、アカマイ・テクノロジーズの中西一博さんは、いくつか考えられる方法の中でも
「エッジコンピューティングによる仮想待合室の実装」が有用とみている。

この方法は、スポーツイベントのチケット販売や人気商品の先着予約システムなどでもすでに利用されているという。
アカマイの中西さんが、ワクチン予約サイトの課題と今打てる解決策について解説する。

正規の利用者によるアクセス集中を受ける予約システムでは何が起きているかをまず考えてみよう。
こうしたサイトは、平時の100倍にも及ぶリクエストを処理する必要に迫られる。

いったんサイトの混雑が発生すると、利用者がブラウザで頻繁にページの再読み込みを繰り返すため、
サイトに押し寄せるアクセスの数はさらに増加する。

多くの予約システムは、各自治体から委託されたベンダーがSaaSの形態で運用しているようだ。
つまり複数の自治体で1つのシステムを共有している状態といえる。

自治体の予約開始日を分散させるなどの工夫で多少集中を抑えられるとはいえ、
ある自治体の予約開始時のアクセス過多でサイトが応答しなくなると、他の自治体で予約した内容の確認や
キャンセル処理に必要なアクセスができなくなる恐れもある。

ワクチン予約に利用されているシステムは、予約受け付け後のバックエンドシステムとの連携を考慮してからか、
業務プロセス管理のためのシステムを応用したものも多いようだ。既存の仕組みを利用して素早くシステムを構築できるメリットもある一方、
全国の自治体で起きているような、極端なアクセス集中を想定した設計にはなっていない。

では、アクセス集中時のピークリクエスト数に合わせて、予約システムのサーバの台数を増やす策は有効だろうか?
これはシステムがスケールアウトに適した設計になっているかに依存するが、それほど簡単ではないだろう。

特にバックエンドで動くデータベースのパフォーマンス設計は難しく、コストも跳ね上がる。
ましてや平時の100倍の同時処理を行うキャパシティーが要求されるのがワクチン予約のシステムだ。
クラウド上で単純に仮想サーバを増やして並べるだけでは解決できないし、サーバのレンタルコストが無駄になるだけだろう。

では、多くの自治体で採用している先着予約方式のまま、予約開始時のサイトへの正規利用者のアクセス集中を緩和する仕組みは作れないだろうか?
これを実現するのが「仮想待合室」(Virtual Waiting Room)だ。

Webサイトへの集中するアクセスをいったんネット上に設けた“待合室”で受け止め、
バックエンドの受け付けシステムが同時に処理可能なセッション数のみを、制御のうえ受け付けへ中継し、予約処理を確実にさばいていく。

ただ、仮想待合室も1台で処理できる数には限界がある。これを解決するのが、CDN(コンテンツ・デリバリー・ネットワーク)のエッジサーバ上で
独自のロジック(プログラム)を駆動できるエッジコンピューティング技術だ。

世界中に分散して配置されたエッジサーバ上の仮想待合室で、利用者からのアクセスを受け止める。
さらに、バックエンドのサーバに負担をかけることなく、受け付け待ちの画面をエッジサーバから利用者のブラウザに配信する。

アクセスが集中すると、エッジサーバの負荷に応じて処理用のサーバも自動的に増える。
混み合ってくると待合スペースが自動で増える、と考えれば分かりやすいだろう。
https://www.itmedia.co.jp/news/articles/2106/21/news079.html

https://image.itmedia.co.jp/news/articles/2106/21/l_ki_1609376_akamai02.jpg