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

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

tkzwtks
May 14, 2020
1.6k

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

tkzwtks

May 14, 2020
Tweet

Transcript

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

    View full-size slide

  2. ࣗݾ঺հ
    • id:tkzwtks ୍ᖒ ਸ
    • 2015೥11݄ೖࣾ
    • ۀ຿ྺ
    • ΧΫϤϜʢKADOKAWA༷ʣ
    • GigaViewer
    • ͸ͯͳμΠΞϦʔऴྃ

    View full-size slide

  3. ຊ೔͓࿩͢͠Δ͜ͱ

    View full-size slide

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

    View full-size slide

  5. ຐ๏ͷiΒΜͲ

    View full-size slide

  6. ຐ๏ͷiΒΜͲ
    • KADOKAWA༷͕ӡӦ͢Δʮ೔ຊ࠷
    େڃͷΨʔϧζΤϯλςΠϝϯταΠ
    τʯ
    • 1999೥ʹແྉϗʔϜϖʔδ࡞੒αʔ
    Ϗεͱͯ͠ελʔτ
    • খઆ౤ߘػೳͰ͸ʮ࿀ۭʕ੾φΠ࿀
    ෺ޠʯ౳ͷਓؾ࡞඼͕ੜ·Ε͍ͯΔ
    • 4݄ʹখઆʹಛԽͨ͠αʔϏεͱͯ͠
    ϦχϡʔΞϧ

    View full-size slide

  7. ϦχϡʔΞϧ
    • γεςϜ࡮৽
    • ৽γεςϜ΁খઆσʔλΛҠߦ͢Δඞཁ͕͋Δ
    • ࠓ೔͸͜ͷ࿩

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. σʔλؒͷґଘؔ܎ͱ
    ॲཧͷॱ൪
    • ϢʔβʔҠߦ -> ࡞඼Ҡߦ -> ه๏ม
    ׵ ͱ͍͏ॱͰྲྀΕΔ
    • લͷॲཧ͕ऴΘ͍ͬͯͳ͍ͱ࣍ͷ
    ॲཧΛ։࢝Ͱ͖ͳ͍
    • 500ϖʔδ͍࣋ͬͯΔ࡞඼΋ଘࡏ͠ɺ
    ͔ͳΓͷϘϦϡʔϜ͕͋Δ
    • શϖʔδʹؚ·ΕΔچه๏Λ৽ه๏
    ʹม׵͢Δ

    View full-size slide

  11. ϚωʔδυαʔϏεͷಋೖ
    • AWS StepFunctions + AWS Batch ͰҠߦॲཧΛฒྻ࣮ߦ͠Ұ
    ؾʹऴΘΒͤΔ࡞ઓ
    • BatchͰҠߦॲཧࣗମΛ࣮ߦ
    • StepFunctionsͰBatchͷδϣϒΛૹ৴ͭͭ͠ɺਐḿ؅ཧΛ
    ߦ͏

    View full-size slide

  12. AWS Batch
    • ϑϧϚωʔδυͳόονॲཧ࣮ߦ؀ڥ
    • ඞཁͳͷ͸όονॲཧΛ࣮ߦ͢ΔͨΊͷDockerΠϝʔδ
    • δϣϒΛొ࿥͍ͯ͘͠ͱɺ࣮ߦ଴ͪͷδϣϒ਺΍ࢦఆͨ͠
    Ϧιʔεཁ݅ʹ߹ΘͤͯউखʹεέʔϧΞ΢τɾεέʔϧ
    Πϯͯ͘͠ΕΔ
    • DBͷੑೳݶք·Ͱ͸ฒྻʹҠߦॲཧ͕Մೳ

    View full-size slide

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

    View full-size slide

  14. AWS StepFunctions
    • ϚωʔδυϫʔΫϑϩʔΤϯδϯ
    • AWSαʔϏεͱͷ౷߹͕ڧ͍
    • StepFunctions͔ΒBatchͷδϣϒΛൃߦ͢Δ͜ͱ͕Մೳ
    • StepFunctions͔ΒଞαʔϏεΛಉظతʹ࣮ߦͰ͖Δ
    • ʮϢʔβʔҠߦॲཧ͕શͯऴΘͬͨΒখઆͷҠߦॲཧΛ͢
    Δʯͱ͍͏Α͏ͳϫʔΫϑϩʔΛ૊Ή͜ͱ͕Ͱ͖Δ

    View full-size slide

  15. AWS StepFunctions
    • Mapεςʔτ
    • 2019/9 ʹ௥Ճ͞Εͨಈతฒྻॲཧαϙʔτ
    • ฒྻϑΝϯΞ΢τΛ؆୯ʹ࣮૷Ͱ͖ΔΑ͏ʹͳͬͨ
    StepFunctionsͷεςʔτϚγϯ͔ΒBatchͷδϣϒΛൃߦ͢Δ
    ܗʹͨ͠

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  18. ࣮ࡍͷ࡞ઓ
    • ฒྻ࣮ߦՄೳͳ୯ҐͰάϧʔϐϯά
    ͢Δ
    • άϧʔϐϯάͨ͠΋ͷΛฒྻॲཧ
    ͢Δ
    • άϧʔϓ಺ͷ֤޻ఔΛ͞Βʹฒྻ
    ॲཧͯ͠΋ଞʹӨڹ͕ͳ͍
    • ֤άϧʔϓͷ࣮ߦঢ়ଶΛS3ʹอଘ
    ͓͖ͯ͠ɺਐḿ֬ೝɾϦτϥΠՄ
    ೳͳ࢓૊ΈΛ࡞Δ

    View full-size slide

  19. ࣮ࡍͷ࡞ઓ
    • Ҡߦॲཧͦͷ΋ͷ΋Ͱ͖Δ͚ͩߴ଎
    ʹ͢Δ
    • ͱʹ͔͘INSERTจΛݮΒ͢

    View full-size slide

  20. ࡞ઓ੒ޭ
    • ʢ࣮ࡍͷ਺͸ݴ͑ͳ͍͕ʣ20೥෼ͷখઆΛ͍͍ͩͨ߹ܭ10h
    ఔ౓Ͱه๏ม׵·Ͱ׬ྃͯ͠ҠߦͰ͖ͨ
    • ϢʔβʔҠߦ -> খઆҠߦ -> ه๏ม׵
    • ϓϩδΣΫτ౰ॳʹ໨ࢦ͍ͯͨ͠ʮԿ͔͠Βͷཧ༝Ͱࣦഊ
    ͨ͠৔߹ʹ΋͏Ұ౓͘Β͍Ͱ͖ΔΑ͏ͳ࣌ؒʯʹऩ·ͬͨ
    • ଞͷσʔλ΋ಉ͡࢓૊ΈΛྲྀ༻Ͱ͖ͨ
    • ElasticSearch΁ͷσʔλ౤ೖ΋1hఔ౓Ͱ׬ྃͨ͠

    View full-size slide

  21. ৼΓฦΔʢAWS Batch)
    • ΦʔτεέʔϦϯάΛউखʹ΍ͬͯ͘ΕΔͷ͸ඇৗʹྑ͍
    • ʮϦιʔε͕ͲΕ͘Β͍ඞཁʹͳΓͦ͏͔ʯΛ࠷ॳʹ༧ଌ
    ͢Δඞཁ͕ͳ͍
    • ࡉ͔͍ϋϚΓͲ͜Ζ͸͋Δ
    • ىಈʙ࣮ߦ·Ͱͷ଎͕҆͞ఆ͠ͳ͍͜ͱ͕͋Δ
    • cloudwatchͷϩάάϧʔϓ͕શͯʹͳͬͯ͠·͏౳

    View full-size slide

  22. ৼΓฦΔʢAWS Batch)
    • DockerΠϝʔδ͕͋Ε͹ಈ͘ͷͰݴޠબ୒ͷ෯͕޿͍
    • LambdaͰ΋௕Ίͷॲཧ͕࣮ߦͰ͖Δ͕͜ͷ఺͕ҧ͏
    • ࠓճ͸Webଆͱಉ͡ݴޠΛબ୒͍ͯ͠Δ
    • Fargate͸ࠓճબ͹ͳ͔ͬͨ
    • λεΫͷಉ࣮࣌ߦ਺ʹ੍ݶ͕͋Δ

    View full-size slide

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

    View full-size slide

  24. ৼΓฦΔ(AWS StepFunctions)
    • ͋ΔεςʔτϚγϯ͔ΒผͷεςʔτϚγϯΛݺͼग़͢͜ͱ
    ΋Մೳ
    • ݸʑͷॲཧΛϞδϡʔϧͱ࣮ͯ͠૷Ͱ͖ͨ
    • ׳ΕΔ·Ͱ͸গ͠େมʢͱݸਓతʹ͸ߟ͍͑ͯΔʣ
    • εςʔτϚγϯͷೖग़ྗ͸݁ߏΫη͕͋Δ
    • σόοάͮ͠Β͍

    View full-size slide