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東京リージョン利用に伴う 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
三井物産グループのデジタル証券~福岡・天神~徹底解説セミナー
c0rp_mdm
PRO
0
1.1k
インキュデータ会社紹介資料
okitsu
3
60k
malna-recruiting-pitch
malna
0
26k
データを使う側視点のデータ整備 / 第2回 データ整備を前向きに考える会
shinu
PRO
0
370
なんとかする力 〜 Android エンジニアからマネージャー、さらにその先へ? 〜
m_coder
2
480
reiwatravel ai era
reiwatravel_0405
0
860
決める人と作る人を、 分けない / Deciders build. Builders decide.
hirokiyamamoto14
PRO
0
200
マーケティンググループ紹介資料/ marketing
m3c
2
18k
Clarity for Product People
arnekittler
0
420
正解が消えた開発現場で、どう後輩を育てればいいのか?~ AI時代における「若手のストレス」と「メンターの限界」に向き合う ~
mkitahara01985
1
120
採用ピッチデック
macloud
5
91k
個人的に感動した サクラエディタの機能2026822 ゆるweb
mikikosaka
6
6.4k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
Become a Pro
speakerdeck
PRO
31
6.3k
Unsuck your backbone
ammeep
672
58k
How to make the Groovebox
asonas
2
2.4k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
540
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
520
New Earth Scene 8
popppiees
4
2.6k
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