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.3k
Other Decks in Business
See All in Business
タケウチグループRecruit
takeuchigroup
0
13k
ダイナトレック会社紹介202608
takuyasaeki
0
150
開発が速く安くなった後の話 AI時代のソフトウェアエンジニアリング組織論 #devsumi
recruitengineers
PRO
47
33k
LTV, 실무에서는 이렇게 씁니다
datarian
0
610
負債解消という仕事は儲かる
uproad3
5
3.7k
株式会社SAFELY 会社紹介 / Company
safely_pr
1
7.9k
ビジネスプロセスから始めるデータモデリング ファクトとディメンションの前に考えること
tenajima
3
870
スクラムマスターの観察眼 〜AIによる3days爆速キャッチアップと次の一手〜/The Scrum Master's Insight: Lightning-Fast 3-Day Catch-Up with AI and the Next Move
ikuodanaka
3
550
01_全社_FLUX採用ピッチ資料_Ver.5.4
flux
11
220k
成功を追わない起業と経営 〜環境や立場を活かす戦略(Homing 2026)
kuranuki
2
1.4k
AIネイティブ時代における 開発組織の役割と拡張の可能性
recruitengineers
PRO
2
290
結果、生き残った_きのこカンファレンス2026
yurufuwahealer
0
230
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
sira's awesome portfolio website redesign presentation
elsirapls
0
320
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
440
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
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