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
Firestore東京リージョン利用に伴う Firebaseプロジェクト移行手順 / alu-...
Search
Hikaru Tooyama
February 18, 2019
Business
2.7k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firestore東京リージョン利用に伴う Firebaseプロジェクト移行手順 / alu-firestore #アル
Hikaru Tooyama
February 18, 2019
More Decks by Hikaru Tooyama
See All by Hikaru Tooyama
アルとAlgoliaと私 / alu_algolia
vexus2
8
2.5k
Firestoreを本番運用して得た知見と事件簿 / manga-village
vexus2
6
2.6k
エンジニア向けサービスを提供するチームでの開発環境改善
vexus2
1
1.4k
Other Decks in Business
See All in Business
WHITEGLASSES BRAND BOOK | デジタル時代に勝てるキャリアを
whiteglasses2021
1
610
己のキャリアと野望を語る ~はじめて出したCfPを供養しよう~
r5ni4
0
220
KEEBHOLIC NAGOYA Vol.2
shakupan
0
110
スマサテ メンバー紹介
sumasate
0
3.3k
NEXERA inc. | Company Deck
nexera
0
25k
事業部でのAI推進とAIネイティブレベルの話
fotoyuma
0
490
研修後のキャリアについて.pdf
nicrecruit
0
160
三井物産グループのデジタル証券~品川・オフィス&ホテル~徹底解説セミナー
c0rp_mdm
PRO
0
1.5k
株式会社WePush 採用候補者様向け会社説明資料
wepush
1
1k
ゲームにおけるメディアミックス展開との向き合い方 -ヘブンバーンズレッドのメディアミックス企画の立て方-
gree_tech
PRO
0
530
人生初のマネージャーというロールを 経験して得たもの・失ったもの / Reflections on My First Manager Role
mackey0225
0
830
堅牢でスケーラブルな働き方を構築する技術
ikuodanaka
3
1.4k
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
450
Git: the NoSQL Database
bkeepers
PRO
432
67k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
380
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
Art, The Web, and Tiny UX
lynnandtonic
304
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
790
Transcript
1 Firestore౦ژϦʔδϣϯར༻ʹ͏ FirebaseϓϩδΣΫτҠߦखॱ Ξϧגࣜձࣾɹԕࢁߊ !WFYVT
2 ࣗݾհ - Ξϧגࣜձࣾ ԕࢁߊ (@vexus2) - ݱ৬Ͱ VP of
Product - ݩʑBackend(Ruby/PHP)͕ͩ࠷ۙFrontendدΓ - TypeScript / Vue / Nuxt / Firebase ͳͲ - Firebaseྺ16ϲ݄͘Β͍ - ຊ൪ӡ༻ྺ8ϲ݄͘Β͍ - झຯϚϯΨΛಡΉ͜ͱ
3 ࣗݾհ ແྉͰఏڙ͞Ε͍ͯΔອըΛूΊͨʮອըϏϨοδʯΛݸਓͰӡӦɻ ϐʔΫ࣌ͷաڈ30ؒͰ1060ສPV͕͋ΓɺͦͷޙΞϧϦϒϥϯυɻ Xxx ίϛϡχςΟ GoogleͰʮອըଜʯͰݕࡧ͢Δͱ1Ґʹ Yahoo!χϡʔεͷτοϓʹ(هࣄݩɿITmedia)
4 Ξϧͱʁ W
5 ࠓ͢༰ͷલఏհ ΞϧɺϚϯΨϑΝϯͷͨΊʹɺϚϯΨΛൃݟͰ͖ΔศརͳαʔϏεΛఏڙ͢Δ ϚϯΨ୳͠ͷใαʔϏεͰ͢ɻ iOS/Web൛ΛͦΕͧΕఏڙதɻ
6 ౦ژϦʔδϣϯͷҠߦ W
7 Firestoreͷલఏ
8 ؆қͳϕϯνϚʔΫ ଌఆ2019/1/25 ࣮ߦڥ ॳճ 2ճҎ߱ us-central 1݅औಘ 892.3ms 202.3ms
20݅औಘ(SubCollection) 864ms 260.8ms asia-northeast1 1݅औಘ 370.3ms 125.6ms 20݅औಘ(SubCollection) 461.3ms 156.4ms ࠃͰαʔϏεΛల։͢Δ্Ͱ1ඵͰૣ͘TokyoϦʔδϣϯʹ Ҡߦ͢Δʹӽͨ͜͠ͱͳ͍͕ɺ໘ͳͱ͜Ζ͕͍͔ͭ͋͘Δɻ ࢼߦճ100ճఔͷ؆қతͳϕϯνϚʔΫͰͷฏۉɻ ࣮ߦωοτϫʔΫڥͳͲʹΑͬͯมΘΔ͕ࢀߟ·Ͱɻ
9 Firestoreͷલఏ 1. Cloud FirestoreͷσϑΥϧτϦʔδϣϯ us-centralɻ βҎલ͔Β༻͍ͯ͠ΔϓϩδΣΫτશ෦͜ͷঢ়ଶɻ 2. FirestoreͷϦʔδϣϯ ʮFirebaseϓϩδΣΫτʯͷ࡞࣌
ͷΈมߋՄೳ 3. Firestore1ͭͷϓϩδΣΫτʹ͖ͭ 1͔ͭ͠࡞Ͱ͖ͳ͍ (GCPͷϓϩδΣΫτʹඥ͍͍ͯΔ) FirestoreͷϦʔδϣϯΛมߋ͢ΔͨΊʹ FirebaseϓϩδΣΫτΛ࡞Γ͢ඞཁ͕͋Δ
10 खॱͱΔ͜ͱ W
11 ϓϩδΣΫτҠߦ·Ͱͷશମ૾ - GCPϢʔβͳͲͷཧɺҠߦ - PubSub, Cloud Scheduler, BigQueryͳͲ༻͍ͯ͠ΔGCPαʔϏεͷҠߦ -
ΞϓϦଆͷॾʑ͖ઌมߋͨ͠ঢ়ଶͰΞϓϦ৹ࠪΛ௨͓ͯ͘͠ - Force UpdateͳͲͷΈେৎ͔ʁཁ֬ೝ - Cloud StorageͷҠߦઌͷBucketΛ࡞͓ͬͯ͘ - ϓϩδΣΫτҠߦʹ͏Ϣʔβ੍ͷ֬ೝ - ϝϯςφϯε࣌ؒͷࠂ - σʔλྔʹΑΔ͕Ұ൪ֻ͕͔࣌ؒΔͷFirestoreͷσʔλҠߦ ࣄલʹΔ͜ͱ ϝϯςφϯεதʹΔ͜ͱ - Firestore AuthͷσʔλҠߦ - FirestoreͷσʔλͷҠߦ - Cloud StorageͷσʔλҠߦ - CDNͷOriginͷઃఆͳͲ͋ΕΕͣʹ - Cloud FunctionsͷσϓϩΠ - ϝϯςφϯεऴྃ࣌ͷForce Update
12 ϓϩδΣΫτҠߦʹ͏Ϣʔβ੍ͷ֬ೝ - Firebase AuthenticationImport/Export͕Ͱ͖ΔͷͰ৽ϓϩδΣΫτͰҠ ߦલͱಉ͡ϢʔβͰϩάΠϯ͕Ͱ͖Δ(ιʔγϟϧϩάΠϯؚΉ) - ͨͩ͠ɺϩάΠϯঢ়ଶ͕Ҿ͖ܧ͕Εͳ͍ͨΊಗ໊(Anonymous)Ϣʔβͷσʔ λ࣮࣭ফ͑Δ -
·ͨɺϨΞέʔε͕ͩʢΞϧͷΑ͏ʹʣGoogleϩάΠϯʹՃͰGmailͳͲ ͷݖݶΛऔಘ͍ͯ͠Δ߹ɺ৽ϓϩδΣΫτҠߦޙʹ࠶શϢʔβʹݖݶ ֬ೝը໘ΛܦͯaccessTokenΛऔಘ͢Δඞཁ͕͋Δɻ ಗ໊Ϣʔβ͕ϝϯςҠલͷσʔλ͕͑ͳ͘ͳͬͯͳ͍͔ɺ ͕͋ΔΑ͏Ͱ͋ΕҠߦલʹଞϩάΠϯͤ͞Δ͜ͱͰ σʔλ͕ফ͑ͳ͘ͳΔΑ͏௨ظؒΛઃ͚ΔඞཁͳͲݕ౼͢Δ
13 Firestore AuthͷσʔλҠߦ - جຊతʹExportͯ͠Import͢Δ͚ͩɻ - લड़ͷͱ͓Γಗ໊ϩάΠϯϩάΠϯঢ়ଶ͕Ҿ͖ܧ͛ͳ͍ͷͰɺʢ৽ϓϩδΣ Ϋτʹಗ໊ϢʔβͷϊΠζΛ࣋ͪࠐΈͨ͘ͳ͍߹ʣExport͞ΕͨJSON ͷத͔Βಗ໊ϢʔβͷσʔλΛআͯ͠ྑ͍ɻ $
firebase auth:export firebase-auth-users.json --format json --project چFirebaseϓϩδΣΫτ $ firebase auth:import firebase-auth-users.json --project ৽FirebaseϓϩδΣΫτ https://gist.github.com/vexus2/d5eecdc76cf94526645656c7a01f87c9
14 FirestoreͷσʔλͷExport/Import چFirestore→GCSʹσʔλΛExportɺGCS→৽Firestoreʹ Import͢Δɻ ͨͩ͠ɺಉҰϦʔδϣϯͷGCS͔Β͔͠Import/ExportͰ ͖ͳ͍ͷͰBucketΛ2ͭ༻ҙ͢Δඞཁ͕͋Δɻ چFirestore (us-central) ৽Firestore (asia-northeast1)
gs:// backup-us (us-central1) gs:// backup-asia (asia-northeast1)
15 FirestoreͷσʔλͷExport/Import $ gcloud beta firestore export gs://backup-us --project چFirebaseϓϩδΣΫτ
$ gsutil ls -a gs://backup-us | tail -n1 # όοΫΞοϓϑΝΠϧ֬ೝ $ gsutil cp -r `gsutil ls -a gs://backup-us | tail -n1` gs://backup-asia $ gsutil ls -a gs://backup-asia | tail -n1 # όοΫΞοϓϑΝΠϧ֬ೝ $ gcloud beta firestore import `gsutil ls -a gs://backup-asia | tail -n1` --project ৽Firebaseϓϩδ ΣΫτ https://gist.github.com/vexus2/d5eecdc76cf94526645656c7a01f87c9
16 ·ͱΊ W
17 ·ͱΊ - ʢࣗࣾͷαʔϏε͕ʣຊ൪ϩʔϯνલͳΒɺҠߦʮ͍͑ͬʯͰҰؾʹ ͬͪΌ͏ͷ͕ಘࡦɻ - طʹϩʔϯνޙͳΒɺ૿͍͑ͯ͘طଘσʔλͱͷ߹ੑΛ୲อ͢ΔͨΊʹϝ ϯςφϯεΛೖΕͯҠߦ͢Δͷ͕ݱ࣮తɻ - ਖ਼Δ͜ͱଟ͍͠ߟྀࣄ߲ଟ͍ͷͰେม͕ͩɺΔՁेʹ͋
Δɻ
18