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
レガシーシステムからのデータマイグレーションあれこれ
Search
tkzwtks
May 14, 2020
1.8k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
レガシーシステムからのデータマイグレーションあれこれ
tkzwtks
May 14, 2020
More Decks by tkzwtks
See All by tkzwtks
データマイグレーションの成功戦略~サービスリニューアルで失敗しないための実践ガイド~
tkzwtks
10
3.7k
ちょっぴりDiveDeepするAWSの時間 AWS Dev Day 2023 Tokyo 延長戦 実践データ移行 〜はてなダイアリーや魔法のiらんどの事例と共に〜
tkzwtks
1
260
はてなスターにおける静的ファイル配信の話
tkzwtks
0
240
YAPC::Kyoto 2023 LT Perlブートキャンプご紹介
tkzwtks
0
1.5k
Hatena Engineer Seminar #14 魔法のiらんど データ移行編 〜新旧システム間のデータマイグレーション時に我々が考えること〜 / hatena-engineer-seminer-number-14-data-migration
tkzwtks
0
3.2k
hatena-engineer-seminar-10
tkzwtks
0
2.6k
Featured
See All Featured
BBQ
matthewcrist
90
10k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
360
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
So, you think you're a good person
axbom
PRO
2
2.2k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Rails Girls Zürich Keynote
gr2m
96
14k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Odyssey Design
rkendrick25
PRO
2
870
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
ϨΨγʔγεςϜ͔Βͷ σʔλϚΠάϨʔγϣϯ ͋Ε͜Ε 2020/05/14 ϖύϘɾͯͳٕज़େձʙ@ΦϯϥΠϯ ୍ᖒ ਸʢid:tkzwtks)
ࣗݾհ • id:tkzwtks ୍ᖒ ਸ • 201511݄ೖࣾ • ۀྺ •
ΧΫϤϜʢKADOKAWA༷ʣ • GigaViewer • ͯͳμΠΞϦʔऴྃ
ຊ͓͢͠Δ͜ͱ
ຊ͓͢͠Δ͜ͱ • 20204݄ʹϦχϡʔΞϧͨ͠ʮຐ๏ͷiΒΜͲʯͷσʔλҠ ߦ • Ҡߦʹ͔͔Δ࣌ؒΛͰ͖Δ͚ͩ͘͢ΔͨΊʹԿΛߟ͑ɺ ԿΛͬͨͷ͔
ຐ๏ͷiΒΜͲ
ຐ๏ͷiΒΜͲ • KADOKAWA༷͕ӡӦ͢Δʮຊ࠷ େڃͷΨʔϧζΤϯλςΠϝϯταΠ τʯ • 1999ʹແྉϗʔϜϖʔδ࡞αʔ Ϗεͱͯ͠ελʔτ • খઆߘػೳͰʮ࿀ۭʕφΠ࿀
ޠʯͷਓؾ࡞͕ੜ·Ε͍ͯΔ • 4݄ʹখઆʹಛԽͨ͠αʔϏεͱͯ͠ ϦχϡʔΞϧ
ϦχϡʔΞϧ • γεςϜ৽ • ৽γεςϜখઆσʔλΛҠߦ͢Δඞཁ͕͋Δ • ࠓ͜ͷ
Ҿӽ͠࡞ۀ • چγεςϜͱ৽γεςϜͷεΩʔϚͷϚοϐϯά • Ϛοϐϯάͨ͠ઌʹσʔλΛҠಈ • چεΩʔϚશʹഇࢭͯ͠ɺσʔλߏͷϦϑΝΫλϦ ϯάૂ͏ • Ұ෦σʔλม͢Δඞཁ͕͋Δ
• چγεςϜͰར༻Մೳͩͬͨه๏શͯ৽γεςϜͷه๏ ʹม͢Δ
Ҿӽ͠࡞ۀͷ՝ ʮͱʹ͔͘ҠߦॲཧΛߴʹऴΘΒ͍ͤͨʯ • σʔλҠߦͦͷͷʹ͔͔ΔͩΖ͏͕࣌ؒಡΊͳ͍ɺಡΈͮ Β͍ • ࠷ऴతͳσʔλྔ֓Ͷ༧ଌՄೳ͕ͩͬͨɺΔ͜ͱ͕ଟ ͍ͷͰ͕࣌ؒಡΊͳ͍ • Ҡߦલʹॻ͖ࠐΈΛఀࢭ͢Δඞཁ͕͋Δʢ=
ϝϯςφϯεظ ؒΛ༻ҙ͢Δඞཁ͕͋Δʣ
σʔλؒͷґଘؔͱ ॲཧͷॱ൪ • ϢʔβʔҠߦ -> ࡞Ҡߦ -> ه๏ม ͱ͍͏ॱͰྲྀΕΔ
• લͷॲཧ͕ऴΘ͍ͬͯͳ͍ͱ࣍ͷ ॲཧΛ։࢝Ͱ͖ͳ͍ • 500ϖʔδ͍࣋ͬͯΔ࡞ଘࡏ͠ɺ ͔ͳΓͷϘϦϡʔϜ͕͋Δ • શϖʔδʹؚ·ΕΔچه๏Λ৽ه๏ ʹม͢Δ
ϚωʔδυαʔϏεͷಋೖ • AWS StepFunctions + AWS Batch ͰҠߦॲཧΛฒྻ࣮ߦ͠Ұ ؾʹऴΘΒͤΔ࡞ઓ •
BatchͰҠߦॲཧࣗମΛ࣮ߦ • StepFunctionsͰBatchͷδϣϒΛૹ৴ͭͭ͠ɺਐḿཧΛ ߦ͏
AWS Batch • ϑϧϚωʔδυͳόονॲཧ࣮ߦڥ • ඞཁͳͷόονॲཧΛ࣮ߦ͢ΔͨΊͷDockerΠϝʔδ • δϣϒΛొ͍ͯ͘͠ͱɺ࣮ߦͪͷδϣϒࢦఆͨ͠ Ϧιʔεཁ݅ʹ߹ΘͤͯউखʹεέʔϧΞτɾεέʔϧ Πϯͯ͘͠ΕΔ
• DBͷੑೳݶք·ͰฒྻʹҠߦॲཧ͕Մೳ
AWS Batch • δϣϒΛͲ͏ͬͯൃߦ͢Δ? • SUBMITTEDͳδϣϒͷ࠷େʹ੍ݶ͕͋ΔͨΊɺશͯ ͷδϣϒΛ͍͖ͳΓൃߦ͢Δ͜ͱආ͚͍ͨ • ༷ࢠΛݟͳ͕ΒδϣϒΛൃߦ͢ΔॲཧΛࣗͰ༻ҙͨ͘͠ ͳ͍
AWS StepFunctions • ϚωʔδυϫʔΫϑϩʔΤϯδϯ • AWSαʔϏεͱͷ౷߹͕ڧ͍ • StepFunctions͔ΒBatchͷδϣϒΛൃߦ͢Δ͜ͱ͕Մೳ • StepFunctions͔ΒଞαʔϏεΛಉظతʹ࣮ߦͰ͖Δ
• ʮϢʔβʔҠߦॲཧ͕શͯऴΘͬͨΒখઆͷҠߦॲཧΛ͢ Δʯͱ͍͏Α͏ͳϫʔΫϑϩʔΛΉ͜ͱ͕Ͱ͖Δ
AWS StepFunctions • Mapεςʔτ • 2019/9 ʹՃ͞Εͨಈతฒྻॲཧαϙʔτ • ฒྻϑΝϯΞτΛ؆୯ʹ࣮Ͱ͖ΔΑ͏ʹͳͬͨ StepFunctionsͷεςʔτϚγϯ͔ΒBatchͷδϣϒΛൃߦ͢Δ
ܗʹͨ͠
࣮ࡍͷεςʔτϚγϯ ఆٛ • εςʔτϚγϯΛೋஈߏʹ͢Δ • ֤ఔΛͰཧ͠ɺࡉ͔͍ॲཧ ࢠʹدͤΔ • εςʔτϚγϯ
࣮ࡍͷεςʔτϚγϯ ఆٛ • ࢠεςʔτϚγϯ • batchδϣϒΛฒྻʹେྔൃߦ
࣮ࡍͷ࡞ઓ • ฒྻ࣮ߦՄೳͳ୯ҐͰάϧʔϐϯά ͢Δ • άϧʔϐϯάͨ͠ͷΛฒྻॲཧ ͢Δ • άϧʔϓͷ֤ఔΛ͞Βʹฒྻ ॲཧͯ͠ଞʹӨڹ͕ͳ͍
• ֤άϧʔϓͷ࣮ߦঢ়ଶΛS3ʹอଘ ͓͖ͯ͠ɺਐḿ֬ೝɾϦτϥΠՄ ೳͳΈΛ࡞Δ
࣮ࡍͷ࡞ઓ • ҠߦॲཧͦͷͷͰ͖Δ͚ͩߴ ʹ͢Δ • ͱʹ͔͘INSERTจΛݮΒ͢
࡞ઓޭ • ʢ࣮ࡍͷݴ͑ͳ͍͕ʣ20ͷখઆΛ͍͍ͩͨ߹ܭ10h ఔͰه๏ม·Ͱྃͯ͠ҠߦͰ͖ͨ • ϢʔβʔҠߦ -> খઆҠߦ -> ه๏ม
• ϓϩδΣΫτॳʹࢦ͍ͯͨ͠ʮԿ͔͠Βͷཧ༝Ͱࣦഊ ͨ͠߹ʹ͏Ұ͘Β͍Ͱ͖ΔΑ͏ͳ࣌ؒʯʹऩ·ͬͨ • ଞͷσʔλಉ͡ΈΛྲྀ༻Ͱ͖ͨ • ElasticSearchͷσʔλೖ1hఔͰྃͨ͠
ৼΓฦΔʢAWS Batch) • ΦʔτεέʔϦϯάΛউखʹͬͯ͘ΕΔͷඇৗʹྑ͍ • ʮϦιʔε͕ͲΕ͘Β͍ඞཁʹͳΓͦ͏͔ʯΛ࠷ॳʹ༧ଌ ͢Δඞཁ͕ͳ͍ • ࡉ͔͍ϋϚΓͲ͜Ζ͋Δ •
ىಈʙ࣮ߦ·Ͱͷ͕҆͞ఆ͠ͳ͍͜ͱ͕͋Δ • cloudwatchͷϩάάϧʔϓ͕શͯʹͳͬͯ͠·͏
ৼΓฦΔʢAWS Batch) • DockerΠϝʔδ͕͋Εಈ͘ͷͰݴޠબͷ෯͕͍ • LambdaͰΊͷॲཧ͕࣮ߦͰ͖Δ͕͜ͷ͕ҧ͏ • ࠓճWebଆͱಉ͡ݴޠΛબ͍ͯ͠Δ • Fargateࠓճબͳ͔ͬͨ
• λεΫͷಉ࣮࣌ߦʹ੍ݶ͕͋Δ
ৼΓฦΔ(AWS StepFunctions) • ֤ఔΛ୯ಠͰಈ͘όονॲཧͱ࣮ͯ͠Ͱ͖ɺͦΕΛΈ ߹Θͤͯେ͖ͳॲཧΛ࡞Εͨ • ֤ఔΛෳਓͰ࣮Ͱ͖ͨ • ్தʹॲཧΛࠩ͠ࠐΉͷ༰қ •
ޙॲཧʹ௨Λࠩ͠ࠐΉͳͲ
ৼΓฦΔ(AWS StepFunctions) • ͋ΔεςʔτϚγϯ͔ΒผͷεςʔτϚγϯΛݺͼग़͢͜ͱ Մೳ • ݸʑͷॲཧΛϞδϡʔϧͱ࣮ͯ͠Ͱ͖ͨ • ׳ΕΔ·Ͱগ͠େมʢͱݸਓతʹߟ͍͑ͯΔʣ •
εςʔτϚγϯͷೖग़ྗ݁ߏΫη͕͋Δ • σόοάͮ͠Β͍