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
270
トヨクモ4製品で実現している基幹システムとオペレーション自動化事例紹介
taketakekaho
1
31
あの頃数百自治体のコロナワクチン予約フォームを救ったWaiting Roomの運用
taketakekaho
2
480
Cloudflare_MeetUp_Sapporo_KickOff.pdf
taketakekaho
1
220
AWS初心者抜けきれない私がAWS SamuraiとAWS Community Builderの特権フル活用したらどんなものが作れるか挑戦したこと
taketakekaho
0
110
EC2 T2つまずきやすいCPUクレジット再演
taketakekaho
0
92
AWSとLINEをつないでAIボットを作ろう!初心者編
taketakekaho
0
90
AWSとLINEをつないでAIボットを作ろう
taketakekaho
0
86
LGWANでも使えるシナリオ型チャットボットをAWS ECSで構築し数百自治体に提供している話
taketakekaho
0
1.8k
Other Decks in Technology
See All in Technology
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
140
Goで作って学ぶWebSocket
ryuichi1208
3
2.3k
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
430
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
280
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
71k
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
380
ビジネスモデリング道場 目的と背景
masuda220
PRO
9
680
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
7
940
あれは良かった、あれは苦労したB2B2C型SaaSの新規開発におけるCloud Spanner
hirohito1108
2
820
クラウドサービス事業者におけるOSS
tagomoris
3
960
偏光画像処理ライブラリを作った話
elerac
1
140
IAMポリシーのAllow/Denyについて、改めて理解する
smt7174
2
170
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
For a Future-Friendly Web
brad_frost
176
9.5k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Building Applications with DynamoDB
mza
93
6.2k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
A Tale of Four Properties
chriscoyier
158
23k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Being A Developer After 40
akosma
89
590k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Site-Speed That Sticks
csswizardry
4
390
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
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