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

AWS DMSを使った異種DB移行のすすめ/chugokudb-24-dms-replication

AWS DMSを使った異種DB移行のすすめ/chugokudb-24-dms-replication

第24回 中国地方DB勉強会にてお話した
「AWS DMS を使った異種DB移行のすすめ」についてのスライドです。

現在、自社にて AWS DMSを用いて
MySQL(Aurora) から PostgreSQL への移行を行っています。

そのリファクタリング手法についてお話させて頂きました。

F891bc57aad1b6bdbf344358e7fec3cc?s=128

Takahashi Ikki

September 27, 2018
Tweet

More Decks by Takahashi Ikki

Other Decks in Programming

Transcript

  1. AWS DMS Λ࢖ͬͨҟछDBؒҠߦͷ ͢͢Ί 2018-09-29 ୈ24ճ தࠃ஍ํDBษڧձ JPUGதࠃࢧ෦௕ ߴڮ Ұٍ

    1
  2. ஫ҙࣄ߲ • εϥΠυ͸ޙͰެ։͠·͢ɻ • ࣭໰ͱ͔͝ࢦఠͱ͔͋Ε͹ #ChugokuDB ΁ ͓ئ͍க͠·͢ɻ 2

  3. ͓͠ͳ͕͖ 1. ࣗݾ঺հ 2. AWS DMSͱ͸ 3. PostgreSQLΛҠߦઌʹબΜͩཧ༝ 3

  4. ࣗݾ঺հ • ߴڮ Ұٍ • ԬࢁͰWebΤϯδχΞ • ೔ຊPostgreSQLϢʔβʔձ தࠃࢧ෦௕ •

    PostgreSQLྺ 3ϲ݄ ! • ϋϦωζϛͱωζϛͷҧ͍ʹ͍ͭͯ ஌ݟ͋Γ·͢ɻ 4
  5. גࣜձࣾΦϛΧϨ ࠗ׆ͱݴ͑͹ΦϛΧϨʂ \\݁ࠗ͸͍͍ͧʂʂ// ϩʔϯν͔Β໿7೥ ىۀ͔Β͸໿3೥ऑ 5

  6. ֓ཁ • ϩʔϯν͔Β̓೥ɺ৭Μͳେਓͷࣄ৘͔Β ͦΕͳΓʹ͍ΘΏΔٕज़తෛ࠴ͱݺ͹ΕΔ΋ͷ͕͋Δɻ ʮσʔλϕʔεߏ଄ΛோΊΔձ΍Ζ͏ʂʯ ʮ͜ͷςʔϒϧԿʹ࢖ΘΕͯΔ͔஌ͬͯΔਓʔʔʁʯ ʮʮʮɻɻɻʯʯʯ ୭΋஌Βͳ͍ςʔϒϧͷڪා... 6

  7. ֓ཁ • ࠓޙͷࣄۀͷ੒௕΋ݟӽͯ͠WebϖʔδͷϦϑΝΫλϦϯά ΋ඞཁͩ͠ɺRDBͷϦϑΝΫλϦϯά΋ඞཁ. • ͳΔ΂͘ແఀࢭͰ͔ͭԁ׈ʹ։ൃΛਐΊΔͨΊʹ ߟ͑ͨRDBϦϑΝΫλϦϯάͷํ๏Λ͝঺հͤͯ͞௖͖· ͢ʂʂ 7

  8. ֓ཁ • ࠓޙͷࣄۀͷ੒௕΋ݟӽͯ͠WebϖʔδͷϦϑΝΫλϦϯά ΋ඞཁͩ͠ɺRDBͷϦϑΝΫλϦϯά΋ඞཁ. • ͳΔ΂͘ແఀࢭͰ͔ͭԁ׈ʹ։ൃΛਐΊΔͨΊʹ ͦʔ͍ͩ͞Μ͕ ߟ͑ͨRDBϦϑΝΫλϦϯάͷํ๏Λ͝঺հͤͯ͞ ௖͖·͢ʂʂ 8

  9. ϦϑΝΫλϦϯάख๏ • MySQLΛ AWS DMS Ͱ PostgreSQLͷOLDεΩʔϚʹҠ͢ɻ • OLD εΩʔϚͷ֤ςʔϒϧʹ

    τϦΨʔΛఆٛ. τϦΨʔ಺ͰϦϑΝΫλϦϯάͯ͠ NEWεΩʔϚʹҠ͢ɻ • NEWεΩʔϚΛࢀর͢ΔΑ͏ʹ ੾Γସ͍͑ͯ͘. 9
  10. AWS DMS ͱ͸ 10

  11. AWS DMS ͱ͸ Database Migration Service ωοτϫʔΫӽ͠ʹ σʔλҠߦΛߦ͏ࣄ͕ग़དྷΔαʔϏε ※ ίϐʔݩɺίϐʔઌͷͲͪΒ͔͕AWS

    ͷΤϯυϙΠϯτͰ͋Ε͹ϨϓϦέʔγ ϣϯΛ͢Δࣄ͕ग़དྷΔɻ 11
  12. AWS DMSͷΩʔϫʔυ • ιʔεΤϯυϙΠϯτ • σʔλͷίϐʔݩɻ EC2 on DB, RDS,

    ΦϯϓϨDB, S3 ͳͲɻ • λʔήοτΤϯυϙΠϯτ • σʔλͷίϐʔઌ EC2 on DB, RDS, ΦϯϓϨDB, S3, DynamoDB ͳͲɻ • ϨϓϦέʔγϣϯΠϯελϯε • ϨϓϦέʔγϣϯΛߦ͏Πϯελϯε 12
  13. PostgreSQLΛҠߦઌʹબ Μͩཧ༝ 13

  14. ͦΓΌ(JPUGཧࣄ͕ೋਓ΋ډΔΜ΍͔Β) ͦ͏΍Ζɻ 14

  15. ͱ͍͏ͷ͸ຊԻɺͰ͸ͳ͍Ͱ͕͢ɻ 15

  16. PostgreSQLτϦΨʔʹ͍ͭͯ CREATE TRIGGER 'τϦΨʔ໊' trigger_time trigger_event ON 'ςʔϒϧ໊' FOR EACH

    ROW '࣮ߦؔ਺' MySQL PostgreSQL trigger_time BEFORE, AFTER BEFORE, AFTER trigger_event INSERT,UPDATE,DELETE ͔ΒҰ ͭ INSERT,UPDATE,DELETE ͔Β1 ݸҎ্ ※ ΋ͬͱ͋Δ͚Ͳɺলུ 16
  17. PostgreSQLͷڧΈ(खଓ͖ܕݴޠ) ໊শ ݴޠ ഑෍ํ๏ PL/pgSQL SQL جຊ഑෍ PL/Perl Perl جຊ഑෍

    PL/Python Python جຊ഑෍ PL/Java Java ֦ு PL/v8 JavaScript ֦ு ※ ͦͷଞ 17
  18. ͕࣌ؒ͋Ε͹σϞಈը(ଟ ෼ແ͍) 18

  19. ·ͱΊ • AWS DMS͸҆ͯ͘खܰʹࢼͤΔͱ͍͏఺ͰҠߦπʔϧͱ͠ ͯ࢖͍΍͍͢ɻ • ·ͩ·ͩ૸Γ࢝Ίͨ͹͔ΓͰɺࠓͷॴக໋ই͸ͳ͍ɻ (ই͕ແ͍ͱ͸ݴͬͯͳ͍) • ࠓޙଟ෼৭ʑͳ஍ࠈΛݟ͍ͯ͘ͱࢥ͏ͷͰͦ͏͍͏ͷ͸ࠓޙ

    ͷΠϕϯτͰΞ΢τϓοτ͍ͯ͘͠ͷͰ͝ظ଴͍ͩ͘͞ 19
  20. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝· ͨ͠ʂʂ 20