Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Firestoreコスト圧縮の旅
Search
Daiki Hirakata
May 21, 2024
Technology
62
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firestoreコスト圧縮の旅
Daiki Hirakata
May 21, 2024
More Decks by Daiki Hirakata
See All by Daiki Hirakata
Rails on Docker
bigplants
2
600
Road to k8s
bigplants
0
290
Next Level Git
bigplants
0
660
AWSを使っているならOpsWorksでDevOpsしよう!
bigplants
1
1.8k
Other Decks in Technology
See All in Technology
From Developer Experience to Agentic Experience: The Next Evolution of APIs
benjagm
0
110
野良MCPサーバーを排除せよ!MCPサーバーのガバナンス
yukiogawa
1
160
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
120
macOS Golden Gate 時代のMac管理
tategami
0
130
CSS2026:OWS研究会・招待講演「世界観を、実装する」
atsush1_sada
2
230
【データ横丁主催】AI エージェント時代のTranslytical Data Platform
shisyu_gaku
0
250
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
230
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
220
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
220
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
140
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
170
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
400
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Odyssey Design
rkendrick25
PRO
2
880
The Pragmatic Product Professional
lauravandoore
37
7.5k
So, you think you're a good person
axbom
PRO
2
2.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
GitHub's CSS Performance
jonrohan
1033
470k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Believing is Seeing
oripsolob
1
250
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Transcript
Firestore ίετѹॖͷཱྀ @bigplants May 21st 2024 @Hack@DELTA
Who am I ? • Daiki Hirakata (42) • Software
Engineer • Main Programing Languages: PHP, TypeScript • Primary interests: DevOps, Docker, Kubernetes, GCP @bigplants
ےϥϯφʔܥΤϯδχΞ
ͪΐͬͱ͚ͩએ
ઈࢍ։ൃऀืूதʂ • ϓϩμΫτ໊: ͨLuck • ళฮαʔϏεۀ͚ʹγϑτػೳ Λ͡Ίͱͨ͠DXαʔϏε • ϞόΠϧΞϓϦͱཧը໘ͷWebΛఏڙ •
PHP, TypeScript, Firebase, GCP • Laravel, React, Vue.js • גࣜձࣾHataLuck and Person
ͨLuckͷγεςϜߏ • DBFirestoreͱCloud SQL ͷϋΠϒϦουߏ • Firebase -> Cloud SQLʹҰ
෦ͷσʔλΛಉظ • APIFunctions, Cloud Run
ࠓͷ͓ • Firebaseͷར༻࣮ • FirestoreͷίετѹॖͷͨΊͷௐࠪ • ՝ۚѹॖͷͨΊʹͬͨ͜ͱ • ݱࡏ࣮ࢪதͷࢪࡦͱ͜Ε͔Β
Firebaseͷར༻࣮
نײ • Cloud Functions • HTTP Trigger: 184 • Event
Trigger: 167 • Cloud Firestore • Collections: over 100
Firestoreίετ • GCPશମͷ5ׂ͕Firestore • 98%Read! Read 3.5ԯ/day
Firestoreίετ 20221݄͔Βݱࡏ·Ͱ ૿͑ͯݮΒͯ͠ɺ·ͨ૿͑ͯ
Ͳ͔͜ΒRead͞Ε͍ͯΔͷ͔ʁ • Cloud Functions • iOS/Android • ཧը໘ͷWeb
FirestoreίετѹॖͷͨΊͷ ௐࠪ
ԿΛௐࠪ͢Δ͔ʁ • ௐࠪͷతͲͷػೳ͔Β࠷Read͕ଟ͍͔ ಛఆͯ͠ରԠ͢Δػೳͷ༏ઌΛ͚ͭΔ͜ͱ • අ༻ରޮՌ͕ߴ͍ͱ͜Ζ͔Βணख͍ͯ͘͠ • ػೳผɺΞΫηεݩΫϥΠΞϯτผʹReadͷ ݅Λूܭ͢Δ
Ͳ͔͜Β݅Λநग़Ͱ͖Δͷ ͔ʁ • ࠪϩά • Firestore/Datastore API • ※ ͜Ε͕།ҰͷFirestoreͷΞΫηεϩά
ࠪϩάͷඅ༻: ¥18,000/day!
ࠪϩάͰऔΕΔσʔλ • ΦϖϨʔγϣϯ • GetDocument, RunQuery, CreateDocument ͳͲͳͲ • υΩϡϝϯτͷύε
• ϢʔβΤʔδΣϯτ
ࠪϩά • ٻϨϙʔτͷRead OpsͱࠪϩάΛ͚߹ ΘͤΔ • ٻϨϙʔτͷSKU: Cloud Firestore Read
Ops Japanͷ͕݅՝ۚ୯Ґ
ۤ࿑ͨ͠ͱ͜Ζᶃ • FirestoreͷΞΫηεݩΛಛఆ͖͠Εͳ͍ • FunctionsͰFirestore TriggerΠϕϯτͳͷ͔ HTTP TriggerΠϕϯτͳͷ͔Θ͔Βͳ͍ • ListenͰ࣮ࡍʹRead՝͕ۚΔରͷϩά͕ͲΕ͔
ผΛ͚ͭΒΕͳ͍
ۤ࿑ͨ͠ͱ͜Ζᶄ • ࠪϩάͱRead Opsͷ͕݅શવ߹Θͳ͍ • ࠷ऴతͳGoogleαϙʔτ͔Βͷճ • ʮࠪϩά͔ΒRead Opsͷ༁͑ͳ͍ Αʙʯ
<- Ͱ͖Δͬͯݴͬͨ͡ΌʔΜ orz
ௐࠪஅ೦ʂʂ (1.5ϲ݄Λඅͨ͠)
ͦΕͰಈ͖ग़͞ͳ͚Εʂ
՝ۚѹॖͷͨΊʹͬͨ͜ͱ
՝ۚѹॖࢪࡦ • FirestoreτϦΨFunctionsͷೋॏൃՐࢭͷϦ ΞʔΩςΫνϟ • ΞΫςΟϏςΟϩάͷҠߦ • FirestoreΩϟογϡػߏͷߏங • ΤΫεϙʔτରσʔλΛਫ਼ࠪ
FirestoreτϦΨFunctions ͷೋॏൃՐʁ • FirestoreτϦΨFunctionsॏෳ࣮ͯ͠ߦ͞Ε Δ͜ͱ͕͋Δ • ႈੑ͕୲อ͞Ε͍ͯΕOK͕ͩɺɺ
ႈੑ͕୲อ͞Ε͍ͯͳ͍ Functions͕ଟ͋Γ
Functions͕ೋॏʹൃՐ͠ͳ͍ Έ͕ඞཁ
ͱͱ࣮ࢪ͍ͯͨ͠ೋॏൃՐ ࢭͷΈ • ൃՐ࣌ʹΠϯϕϯτIDΛFirestoreʹॻ͖ࠐΉ • ΠϕϯτID͕͢Ͱʹଘࡏ͢ΕॲཧΛεΩο ϓɻͳ͚ΕॲཧΛߦ͏
ΠϕϯτIDΛFirestoreʹ֨ೲ
Firestoreॻ͖ࠐΈίετ͕૿Ճ • ࠷ॳؾʹͳΒͳ͍͘Β͍͕ͩͬͨػೳ͕૿ ͑ɺϦΫΤετ͕૿͑ͯ͘ΔͱͦΕͳΓʹ ཱͭΑ͏ʹͳͬͨ
ೋॏൃՐࢭͷϦΞʔΩςΫ νϟ • ॻ͖ࠐΈઌΛFirestore ͔Β Redis ʹมߋ • شൃσʔλFirestoreʹஔ͔ͳ͍ 💰
¥50,000/month ѹॖ (Write)
ΞΫςΟϏςΟϩάͷҠߦ • ΞΫςΟϏςΟϩάͱಛఆͷϢʔβૢ࡞ͷϩά ͷ͜ͱ • ͱͱFirestoreʹϩάΛ֨ೲ͍ͯͨ͠ • Ϣʔβ͕૿͑Δͱ͡Θ͡Θॻ͖ࠐΈྔ͕ଟ͘ͳΔ • FirestoreͷΤΫεϙʔτରσʔλʹͳ͍ͬͯͨ
ΞΫςΟϏςΟϩάͷҠߦ • Firestore ͔Β BigQuery ʹҠߦ • ΤΫεϙʔτର͔Βআ֎ • ϩάFirestoreʹஔ͔ͳ͍ʂ
💰 ¥50,000/month ѹॖ (Write) 💰 ¥500,000/month ѹॖ (ΤΫεϙʔτͷRead)
FirestoreΩϟογϡػߏͷߏங • ϢʔβϚελళฮϚελͳͲΑ͘ࢀর͞Ε ΔσʔλΛRedisʹΩϟογϡ 💰 ¥100,000/month ѹॖ (Read)
ͦΕͰͳ͓૿͑ଓ͚Δίετ
ݱࡏਐߦதͷίετѹॖରࡦ With גࣜձࣾDELTA͞Μ
FirestoreͷΤΫεϙʔτΛΊ Δ • ۙ ¥100Ϛϯ/݄ͷReadͷ͕ΤΫεϙʔ τ • ΤΫεϙʔτͷత • όοΫΞοϓ(༗ࣄͷࡍͷ෮ݩ͕త)
• σʔλੳ༻్ͷBigQueryΠϯϙʔτ
FirestoreͷόοΫΞοϓ • FirestoreͷόοΫΞοϓ εέδϡʔϧͱϙΠ ϯτΠϯλΠϜϦΧόϦʹஔ͖͑
σʔλੳ • ࠩόοΫΞοϓΛBigQuery • Firebase ExtensionsΛར༻
Stream Firestore to BigQuery • https://extensions.dev/extensions/ fi rebase/ fi restore-bigquery-export
• Cloud Firestore ίϨΫγϣϯͷυΩϡϝϯτ Λ BigQuery ʹΤΫεϙʔτɻΤΫεϙʔτϦ ΞϧλΠϜ͔ͭ૿Ͱ͋ΔͨΊɺBigQuery ͷσʔ λ Cloud Firestore ͷίϯςϯπͷϛϥʔͱ Δɻ
FirestoreશҠߦ
͍ͭʹຊ֨࢝ಈʂʂ
Firestore -> Cloud SQLͷҠ ߦ Cloud Functions Cloud Firestore Cloud
Run Cloud SQL ̍Ҏ্ͷϓϩδΣΫτʹͳΔ
Firestoreʹ͍ͭͯ͏ࣄ • εέʔϥϏϦςΟ͕ߴͯ҆͘ՁͳͷͰɺαʔϏε্ཱͪ ͛࣌ΧδϡΞϧʹԿͰஔ͖ͨ͘ͳΔ • ͕ɺɺ͋ͱ͋ͱɺ͓ۚʹΨπϯͱͶฦͬͯ͘Δ • αʔϏεن͕େ͖͘ͳΔͱσʔλετΞFirestoreͩ ͚ͰԿ͔ͱਏ͍ •
͍ॴҰ෦ͷϚΠΫϩαʔϏεͷόοΫΤϯυͱଊ͑ ͓ͯ͘ͱͬ͘͠Γ͘Δ
ࠓͷ·ͱΊ • ϩάشൃσʔλFirestoreʹͳΔ͘ஔ ͔ͳ͍ • Ϣʔβ͕૿͑Δͱ৭Μͳͷ͕δϫδϫͱ ૿͍͑ͯ͘ • Firestoreن͕େ͖͘ͳͬͯ͘Δͱίετί ϯτϩʔϧ͕͘͠ͳΔ
Thank You 🛹 ཱྀͭͮ͘