話題の記事

ワクチン予約サイトを落とさない Cloudflare Waiting Room の設定方法

2021.04.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

クラスメソッドはCloudflareのFair Shotプロジェクトに賛同し、ワクチン接種を推進する自治体・医療機関・協力企業にデジタル待合室Cloudflare Waiting Roomを無償提供しています。

ワクチン接種がいよいよ進みはじめ、いくつかの自治体で予約サイトがダウンする事態がすでに起きていて、少なくともサイトを落とさないようにするための措置として即効性のあるWaiting Roomの導入が増えてきています。

今回は実際にサンプルサイトを作成し、Waiting Roomを設定する手順を追っていきます。

注) Waiting Roomはまだ一般提供されておらず、現在、ワクチン接種関連のサイトのみにFair Shotプロジェクトの一部として提供されています。ご利用の際は用途の審査がございますので、こちらよりお問い合わせください。

DNS委譲とサブドメインCNAME登録

Cloudflare Waiting Roomは、アクセスが集中するWebサイトについて、既存のサーバー構成を変更することなく、アクセス待機の順番管理を可能にするサービスです。

この動作はCloudflareのDNSレベルで実行されるため、受付サイトのFQDNをDNS委譲する必要があります。

  classmethod.cf を委譲

SSLのDNS照合

今回のサンプルサイトはS3-- > CloudFrontにホストしたHTMLファイルを使うため、N.VirginiaのACMで証書を作り、照合リクエストをCloudflareのDNSに登録して有効化します。

ウィザードに従って使用するドメイン名を指定します。

DNS Validationを選択。

DNSでCNAME登録する情報が出力されるので、それをCloudflareに登録。

無事照合完了しました。

CloudFrontのドメイン名をCloudflareにCNAME登録

CloudflareにCNAME登録して、Proxied状態にします。

Cloudflareで名前解決され、Waiting Room用のProxy化も完了しました。

Waiting Roomの設定

Waiting Roomは、Trafficメニューの中にあります。

設定はいたってシンプルで、オリジンサーバーのアクティブユーザー数上限(200以上で設定)、1分ごとの新規訪問者数、オリジンサーバーの滞在時間を指定します。

順番待ちを試すために、AWSの負荷テストCloudFormationでサイトを殴ります。

サイトにアクセスすると待合室に通されます。

コンソールに待機人数が表示されています。

順番が来てサイトにアクセスできるようになりました。

こちらが実際にWaiting Roomを設置しているデモサイトになります。アクセスが集中すると上記のような順番待ちが必要になります。

https://waiting.classmethod.cf/

シンプルですが、アクセス集中からサーバーを守り、確実に予約をとってもらえるという目的のためには高い効果を発揮します。ワクチン接種が本格化する6月、7月に向けてぜひ導入していただきたいと思います。