Upgrade to Pro — share decks privately, control downloads, hide ads and more …

レガシーシステムからのデータマイグレーションあれこれ

Cd13a4e6df1a0813e093b744a5929b22?s=47 tkzwtks
May 14, 2020
1.3k

 レガシーシステムからのデータマイグレーションあれこれ

Cd13a4e6df1a0813e093b744a5929b22?s=128

tkzwtks

May 14, 2020
Tweet

Transcript

  1. ϨΨγʔγεςϜ͔Βͷ σʔλϚΠάϨʔγϣϯ ͋Ε͜Ε 2020/05/14 ϖύϘɾ͸ͯͳٕज़େձʙ@ΦϯϥΠϯ ୍ᖒ ਸʢid:tkzwtks)

  2. ࣗݾ঺հ • id:tkzwtks ୍ᖒ ਸ • 2015೥11݄ೖࣾ • ۀ຿ྺ •

    ΧΫϤϜʢKADOKAWA༷ʣ • GigaViewer • ͸ͯͳμΠΞϦʔऴྃ
  3. ຊ೔͓࿩͢͠Δ͜ͱ

  4. ຊ೔͓࿩͢͠Δ͜ͱ • 2020೥4݄ʹϦχϡʔΞϧͨ͠ʮຐ๏ͷiΒΜͲʯͷσʔλҠ ߦ • Ҡߦʹ͔͔Δ࣌ؒΛͰ͖Δ͚ͩ୹͘͢ΔͨΊʹԿΛߟ͑ɺ ԿΛ΍ͬͨͷ͔

  5. ຐ๏ͷiΒΜͲ

  6. ຐ๏ͷiΒΜͲ • KADOKAWA༷͕ӡӦ͢Δʮ೔ຊ࠷ େڃͷΨʔϧζΤϯλςΠϝϯταΠ τʯ • 1999೥ʹແྉϗʔϜϖʔδ࡞੒αʔ Ϗεͱͯ͠ελʔτ • খઆ౤ߘػೳͰ͸ʮ࿀ۭʕ੾φΠ࿀

    ෺ޠʯ౳ͷਓؾ࡞඼͕ੜ·Ε͍ͯΔ • 4݄ʹখઆʹಛԽͨ͠αʔϏεͱͯ͠ ϦχϡʔΞϧ
  7. ϦχϡʔΞϧ • γεςϜ࡮৽ • ৽γεςϜ΁খઆσʔλΛҠߦ͢Δඞཁ͕͋Δ • ࠓ೔͸͜ͷ࿩

  8. Ҿӽ͠࡞ۀ • چγεςϜͱ৽γεςϜͷεΩʔϚͷϚοϐϯά • Ϛοϐϯάͨ͠ઌʹσʔλΛҠಈ • چεΩʔϚ͸׬શʹഇࢭͯ͠ɺσʔλߏ଄ͷϦϑΝΫλϦ ϯά΋ૂ͏ • Ұ෦σʔλ͸ม׵͢Δඞཁ͕͋Δ

    • چγεςϜͰར༻Մೳͩͬͨه๏͸શͯ৽γεςϜͷه๏ ʹม׵͢Δ
  9. Ҿӽ͠࡞ۀͷ՝୊ ʮͱʹ͔͘ҠߦॲཧΛߴ଎ʹऴΘΒ͍ͤͨʯ • σʔλҠߦͦͷ΋ͷʹ͔͔ΔͩΖ͏͕࣌ؒಡΊͳ͍ɺಡΈͮ Β͍ • ࠷ऴతͳσʔλྔ͸֓Ͷ༧ଌՄೳ͕ͩͬͨɺ΍Δ͜ͱ͕ଟ ͍ͷͰ͕࣌ؒಡΊͳ͍ • Ҡߦલʹॻ͖ࠐΈΛఀࢭ͢Δඞཁ͕͋Δʢ=

    ϝϯςφϯεظ ؒΛ༻ҙ͢Δඞཁ͕͋Δʣ
  10. σʔλؒͷґଘؔ܎ͱ ॲཧͷॱ൪ • ϢʔβʔҠߦ -> ࡞඼Ҡߦ -> ه๏ม ׵ ͱ͍͏ॱͰྲྀΕΔ

    • લͷॲཧ͕ऴΘ͍ͬͯͳ͍ͱ࣍ͷ ॲཧΛ։࢝Ͱ͖ͳ͍ • 500ϖʔδ͍࣋ͬͯΔ࡞඼΋ଘࡏ͠ɺ ͔ͳΓͷϘϦϡʔϜ͕͋Δ • શϖʔδʹؚ·ΕΔچه๏Λ৽ه๏ ʹม׵͢Δ
  11. ϚωʔδυαʔϏεͷಋೖ • AWS StepFunctions + AWS Batch ͰҠߦॲཧΛฒྻ࣮ߦ͠Ұ ؾʹऴΘΒͤΔ࡞ઓ •

    BatchͰҠߦॲཧࣗମΛ࣮ߦ • StepFunctionsͰBatchͷδϣϒΛૹ৴ͭͭ͠ɺਐḿ؅ཧΛ ߦ͏
  12. AWS Batch • ϑϧϚωʔδυͳόονॲཧ࣮ߦ؀ڥ • ඞཁͳͷ͸όονॲཧΛ࣮ߦ͢ΔͨΊͷDockerΠϝʔδ • δϣϒΛొ࿥͍ͯ͘͠ͱɺ࣮ߦ଴ͪͷδϣϒ਺΍ࢦఆͨ͠ Ϧιʔεཁ݅ʹ߹ΘͤͯউखʹεέʔϧΞ΢τɾεέʔϧ Πϯͯ͘͠ΕΔ

    • DBͷੑೳݶք·Ͱ͸ฒྻʹҠߦॲཧ͕Մೳ
  13. AWS Batch • δϣϒΛͲ͏΍ͬͯൃߦ͢Δ? • SUBMITTEDͳδϣϒͷ࠷େ਺ʹ੍ݶ਺͕͋ΔͨΊɺશͯ ͷδϣϒΛ͍͖ͳΓൃߦ͢Δ͜ͱ͸ආ͚͍ͨ • ༷ࢠΛݟͳ͕ΒδϣϒΛൃߦ͢ΔॲཧΛࣗ෼Ͱ༻ҙͨ͘͠ ͳ͍

  14. AWS StepFunctions • ϚωʔδυϫʔΫϑϩʔΤϯδϯ • AWSαʔϏεͱͷ౷߹͕ڧ͍ • StepFunctions͔ΒBatchͷδϣϒΛൃߦ͢Δ͜ͱ͕Մೳ • StepFunctions͔ΒଞαʔϏεΛಉظతʹ࣮ߦͰ͖Δ

    • ʮϢʔβʔҠߦॲཧ͕શͯऴΘͬͨΒখઆͷҠߦॲཧΛ͢ Δʯͱ͍͏Α͏ͳϫʔΫϑϩʔΛ૊Ή͜ͱ͕Ͱ͖Δ
  15. AWS StepFunctions • Mapεςʔτ • 2019/9 ʹ௥Ճ͞Εͨಈతฒྻॲཧαϙʔτ • ฒྻϑΝϯΞ΢τΛ؆୯ʹ࣮૷Ͱ͖ΔΑ͏ʹͳͬͨ StepFunctionsͷεςʔτϚγϯ͔ΒBatchͷδϣϒΛൃߦ͢Δ

    ܗʹͨ͠
  16. ࣮ࡍͷεςʔτϚγϯ ఆٛ • εςʔτϚγϯΛೋஈߏ੒ʹ͢Δ • ֤޻ఔΛ਌Ͱ؅ཧ͠ɺࡉ͔͍ॲཧ ͸ࢠʹدͤΔ • ਌εςʔτϚγϯ

  17. ࣮ࡍͷεςʔτϚγϯ ఆٛ • ࢠεςʔτϚγϯ • batchδϣϒΛฒྻʹେྔൃߦ

  18. ࣮ࡍͷ࡞ઓ • ฒྻ࣮ߦՄೳͳ୯ҐͰάϧʔϐϯά ͢Δ • άϧʔϐϯάͨ͠΋ͷΛฒྻॲཧ ͢Δ • άϧʔϓ಺ͷ֤޻ఔΛ͞Βʹฒྻ ॲཧͯ͠΋ଞʹӨڹ͕ͳ͍

    • ֤άϧʔϓͷ࣮ߦঢ়ଶΛS3ʹอଘ ͓͖ͯ͠ɺਐḿ֬ೝɾϦτϥΠՄ ೳͳ࢓૊ΈΛ࡞Δ
  19. ࣮ࡍͷ࡞ઓ • Ҡߦॲཧͦͷ΋ͷ΋Ͱ͖Δ͚ͩߴ଎ ʹ͢Δ • ͱʹ͔͘INSERTจΛݮΒ͢

  20. ࡞ઓ੒ޭ • ʢ࣮ࡍͷ਺͸ݴ͑ͳ͍͕ʣ20೥෼ͷখઆΛ͍͍ͩͨ߹ܭ10h ఔ౓Ͱه๏ม׵·Ͱ׬ྃͯ͠ҠߦͰ͖ͨ • ϢʔβʔҠߦ -> খઆҠߦ -> ه๏ม׵

    • ϓϩδΣΫτ౰ॳʹ໨ࢦ͍ͯͨ͠ʮԿ͔͠Βͷཧ༝Ͱࣦഊ ͨ͠৔߹ʹ΋͏Ұ౓͘Β͍Ͱ͖ΔΑ͏ͳ࣌ؒʯʹऩ·ͬͨ • ଞͷσʔλ΋ಉ͡࢓૊ΈΛྲྀ༻Ͱ͖ͨ • ElasticSearch΁ͷσʔλ౤ೖ΋1hఔ౓Ͱ׬ྃͨ͠
  21. ৼΓฦΔʢAWS Batch) • ΦʔτεέʔϦϯάΛউखʹ΍ͬͯ͘ΕΔͷ͸ඇৗʹྑ͍ • ʮϦιʔε͕ͲΕ͘Β͍ඞཁʹͳΓͦ͏͔ʯΛ࠷ॳʹ༧ଌ ͢Δඞཁ͕ͳ͍ • ࡉ͔͍ϋϚΓͲ͜Ζ͸͋Δ •

    ىಈʙ࣮ߦ·Ͱͷ଎͕҆͞ఆ͠ͳ͍͜ͱ͕͋Δ • cloudwatchͷϩάάϧʔϓ͕શͯʹͳͬͯ͠·͏౳
  22. ৼΓฦΔʢAWS Batch) • DockerΠϝʔδ͕͋Ε͹ಈ͘ͷͰݴޠબ୒ͷ෯͕޿͍ • LambdaͰ΋௕Ίͷॲཧ͕࣮ߦͰ͖Δ͕͜ͷ఺͕ҧ͏ • ࠓճ͸Webଆͱಉ͡ݴޠΛબ୒͍ͯ͠Δ • Fargate͸ࠓճબ͹ͳ͔ͬͨ

    • λεΫͷಉ࣮࣌ߦ਺ʹ੍ݶ͕͋Δ
  23. ৼΓฦΔ(AWS StepFunctions) • ֤޻ఔΛ୯ಠͰಈ͘όονॲཧͱ࣮ͯ͠૷Ͱ͖ɺͦΕΛ૊Έ ߹Θͤͯେ͖ͳॲཧΛ࡞Εͨ • ֤޻ఔΛෳ਺ਓͰ࣮૷Ͱ͖ͨ • ్தʹॲཧΛࠩ͠ࠐΉͷ΋༰қ •

    ޙॲཧʹ௨஌Λࠩ͠ࠐΉͳͲ
  24. ৼΓฦΔ(AWS StepFunctions) • ͋ΔεςʔτϚγϯ͔ΒผͷεςʔτϚγϯΛݺͼग़͢͜ͱ ΋Մೳ • ݸʑͷॲཧΛϞδϡʔϧͱ࣮ͯ͠૷Ͱ͖ͨ • ׳ΕΔ·Ͱ͸গ͠େมʢͱݸਓతʹ͸ߟ͍͑ͯΔʣ •

    εςʔτϚγϯͷೖग़ྗ͸݁ߏΫη͕͋Δ • σόοάͮ͠Β͍