Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
あの頃数百自治体のコロナワクチン 予約フォームを救ったWaiting Roomの運用
Search
たけだ
April 25, 2023
Technology
2
3k
あの頃数百自治体のコロナワクチン 予約フォームを救ったWaiting Roomの運用
Cloudflare Meetup Tokyo Kick Off !!
でLT登壇したスライドです。
https://cfm-cts.connpass.com/event/275461/
たけだ
April 25, 2023
Tweet
Share
More Decks by たけだ
See All by たけだ
公共系SaaS屋として確実にメールを届けるために日々実施していること
taketakekaho
1
230
トヨクモ4製品で実現している基幹システムとオペレーション自動化事例紹介
taketakekaho
1
30
あの頃数百自治体のコロナワクチン予約フォームを救ったWaiting Roomの運用
taketakekaho
2
470
Cloudflare_MeetUp_Sapporo_KickOff.pdf
taketakekaho
1
220
AWS初心者抜けきれない私がAWS SamuraiとAWS Community Builderの特権フル活用したらどんなものが作れるか挑戦したこと
taketakekaho
0
110
EC2 T2つまずきやすいCPUクレジット再演
taketakekaho
0
90
AWSとLINEをつないでAIボットを作ろう!初心者編
taketakekaho
0
89
AWSとLINEをつないでAIボットを作ろう
taketakekaho
0
85
LGWANでも使えるシナリオ型チャットボットをAWS ECSで構築し数百自治体に提供している話
taketakekaho
0
1.8k
Other Decks in Technology
See All in Technology
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
390
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.3k
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.8k
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
100
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1.3k
速くて安いWebサイトを作る
nishiharatsubasa
10
12k
2.5Dモデルのすべて
yu4u
2
860
開発スピードは上がっている…品質はどうする? スピードと品質を両立させるためのプロダクト開発の進め方とは #DevSumi #DevSumiB / Agile And Quality
nihonbuson
2
2.9k
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
130
Larkご案内資料
customercloud
PRO
0
650
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
6
800
株式会社EventHub・エンジニア採用資料
eventhub
0
4.3k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
Git: the NoSQL Database
bkeepers
PRO
427
64k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Building Your Own Lightsaber
phodgson
104
6.2k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
How to Ace a Technical Interview
jacobian
276
23k
GitHub's CSS Performance
jonrohan
1030
460k
Transcript
あの頃数百自治体のコロナワクチン 予約フォームを救ったWaiting Room の運用 たけだ 2023/4/25 Cloudflare Meetup Tokyo Kick
Off! # C l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
武田可帆里 @taketakekaho 青森県八戸市出身 株式会社トラストバンク所属 趣味:ゴルフ、ワーケーション、スキューバダイビング Cloudflare利用歴4年(まだビギナー) 好きなCloudflare機能:Waiting Room たけだの 自己紹介 #
CloudflareUG_cts <経歴> SIer 金融事業本部 銀行システム開発インフラ ↓ チェンジ NewITコンサル事業部 エンジニアっぽい人 ↓ トラストバンク パブリテック事業部 自治体向けSaaS PdM 兼 なんでも屋
デジタル化総合プラットフォーム 自治体職員が電子申請や申込予約、アンケートなどのフォームを作成・集計し、 一元管理できる自治体専用のデジタル化総合プラットフォーム # C l o u d f
l a r e U G _ h n d # C l o u d f l a r e U G
利用ユーザー オリジンサーバ (日本産クラウドサーバ) 悪意のあるボット 不正アクセス・ サイバー攻撃 2020 年リリース当初からhttps 化とセキュリティ対策目的でCloudflare を導入
# C l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
コロナワクチン予約 急に決まったワクチン接種運用。 スピード重視のため自治体ごとの運用 に委ねられて日本中の1,788 自治体がワ クチン予約受付運用の検討を余儀なく される LoGo フォーム使えますか?の相談が殺 到。。
予約開始時点のアクセス集中に耐えら れるかが予測しにくい状況。 # C l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
お?!!! https://classmethod.jp/news/20210310-digital-wating-room/ # C l o u d f l
a r e U G _ h n d # C l o u d f l a r e U G
Waiting Room とは? アクセスが集中するWeb サイトについて、既存のサーバー構成を変更することな く、アクセス待機の順番管理を可能にするサービス。 アクセスが集中するWeb サイトに設定以上のアクセスが発生した場合、デジタル待 機室として用意したWeb ページへ自動で案内され、アクセス待機の順番管理を行う
仕組みです。自分の順番になると、ワクチン予約ページに自動で誘導される。 # C l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
仕様の注意 # C l o u d f l a
r e U G _ h n d # C l o u d f l a r e U G キャッシュをユニークユーザとして認識しておりLoGo フォームのアカウン トなどを認識しているわけではない
仕様の注意 # C l o u d f l a
r e U G _ h n d # C l o u d f l a r e U G 予約フォームで何人が操作中なのかは認識せず、Cloudflare 内で設定され た待ち行列アルゴリズムで待ち時間を予測してページに誘導している。 オリジンサーバの負荷状況などを見ているわけではない。
トラフィック > Waiting Room # C l o u d
f l a r e U G _ h n d # C l o u d f l a r e U G
これだけで設定できちゃう
デザインカスタマイズも可能 # C l o u d f l a
r e U G _ h n d # C l o u d f l a r e U G
困ったこと・ 工夫したこと 4 選 # C l o u d
f l a r e U G _ h n d # C l o u d f l a r e U G
①「〇〇万人が同時にアクセスしてきた場合、 目安として何分待つことになるんですか?」 に答えられない 非公式でこっそり教えてもらった計算方法 待ち行列の計算式らしい W = 1/μ ln λ/μ
# C l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
凡人の私には 理解できない 計算方法の解説は諦めて、小規模な自 治体から導入実績とって過去の実績か ら目安を回答。 # C l o u
d f l a r e U G _ h n d # C l o u d f l a r e U G
②設定値の最適値がわからず異常な待ち時間で不満に つながるリスク 設定を緩くしすぎるとサービスへの負荷のリスクとな るため念のため最初は厳しめの設定で予約開始にして 予約開始後の待ち時間と人数を監視しながら少しずつ 設定を緩和していく運用にした。 # C l o
u d f l a r e U G _ h n d # C l o u d f l a r e U G
③予約の不公平さが発生 予約時間前から予約ページにアクセスしていた場 合には待合室への自動遷移対象にならないので行 列に並ぶことなく予約ができてしまいクレームに つながる ↓ 事前に設置するのではなく予約開始時点で有効に する運用に変更 # C
l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
④API を経由してSlack で待合室発動と行列に並んだ人 数を通知 予約開始から30 分は定期的に通知するように設定 https://zenn.dev/takayuki_n/articles/3a95582c631403 # C l
o u d f l a r e U G _ h n d # C l o u d f l a r e U G
亀田さんが1 か月前にZenn で公開してくれてる # C l o u d f
l a r e U G _ h n d # C l o u d f l a r e U G
まとめ クラメソさん、Cloudflare さんマジでありがとう 実際にはこういうケースを想定した料金プランはないので今 後の運用は課題 全部の機能わからなくてもとりあえずCloudflare 使っとくと 色々恩恵受けられるので是非試してみて! # C
l o u d f l a r e U G _ h n d # C l o u d f l a r e U G
THANK YOU! 2023/4/25 Cloudflare Meetup Tokyo Kick Off!! # C
l o u d f l a r e U G _ h n d # C l o u d f l a r e U G