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
2.9k
あの頃数百自治体のコロナワクチン 予約フォームを救った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 たけだ
あの頃数百自治体のコロナワクチン予約フォームを救ったWaiting Roomの運用
taketakekaho
2
430
Cloudflare_MeetUp_Sapporo_KickOff.pdf
taketakekaho
1
210
AWS初心者抜けきれない私がAWS SamuraiとAWS Community Builderの特権フル活用したらどんなものが作れるか挑戦したこと
taketakekaho
0
96
EC2 T2つまずきやすいCPUクレジット再演
taketakekaho
0
87
AWSとLINEをつないでAIボットを作ろう!初心者編
taketakekaho
0
86
AWSとLINEをつないでAIボットを作ろう
taketakekaho
0
81
LGWANでも使えるシナリオ型チャットボットをAWS ECSで構築し数百自治体に提供している話
taketakekaho
0
1.7k
コミュニティを活用した勉強習慣化.pdf
taketakekaho
1
460
20180621_Node学園LT
taketakekaho
0
24
Other Decks in Technology
See All in Technology
TypeScript、上達の瞬間
sadnessojisan
46
13k
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
170
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
AGIについてChatGPTに聞いてみた
blueb
0
130
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
250
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
100
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
100
日経電子版のStoreKit2フルリニューアル
shimastripe
1
140
Featured
See All Featured
It's Worth the Effort
3n
183
27k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
Facilitating Awesome Meetings
lara
50
6.1k
Rails Girls Zürich Keynote
gr2m
94
13k
RailsConf 2023
tenderlove
29
900
YesSQL, Process and Tooling at Scale
rocio
169
14k
A Tale of Four Properties
chriscoyier
156
23k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
What's in a price? How to price your products and services
michaelherold
243
12k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
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