AWS DMSを利用した今風DBリファクタリング/jawsug_okayama_2019

AWS DMSを利用した今風DBリファクタリング/jawsug_okayama_2019

# 概要

2019年08月17日に開催される JAWS-UG Okayama 2019 の発表スライドです。

https://jaws-ug-okayama.doorkeeper.jp/events/91487

株式会社オミカレ ( https://party-calendar.net/ ) で取り組んでいる DB・Webリファクタリングの手法についてご紹介させて頂きました。

F891bc57aad1b6bdbf344358e7fec3cc?s=128

Takahashi Ikki

August 11, 2019
Tweet

Transcript

  1. AWS DMSΛར༻ͨ͠ ࠓ෩DBϦϑΝΫλϦϯά 2019-08-17 JAWS-UG Okayama 2019 1

  2. ͓͠ͳ͕͖ 1. ࣗݾ঺հ 2. DBϦϑΝΫλϦϯάΛ΍Δཧ༝ 3.    

      ͱ͸ 4. DMSΛ࢖ͬͨϦϑΝΫλϦϯάख๏ 5. ·ͱΊ 2
  3. ஫ҙࣄ߲ • εϥΠυ͸ެ։͠·͢ɻ • ࣭໰ͱ͔͝ࢦఠͱ͔ॾʑͷϑΟʔυόοΫ͕͍͟͝·ͨ͠Β  ΁ ͓ئ͍க͠·͢ɻ 3

  4. 1. ࣗݾ঺հ • ߴڮ Ұٍ • Ԭࢁࡏॅ • גࣜձࣾΦϛΧϨ WebΤϯδχΞ

    • ೔ຊPostgreSQLϢʔβʔձ தࠃࢧ෦௕ • PostgreSQLྺ 1೥ 4
  5. גࣜձࣾΦϛΧϨ (ࣗࣾʹ͍ͭͯͪΐͬͱએ఻) શࠃ30,000݅ͷࠗ׆ύʔςΟΛ ܝࡌͨ͠ϙʔλϧαΠτ ໿40ສਓͷձһͷํʑʹ͝ར༻௖͍͍ͯ· ͢ɻ ࠗ׆ͱݴ͑͹ΦϛΧϨʂ \\݁ࠗ͸͍͍ͧʂʂ// 5

  6. 6

  7. αΠτͷϑϧϦχϡʔΞϧ ϑϩϯτΤϯυ • TypeScript+SCSSͰϑϧϦϓϨʔεɻ όοΫΤϯυ • PHPɺPython(Django)ͰϑϧϦϓϨʔεɻ • طଘͷٕज़తෛ࠴Λվम 7

  8. αΠτͷϑϧϦχϡʔΞϧ Πϯϑϥ • ECS(Fargate)ʹΑΔશίϯςφԽ • αΠτΛCDNͰ·ΔͬͱΩϟογϡͯ͠ߴ଎Խ • σϓϩΠϑϩʔΛAnsible͔ΒTerraformΛ ࢖ͬͨ΋ͷʹϦϓϨʔε 8

  9. ΦϛΧϨͷจԽ ʢϚωʔδϟʔ໨ઢʣ ฐࣾCTO ીࠜ(@soudai1025) ͕ PHPΧϯϑΝϨϯεͰ࿩͓ͯ͠Γ·͢ɻ ڵຯ͕͋Δํ͸ͪ͜ΒΛͲ͏ͧɻ https://speakerdeck.com/soudai/ proper-problem 9

  10. ΦϛΧϨͷจԽ ʢϓϨΠϠʔ໨ઢʣ ߴڮ͕ PHPΧϯϑΝϨϯεઋ୆Ͱ࿩ͯ͠ ͓Γ·͢ɻ ڵຯ͕͋Δํ͸ͪ͜ΒΛͲ͏ͧɻ https://speakerdeck.com/takahashiikki/ phpconference-sendai2019-omicale 10

  11. 2. DBϦϑΝΫλϦϯάΛ΍Δཧ༝ͱ ͦͷख๏ 11

  12. ΦϛΧϨʹ͍ͭͯ • αʔϏε։͔࢝Β໿̓೥͕ܦա͍ͯ͠Δɻ • ͜͜൒೥ఔͰ ։ൃਓһ͕ࣾһ1໊ + ֎஫ ͷମ੍͔Β ࣾһ6໊

    ͷମ੍ʹมֵɻ • ৭Μͳେਓͷࣄ৘͔ΒͦΕͳΓʹ͍ΘΏΔٕज़తෛ࠴ͱݺ͹ ΕΔ΋ͷ͕͋Δɻ 12
  13. ྫ͑͹ɾɾ ʮσʔλϕʔεߏ଄ΛோΊΔձ΍Ζ͏ʂʯ 13

  14. ྫ͑͹ɾɾ ʮσʔλϕʔεߏ଄ΛோΊΔձ΍Ζ͏ʂʯ ʮ͜ͷςʔϒϧԿʹ࢖ͬͯΔ͔୭͔஌ͬͯΔʁʯ 14

  15. ྫ͑͹ɾɾ ʮσʔλϕʔεߏ଄ΛோΊΔձ΍Ζ͏ʂʯ ʮ͜ͷςʔϒϧԿʹ࢖ͬͯΔ͔୭͔஌ͬͯΔʁʯ ʮʮʮ͍΍͊ɻɻɻ ! ʁʯʯʯ 15

  16. ྫ͑͹ɾɾ ʮσʔλϕʔεߏ଄ΛோΊΔձ΍Ζ͏ʂʯ ʮ͜ͷςʔϒϧԿʹ࢖ͬͯΔ͔୭͔஌ͬͯΔʁʯ ʮʮʮ͍΍͊ɻɻɻ ! ʁʯʯʯ ୭΋஌Βͳ͍ςʔϒϧͷڪා... 16

  17. gender ΧϥϜ ૝ఆ ࣮ࡍ ܕ int ೖΔσʔλ 0, 1, 2

    σʔλͷҙຯ 0: ະఆٛ, 1: உੑ, 2: ঁੑ 17
  18. gender ΧϥϜ ૝ఆ ࣮ࡍ ܕ int varchar ೖΔσʔλ 0, 1,

    2 0, 1, 2, உੑ, ঁੑ σʔλͷҙຯ 0: ະఆٛ, 1: உੑ, 2: ঁੑ 0: ະఆٛ, 1: உੑ, 2: ঁੑ 18
  19. ϓϯϓϯ͢Δɾɾʂ 19

  20. ϦϑΝΫλϦϯάΛԿނ͢Δͷ͔ • ίʔυ΍σʔλϕʔε͔Βඬ͏ ෆ٢ͳʹ͓͍ ͕΍͹͍ɻ ෆ٢ͳʹ͓͍ is ٕज़తෛ࠴ • ʮٕज़తෛ࠴Λվम͢ΔҝʹϦϑΝΫλϦϯάΛߦ͏ʯ

    => ։ൃ଎౓ͷ҆ఆԽɺอकੑͷ޲্ɾख໭ΓΛগͳ͘͢Δ 20
  21. ͱ͸͍͍ͭͭ΋ɾɾ ʮϦϑΝΫλϦϯάΛ͢Δҝʹ3ϲ݄։ൃ͕ࢭ·Γ·͢ʯ զʑ͸ελʔτΞοϓͳͷͰɺ άϩʔεͷखΛࢭΊΔࣄ͸ग़དྷͳ͍ɻ 21

  22. ޲͖߹͏ඞཁͷ͋Δ՝୊ • ࠓޙͷࣄۀͷ੒௕ͷҝʹ։ൃͷεϐʔυײ͸ඞཁෆՄܽɻ • ݶΒΕͨϦιʔεશͯΛϦϑΝΫλϦϯάʹ౤ࢿग़དྷͳ͍ɻ 22

  23. ݕ౼ʹ͋ͨͬͯߟ͑ΔҰൠతͳϦϑΝΫλϦϯάख๏ 23

  24. Ұൠతͳౕ ໊ஶ ʰσʔλϕʔεɾϦϑΝΫλϦϯάʱ 24

  25. τϦΨʔΛ࢖ͬͨϦϑΝΫλϦϯά • ৽ΧϥϜΛ௥Ճ͢Δ • τϦΨʔΛ༻͍ͯچΧϥϜ͕ߋ৽͞Εͨ৔߹ʹɺ ৽ΧϥϜΛߋ৽͢ΔΑ͏ʹ͢Δ • ֤ߦͷ৽ΧϥϜʹچΧϥϜͷ஋Λ୅ೖ͢Δ • ৽ΧϥϜ͔ΒಡΉΑ͏ʹίʔυΛมߋ͢Δ

    • ৽ΧϥϜ΁ॻ͖ࠐΉΑ͏ʹίʔυΛมߋ͢Δ • چΧϥϜͱτϦΨʔΛ࡟আ͢Δ 25
  26. σϝϦοτ • SQLͰτϦΨʔॻ͔ͳ͍ͱ͍͚ͳ͍ɻ 26

  27. SQLͰτϦΨʔΛॻ͔ͳ͍ͱ͍͚ͳ͍ɻ • Java ͰΞϓϦέʔγϣϯΛॻ͍ͨࣄ͋Δਓ ʁ • Python ͰΞϓϦέʔγϣϯΛॻ͍ͨࣄ͋Δਓ ʁ •

    JavaScript ͰΞϓϦέʔγϣϯΛॻ͍ͨࣄ͋Δਓ ʁ • Perl ͰΞϓϦέʔγϣϯΛॻ͍ͨࣄ͋Δਓ ʁ 27
  28. SQLͰτϦΨʔΛॻ͔ͳ͍ͱ͍͚ͳ͍ɻ PostgreSQLͳΒ { Java | Python | JavaScript | Perl

    | SQL } Ͱ τϦΨʔ͕ॻ͚·͢ʂ 28
  29. PostgreSQLͷखଓ͖ܕݴޠ τϦΨʔͷ࣮ߦؔ਺ΛҎԼͷ֤ݴޠͰఆ͕ٛग़དྷΔɻ ໊শ ݴޠ ഑෍ํ๏ PL/pgSQL SQL جຊ഑෍ PL/Perl Perl

    جຊ഑෍ PL/Python Python جຊ഑෍ PL/Java Java ֦ு PL/v8 JavaScript ֦ு ※ ͦͷଞ 29
  30. (ࢀߟ) PL/v8 ͷ༗ޮԽํ๏ RDS for PostgreSQLʹ͸σϑΥϧτͰ plv8͕Πϯετʔϧ͞Ε͍ͯΔͷͰɺextensionΛ༗ޮԽͯ͠΍Ε͹ok.  .+!&*$'& 

    ('*+")!* *#'- ) *!.+!&*$'&* ('*+")!* )!+! !.+!&*$'& (%,    30
  31. ฐࣾɺMySQLͳΜͰ͕͢ɾɾʢʣ 31

  32. ҆৺͍ͯͩ͘͠͞ ฐࣾ΋MySQLͰ͢ 32

  33. ͱ͍͏ࣄͰɻɻ • τϦΨʔΛָʹ͍ͨ͠͠ɺPostgreSQL޷͖͔ͩΒ MySQLͷσʔλΛPostgreSQLʹҠߦͭͭ͠ τϦΨʔ͕ൃಈ͢ΔΑ͏ͳΞʔΩςΫνϟ͕ྑ͍ɻ • খ͍͞ॴ͔Βண࣮ʹखΛਐΊ͍ͨɻ • ্هΛ৬ਓͷख͡Όͳָͯ͘ʹӡ༻͍ͨ͠ɻ ্هΛશ෦ຬͨͨ͠΋ͷ͕ཉ͍͠

    33
  34. ͦΕશ෦ AWS DMS Ͱग़དྷ·͢ʂ 34

  35. 3.       ͱ͸ 35

  36.       ωοτϫʔΫӽ͠ʹ σʔλҠߦΛߦ͏ࣄ͕ग़དྷΔαʔϏε ಄จࣈΛऔͬͯɺͱݺ͹ΕΔɻ ※

    ੍ݶ͕͋ͬͯɺίϐʔݩɾίϐʔઌͷ ͲͪΒ͔͕AWSͷΤϯυϙΠϯτͰແ ͍ͱɺϨϓϦέʔγϣϯΛ͢Δࣄ͕ग़དྷ ͳ͍ɻ 36
  37.       ͷ͝঺հ • AWS DMS

    Ͱ࢖ΘΕΔΩʔϫʔυ • ϨϓϦέʔγϣϯΠϯελϯεʹ͍ͭͯ • λεΫͷৼΔ෣͍ʹ͍ͭͯ • λεΫͷઃఆํ๏ʹ͍ͭͯ 37
  38. AWS DMS Ͱ࢖ΘΕΔΩʔϫʔυ • ιʔεΤϯυϙΠϯτ • σʔλͷίϐʔݩɻ  , ,

     ,  ͳͲɻ • λʔήοτΤϯυϙΠϯτ • σʔλͷίϐʔઌɻ  , ,  , ,    ͳͲɻ • ϨϓϦέʔγϣϯΠϯελϯε • ίϐʔݩ͔Βίϐʔઌ΁σʔλͷϨϓϦέʔγϣϯΛߦ͏Πϯελϯεɻ • λεΫ • ͲͷςʔϒϧΛͲͷΑ͏ʹҠߦ͢Δ͔ΛఆΊͨϧʔϧɻ 38
  39. ϨϓϦέʔγϣϯΠϯελϯεʹ͍ͭͯ • ΠϯελϯεΫϥε͸ T2, C4, R4ͷ̏छྨΛαϙʔτ. • T2: ։ൃɾݕূ༻ •

    C4: େྔͷԋࢉΛߦ͏৔߹ʹ໾ཱͭɻ (AWSతʹ͸ ҟछDBҠߦ͸͜ΕΛ͢͢Ί͍ͯΔ) • R4: ϝϞϦ૿ՃΠϯελϯεɻ (ҰճͷτϥϯβΫγϣϯ͕େ͖͍࣌͸͜Ε.) • ϚϧνAZʹରԠ͍ͯͯ͠ɺϑΣΠϧΦʔόʔΛαϙʔτ. • ࣮ࡍɺDMSͱ͓͕͔͔ͯۚ͠Δͷ͸Πϯελϯεར༻ྉͱετϨʔδ͚ͩɻ 39
  40. λεΫͷৼΔ෣͍ͷछྨʹ͍ͭͯ λεΫͷৼΔ෣͍͸ओʹ3λΠϓ͋Δɻ • શϩʔυ+ܧଓతͳϨϓϦέʔγϣϯ(CDC). • ΦϛΧϨͰར༻͍ͯ͠ΔλΠϓɻ • طଘͷσʔλΛϑϧϩʔυͨ͠ޙɺ τϥϯβΫγϣϯϩά͔ΒܧଓతʹϨϓϦέʔγϣϯΛߦ͏. •

    ܧଓతͳϨϓϦέʔγϣϯ(CDC)ͷΈ • શϩʔυͷΈ 40
  41. λεΫͷઃఆํ๏ʹ͍ͭͯ • ϨϓϦέʔγϣϯΛߦ͏ςʔϒϧͷࢦఆํ๏͸̎छྨ • userɿ จࣈྻҰகͰ  ςʔϒϧͷΈΛର৅ͱ͢Δɻ • user_%ɿ

    ਖ਼نදݱͰ  ςʔϒϧʹ߹க͢Δશͯͷ ςʔϒϧΛର৅ͱ͢Δɻ • ਖ਼نදݱͳͲͰෳ਺ࢦఆͨ͠৔߹͸λεΫ಺ͰฒྻͰςʔϒϧ͕ ϩʔυ͞ΕΔɻ (σϑΥϧτͰ͸8ςʔϒϧ) 41
  42. λεΫͷઃఆํ๏ʹ͍ͭͯ • ֤ςʔϒϧʹରͯ͠ҠߦϧʔϧΛઃఆ͢Δࣄ͕ग़དྷΔɻ • ྫ͑͹Ҡߦޙͷςʔϒϧ໊/ΧϥϜ໊Λมߋͨ͠Γ ର৅ͷσʔλΛϧʔϧͰߜΓࠐΜͩΓग़དྷΔɻ • ͭ·ΓɺΧϥϜ໊ͷมߋͱ͔͚ͩͳΒ ͦ΋ͦ΋τϦΨʔ͢ΒཁΒͳ͍ɻ 42

  43. λεΫӡ༻ͷ޻෉ άϧʔϓ୯ҐͰখ͘͞ϨϓϦέʔγϣϯλεΫΛઃఆͯ͠ҠߦΛਐΊΔɻ ྫɿ ϢʔβʔҠߦλεΫ, ঎඼σʔλҠߦλεΫ, ߪೖཤྺҠߦλεΫ, ... • ཧ༝ Ҡߦ׬ྃͨ͠ςʔϒϧΑΓDMSͷλεΫΛ࡟আ͍ͯ͘͠ࣄΛ

    ૝ఆ͍ͯ͠ΔͨΊɻ ӡ༻Λͯ͠ؾ෇͍͕ͨɺ খ͘͞λεΫΛ෼ׂ͓ͯ͘͠ࣄͰҰݸͷςʔϒϧҠߦ͕ ࣦഊͨ࣌͠ʹαʔϏεશମͷো֐ʹͳΒͳ͍ɻ 43
  44. ͦͷଞDMSͷओͳ׆༻ࣄྫ • ΦϯϓϨͷDB͔ΒAWSͷRDS΁σʔλΛҠߦ͢Δɻ • ਂ໷ϑϧόοΫΞοϓΛऔͬͯAWSʹసૹͯ͠ ෮ݩ͢Δ࡞ۀͱ͔ཁΒͳ͍() • RDS → DynamoDB

    ʹܧଓతʹϨϓϦέʔγϣϯΛͯ͠ Lambda͕઀ଓ͢ΔDynamoDBΛ࡞Δɻ • RDS → S3ʹcsvΛput͢Δɻ 44
  45. ·ͱΊ • DMS͸ωοτϫʔΫӽ͠ʹϨϓϦέʔγϣϯΛ࣮ݱ͢ΔαʔϏε. • σʔλͷίϐʔݩͱઌΛࢦఆͯ͠ҠߦϧʔϧͱͳΔλεΫΛ࡞੒͢ΔࣄͰ σʔλͷҠߦ͸શͯDMSͷ੹຿Ͱ࣮ݱͯ͘͠ΕΔɻ • λεΫͷཻ౓Λଟͨ͘͠Γখͨ͘͞͠Γ͢ΔࣄͰ શମͷϨϓϦέʔγϣϯͷཻ౓Λௐ੔ग़དྷΔɻ •

    DMS୯ମͱͯ͠͸ϨϓϦέʔγϣϯΠϯελϯεͷӡ༻අ͕͔͔Δఔ౓Ͱ ҆ՁͰਐΊΔࣄ͕ग़དྷΔɻ 45
  46. 4. DMSΛ࢖ͬͨϦϑΝΫλϦϯάख๏ 46

  47. ݱঢ়ͷΞʔΩςΫνϟ 47

  48. ݱঢ়ͷΞʔΩςΫνϟ ෳ਺ͷαʔϏε͕ӡ༻͞Ε͓ͯΓ ୯ҰͷMySQLͷhogeεΩʔϚ͔Β σʔλΛࢀর͍ͯ͠Δɻ ݱঢ়ͷ՝୊ • DB͔Βෆ٢ͳ೏͍͕ඬͬͯΔɻ • Web͔Β΋ෆ٢ͳ೏͍͕ඬͬͯΔɻ 48

  49. DBͷϦϑΝΫλϦϯάํ๏ • ผͷΠϯελϯεΛ༻ҙ͠ɺ AWS Database Migration ServiceΛ ࢖༻ͯ͠ϨϓϦέʔγϣϯ͢Δɻ • ϨϓϦέʔγϣϯ͞ΕͨλΠϛϯάͰ

    DBͷτϦΨʔΛൃಈͤ͞Δɻ • τϦΨʔ಺ͰچσʔλΛՃ޻͠ ϦϑΝΫλϦϯάͨ͠ςʔϒϧͷ ܗࣜʹ߹͏Α͏ʹొ࿥͢Δɻ • ࠓޙ͸NEWεΩʔϚΛࢀর͢Δɻ 49
  50. WebͷϦϑΝΫλϦϯάํ๏ APIαʔϏε Λ৽͘͠࡞Γɺ WebଆΛAPIܦ༝ʹॻ͖׵͍͑ͯ͘ɻ ͦͷࡍʹɺWebଆͷίʔυΛ ϦϑΝΫλϦϯά͍ͯ͘͠ɻ ྫ͑͹ • ձһొ࿥/ࢀরAPI •

    ࠗ׆ύʔςΟʔΛݕࡧ͢Δػೳ • ࠗ׆ύʔςΟʔʹ༧໿͢ΔAPI ·ͨɺ͜ͷAPI͸ ΞϓϦ։ൃͷ࣌ʹಉ͡෺Λ͔ͭ͏ɻ 50
  51. ϦϑΝΫλϦϯάख๏ • Web͸গͮͭ͠APIܦ༝Ͱ ࢀরɾॻࠐ͢ΔΑ͏ʹมߋ͢Δɻ • API͸ॻࠐ͸MySQLଆ΁ߦ͍ɺ ಡࠐ͸PostgreSQLଆ͔Βߦ͏ɻ • WebଆΛશͯAPIܦ༝ʹग़དྷͨΒ APIͷॻࠐ΋PostgreSQLଆ΁

    มߋ͢Δɻ 51
  52. 52

  53. ͜ͷϦϑΝΫλϦϯάํ๏ͷϝϦοτ • ߋ৽API͸MySQL΁ॻࠐΛ͢ΔͷͰগͮͭ͠APIܦ༝ʹͯ͠΋ طଘαʔϏεͷςʔϒϧͷࢀরՕॴʹӨڹ͕ແ͍ɻ • ҰՕॴAPIܦ༝ʹͯ͠ΈΔ → ໰୊͕͋Ε͹ௐ੔͢Δɻˠ ... ͳͲͷΑ͏ʹ

    ΧφϦΞϦϦʔε ܗࣜͰ গͮͭ͠վળΛਐΊ͍͚ͯΔɻ • σʔλͷಡࠐ͸PostgreSQL͔Βߦ͏ͷͰ ॻࠐAPIΛݺͿଆ͸ͲͪΒʹॻ͖ࠐΜͰ͍Δ͔Λ ؾʹ͠ͳͯ͘΋ྑ͍ɻ • WebͱΞϓϦͰಉ͡APIΛ࢖͏ͷͰWebଆͰ࡞ͬͨ΋ͷΛ ΞϓϦʹ૊ΈࠐΉࡍɺΞϓϦଆͷରԠ޻਺Λ཈͑Δࣄ͕Ͱ͖Δɻ ʢ։ൃͷखΛࢭΊͳ͍ɻʣ 53
  54. ͜ͷϦϑΝΫλϦϯάํ๏ͷσϝϦοτ • ϩʔΧϧͷ։ൃ؀ڥΛ࡞੒͢Δࣄ͕ग़དྷͳ͍ɻ ※ ࠓɺׂͱҰ൪೰·͍͠ॴɻ • DMS͕ࢭ·ͬͨ࣌ʹࢀরAPI͕ίέΔɻ ※ τϦΨʔΤϥʔ౳ͰDMS͕ࢭ·ΔͱαʔϏε͕ࢭ·Δɻ •

    DMS͕஗Ԇͨ࣌͠ͷߟྀ͕೉͍͠ɻ ※ ࠓͷॴɺக໋ই͸ͳ͍ɻ(ই͕ແ͍ͱ͸ݴͬͯͳ͍) • ίϯϑϦΫτ͢Δࣄ͕ݒ೦͞ΕΔͷͰϦʔυϨϓϦΧʹτϦΨʔΛషͬͯͳ͍ͷͰ ϦʔυϨϓϦΧ͕Ϛελʔʹঢ֨͢ΔͱαʔϏε͕ࢭ·Δɻ 54
  55. DMSΛ࢖ͬͨϦϑΝΫλϦϯάͷख๏ ·ͱΊ • AWS DMSͰ MySQL͔ΒPostgreSQLʹ ϨϓϦέʔγϣϯ͍ͯ͠Δɻ • DMS͕Ҡߦͨ͠λΠϛϯάͰઃఆͨ͠τϦΨʔ͕ൃಈͯ͠ ϦϑΝΫλϦϯά͞ΕͨςʔϒϧʹॻࠐΛ͢Δɻ

    • ߋ৽ɾࢀরΛAPIܦ༝ʹ͢ΔࣄͰطଘͷ։ൃΛਐΊͭͭ ϦϑΝΫλϦϯάͨ͠DBʹࢀরΛ੾Γସ͍͚͍͑ͯͯΔɻ • ϩʔΧϧͷ؀ڥߏங͕೉͍͠ͷͱɺDMS͕ࢭ·ͬͨ࣌ʹ ࢀরAPI͕ίέΔͷͰߟྀ͕೉͍͠ɻ 55
  56. Ҡߦࣦഊͷ؂ࢹΛͲ͏͍ͯ͠Δ͔ 56

  57. Ҡߦࣦഊͷ؂ࢹΛͲ͏͍ͯ͠Δ͔ ࠓ·Ͱ͓࿩͖ͯͨ͠௨ΓɺDMS͸ඇৗʹศརͳαʔϏεɻ ͕ɺτϦΨʔ΍σʔλҠߦλεΫ͕ίέΔͱ௚ͪʹ γεςϜো֐ʹͳΔσϝϦοτ΋͋Δɻ => ͳΔૣ ͰDMS͕ࣦഊ͍ͯ͠Δࣄʹؾͮ͘࢓૊Έ͕ඞཁ. 57

  58. Ҡߦࣦഊͷ؂ࢹΛͲ͏͍ͯ͠Δ͔ ୈ25ճதࠃ஍ํDBษڧձʹͯ ʰDBͷো֐ΛͳΔૣͰݕ஌͢Δٕज़ʱ Ͱൃදͯ͠·͢ɻ 58

  59. 3ߦͰ • Ϋϥϝι͞ΜͷϒϩάͰ঺հ͞Εٕͯͨज़ΛಡΜͰ • ͪΐͪ͜ΐͬ͜ͱԠ༻ͨ݁͠Ռ • MackerelͰ؂ࢹग़དྷΔΑ͏ʹͳͬͨɻ 59

  60. 5. ·ͱΊ 60

  61. ࠓճͷDMSϦϑΝΫλϦϯάͷ ࠷େͷϝϦοτ ຊདྷലେͳ޻਺ֻ͕͔Δ(΋͘͠͸ಡΊͳ͍)͸ͣͷ DBϦϑΝΫλϦϯάͷॲཧΛDMSλεΫ(Ҡߦ୯Ґ)Λ খͨ͘͞͠ࣄͰগͮͭ͠खΛೖΕΔࣄ͕ग़དྷΔɻ ͦͷ݁ՌɺӨڹൣғ΋ಡΈ΍͘͢վળΛਐΊΔࣄ͕ग़དྷͨɻ 61

  62. ݱࡏ • ӡ༻ͯ͠໿1೥ɻ க໋ই͸ແ͍͚ͲԿͱ͔ਐΜͰ͖ͨɻ (ই͕ແ͍ͱ͸ݴ͍ͬͯͳ͍) 62

  63. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝· ͨ͠ʂʂ 63