Rettyの分析基盤におけるAWS活用術

7f7abff13e7c5ad15bfa3a823313ef9d?s=47 chie8842
October 20, 2017

 Rettyの分析基盤におけるAWS活用術

#xtechjaws #xtechjaws01
2017/10/20 X-Tech JAWS の資料

7f7abff13e7c5ad15bfa3a823313ef9d?s=128

chie8842

October 20, 2017
Tweet

Transcript

  1. 3FUUZͷ෼ੳج൫ʹ͓͚Δ"84׆༻ज़ !DIJF DIJFIBZBTIJEB 1

  2. ࣗݾ঺հ $IJF)BZBTIJEB  5XJUUFS!DIJF (JU)VCDIJF  3FUUZ*OD 4PGUXBSF&OHJOFFS  

    "84($1ػցֶश1ZUIPO4DBMB$MPKVSF%#WJN ম೑ϐΞϊςχεεϊϘ  2
  3. "84 ͱҰ෦($1 Λϑϧ׆༻ͯ͠ ෼ੳج൫Λ௒୹ظؒͰ ߏஙͨ͠ࣄྫΛ঺հ͠·͢ɻ 3

  4. 3FUUZͷσʔλ •  ͓ళ৘ใ •  Ϣʔβ৘ใ •  ྉཧ໊৘ใ •  ͓ళ΍৯΂෺ͷࣸਅ • 

    Ϣʔβͷ౤ߘจ •  ϖʔδ΁ͷΞΫηεϩά 4
  5. ෼ੳج൫ߏஙͷഎܠ •  3FUUZೖࣾ౰೔ マネージャ わたし(⼊社初⽇、 肩書き:データ サイエンティスト) ͱΓ͋͑ͣɺ෼ੳج൫ͭͬͯ͘ɻ ϲ݄Ͱʂ ͑ɺ෼ੳج൫ʜʁ

    5
  6. ͦ΋ͦ΋෼ੳج൫ͱ͸ʁ •  σʔλΛ஝ੵɾ׆༻͢ΔͨΊͷج൫ ෼ੳج൫ ! ,1*μογϡϘʔυ ΞυςΫ Ϩίϝϯυ ϩά ϑΝΠϧ

    σʔλ ϕʔε 6 " # "#ςετ
  7. ΋ͱ΋ͱ͋ͬͨ෼ੳج൫ͷ՝୊ᶃ ˙%8)ͷςʔϒϧઃܭͷ໰୊ ྫ ΫΤϦ࣮ߦ࣌ʹաେͳαʔό Ϧιʔε͕ඞཁ ετϨʔδ༰ྔඡഭ ෼ੳͮ͠Β͍ ʢΞυϗοΫ෼ੳͷ౓ʹ ෳࡶͳਖ਼نදݱநग़ʣ • 

    ෆཁͳϩά͕ϩάશମͷׂ •  ద੾ͳσʔλܕ͕࢖ΘΕ͍ͯͳ͍ •  KTPOΦϒδΣΫτ͕ςΩετܗࣜͰೖ͍ͬͯΔ 7
  8. ΋ͱ΋ͱ͋ͬͨ෼ੳج൫ͷ՝୊ᶄ ˙Ϛελσʔλ͸ผͷ%#ʹ͋Δ  •  Ϛελσʔλͱಥ߹ͯ͠෼ੳ͍ͨ͠৔߹͸ ผͷ؀ڥʹσʔλΛҠ͢ඞཁ͕͋Δ •  KPJO͍ͨ͠ΧϥϜಉ࢜Ͱσʔλܕ͕ҟͳΔ ෼ੳऀ͝ͱʹ؀ڥߏங σʔλసૹίετ

    8
  9. ΋ͱ΋ͱ͋ͬͨ෼ੳج൫ͷ՝୊ᶅ ˙ϩά૿େʹ൐͏ύϑΥʔϚϯεϘτϧωοΫ   •  ೔࣍όον͕ऴΘΒͳ͍ •  ؾܰʹΞυϗοΫ෼ੳͰ͖ͳ͍ ˠΫΤϦΛ౤͛Δࡍ͸4MBDLʹใࠂ͢Δӡ༻ 9

  10. ݱঢ়੔ཧ •  ϩάαΠζɿ೔ʹ਺े(#ʢH[KTPOঢ়ଶʣ ˠ͚ͬ͜͏Ͱ͔͍ɻ͜Ε͔Β΋૿͑Δ •  ਖ਼نԽ͞Ε͍ͯͳ͍ϩά –  ୯७ͳσʔλసૹ΍ਖ਼نදݱநग़Ͱ͢·ͳ͍ –  4FTTJPOJ[F΋&5-Ͱ΍Δ

    •  αʔϏεଆͷػೳ௥Ճʹ൐͏ཁ݅มߋ͕ ༧૝͞ΕΔ 10
  11. ৽͍͠෼ੳج൫ʹٻΊΒΕΔ΋ͷ •  ෼ੳऀʹͱͬͯ࢖͍΍͍͢ –  42-΍ͦΕʹ४ͣΔΫΤϦݴޠ͕ར༻Ͱ͖Δ –  Ϩεϙϯε΍εϧʔϓοτ •  ௥Ճ։ൃɾӡ༻͕͠΍͍͢ – 

    ྻมߋ౳͕ॊೈʹͰ͖Δ –  ෳࡶͳ&5-ॲཧʹॊೈʹରԠͰ͖Δ •  ίετʢΠχγϟϧϥϯχϯάʣ͕ݱ࣮తͰ͋Δ •  εέʔϥϒϧͰ͋Δ –  ෼ੳର৅σʔλͷछྨ΍αΠζ͕૿͑ͯ΋ରԠͰ͖Δ Ϋϥ΢υͷྑ͞Λϑϧ׆༻ͨ͠෼ੳج൫ 11
  12. ͭͬͨ͘෼ੳج൫ 3FUUZαʔϏεج൫ 3FUUZ෼ੳج൫ʢ"84ʣ 3FUUZ෼ੳج൫ʢ($1ʣ Kinesis S3 EMR (Spark) S3 EC2

    EC2 RDS(MySQL) 分析者 プランナ 12
  13. ͭͬͨ͘෼ੳج൫ 3FUUZαʔϏεج൫ 3FUUZ෼ੳج൫ʢ"84ʣ 3FUUZ෼ੳج൫ʢ($1ʣ Kinesis S3 EMR (Spark) S3 EC2

    EC2 RDS(MySQL) 分析者 プランナ σʔλϨΠΫ σʔλՃ޻ πʔϧ %8)ɾ%. 13
  14. ෼ੳج൫ߏஙͷϙΠϯτ ୹ظؒͰ࢖ΘΕΔ෼ੳج൫Λߏங͢ΔͨΊʹؾΛ͚ͭͨ ϙΠϯτΛ͝঺հ͠·͢ɻ  14   ̍ɽ໨తʹ͋ͬͨج൫ίϯϙʔωϯτͷ બఆ ̎ɽॲཧ͢Δσʔλྔͷ૿ՃΛߟྀͨ͠

    ઃܭ ̏ɽϫʔΫϑϩʔͷ؅ཧ ̐ɽ௒୹ظؒͰ௕͘࢖͑Δ෼ੳج൫Λ࡞Δ ߏஙͷਐΊํ 
  15. ໨తʹ͋ͬͨج൫ίϯϙʔωϯτ ͷબఆ 15

  16. ෼ੳج൫ͷ໾ׂ 16 σʔλϨΠΫ %8) σʔλͷऩूɾ ஝ੵ৔ॴ %. ΞυϗοΫ෼ੳ ༻σʔλϕʔε ໨తผʹՃ޻ɾू໿

    ͞Εͨσʔλϕʔε ΍Γ͍ͨ͜ͱ͕ҧ͏ͷͰඞཁͳཁ݅΋ҧ͏ɻ ҰՕॴͰҰ౓ʹ΍Ζ͏ͱ͠ͳ͍ɻ ͦΕͧΕͷཁ݅ʹ͋ͬͨίϯϙʔωοτΛར༻ ॲཧΛ෼͚Δ
  17. 3FUUZͰͷߏ੒ 17 σʔλϨΠΫ 4  %8)%. #JH2VFSZ 

  18. σʔλϨΠΫɿ4 •  ඇߏ଄Խσʔλͷอଘ •  ֦ுੑɾ଱ٱੑ͕୲อ͞ΕΔ •  αʔϏεͷಈ͍͍ͯΔ৔ॴͱಉ͡ϦʔδϣϯʹσʔλΛ อ͍࣋ͨ͠ ৔߹ʹΑͬͯ͸όοΫΞοϓɺ؂ࠪϩάɺকདྷతͳ σʔλϏδωε౳ͷཁ݅΋ߟྀ

     –  ωοτϫʔΫసૹίετ –  ؅ཧ͠΍͢͞ •  ಉ͡όέοτ಺Ͱ΋ϓϨϑΟοΫε΍λάΛར༻ͨ͠ॊ ೈͳϥΠϑαΠΫϧͷӡ༻ •  ,JOFTJT'JSFIPTFΛར༻͢Δ͜ͱͰ͔ΜͨΜʹ೔࣌͝ͱʹ σΟϨΫτϦΛ෼͚ͯอଘͰ͖Δ 18
  19. %8)ɾ%.ɿ#JH2VFSZ •  ෼ੳऀʹͱͬͯ࢖͍΍͍͢ –  4UBOEBSE42-͕ར༻Ͱ͖Δ –  6%'΍8JOEPXؔ਺΋࢖͑Δ –  εϓϨουγʔτ΍QBOEBTEBUBGSBNFͱͷ࿈ܞ • 

    ޙͷςʔϒϧઃܭมߋ͕͠΍͍͢ –  ςʔϒϧ΁ͷྻ௥Ճ͕Ͱ͖Δ •  ҆ఆͨ͠ϨΠςϯγͱεϧʔϓοτ •  ϝϯςφϯεϑϦʔ •  ࣌ؒ՝ۚͰͳ͘ΫΤϦ՝ۚ •  σϝϦοτɿ3FE4IJGU΍"UIFOBΛ࢖͏৔߹ͱൺ΂ͯɺ "84͔Β($1΁ͷσʔλసૹίετ͕͔͔Δ 19
  20. ॲཧ͢Δσʔλྔͷ૿ՃΛ ߟྀͨ͠ઃܭ 20

  21. αʔϏε֦େʹ൐͏σʔλྔ૿Ճ •  3FUUZͷ৔߹     21 ೥݄ສ66 ೥݄ສ66

    ໿೥Ͱഒɻࠓޙ΋૿͑ଓ͚Δɻ ࠷ॳ͔Βεέʔϥϒϧͳઃܭʹ͓ͯ͘͠ ඞཁ͕͋Δɻ
  22. σʔλྔ૿ՃͰؾʹ͢΂͖ϙΠϯτ •  σʔλ஝ੵ༰ྔ –  4ɺ#JH2VFSZΛ࠾༻͢Δ͜ͱͰΫϦΞ •  &5-ॲཧ –  σʔλ͕૿͑ͯ΋ಉ͡ΞʔΩςΫνϟͰॲཧՄೳ͔ – 

    ॲཧ͕࣌ؒݱ࣮త͔ •  σʔλసૹ –  σʔλ͕૿͑ͯ΋ಉ͡ΞʔΩςΫνϟͰॲཧՄೳ͔ –  ॲཧ͕࣌ؒݱ࣮త͔ –  సૹίετ͕ڐ༰ൣғ͔ 22
  23. &5-͔&-5͔ʁ &5-ɿ&YUSBDUˠ5SBOTGPSNˠ-PBE –  σʔλΛ੔ܗ͔ͯ͠Β%8)ʹϩʔυ͢Δ &-5ɿ&YUSBDUˠ-PBEˠ5SBOTGPSN –  σʔλΛ%8)ʹϩʔυ͔ͯ͠Β%8)্ͰσʔλΛ੔ܗ͢Δ 23 •  3FUUZͷ৔߹

    –  ෆཁͳϩάग़ྗ͕શମͷׂΛ઎ΊΔͨΊɺωοτϫʔΫ సૹྔΛߟྀͯ͠%8)ʹೖΕΔલʹϑΟϧλ͍ͨ͠ –  42-Ͱදݱͮ͠Β͍ෳࡶͳ&5-ॲཧΛߦ͍͍ͨ  ˠ%8)ʹೖΕΔલʹσʔλ੔ܗɻ ʢͨͩ͠42-ͰॲཧͰ͖Δ΋ͷ͸#JH2VFSZ্Ͱॲཧʣ
  24. &5-ॲཧɿ&.3 ˙&.3 •  ϩά͕૿େͯ͠΋Ϋϥελ୆਺Λ૿΍͢͜ͱͰ εέʔϧͰ͖Δ •  Ϋϥελ؀ڥߏங͕ෆཁ •  (BOHMJB΍;FQQFMJOʹΑΔϦιʔε؂ࢹ΍ϊʔτ ϒοΫ։ൃ͕ศར

    •  ౦ژϦʔδϣϯͰ࢖͑Δ σʔλՃ޻ᶃʢ4QBSLʣ 24 σʔλՃ޻ ᶄʢ42-ʣ
  25. &5-ॲཧɿ&.3 4QBSL  ˙4QBSL •  42-Ͱදݱͮ͠Β͍ඇߏ଄Խσʔλʹର͢Δ ෳࡶͳ&5-ॲཧ – ࣌ܥྻσʔλͷ4FTTJPOJ[FͳͲ •  ෼ੳऀʹೃછΈਂ͍1ZUIPOͰॲཧ͕هड़Ͱ͖Δ

    •  42-ͱҟͳΓϞδϡʔϧʹ෼͚ͯςετ͕Ͱ͖Δ ˞4QBSLͷৄࡉ͸1Z$PO+1ͷൃදࢿྉࢀর σʔλՃ޻ᶃʢ4QBSLʣ 25 σʔλՃ޻ ᶄʢ42-ʣ
  26. σʔλྔ૿ՃͰؾʹ͢΂͖ϙΠϯτ •  σʔλ஝ੵ༰ྔ –  4ɺ#JH2VFSZΛ࠾༻͢Δ͜ͱͰΫϦΞ •  &5-ॲཧ –  σʔλ͕૿͑ͯ΋ಉ͡ΞʔΩςΫνϟͰॲཧՄೳ͔ – 

    ॲཧ͕࣌ؒݱ࣮త͔ •  σʔλసૹ –  σʔλ͕૿͑ͯ΋ಉ͡ΞʔΩςΫνϟͰॲཧՄೳ͔ –  ॲཧ͕࣌ؒݱ࣮త͔ –  సૹίετ͕ڐ༰ൣғ͔ 26
  27. σʔλసૹɿ&NCVML •  ZBNMϑΝΠϧͰσʔλసૹͷઃఆΛ؅ཧ •  ϓϥάΠϯʹΑ༷ͬͯʑͳσʔλιʔεؒͷ σʔλసૹ͕Մೳ •  &NCVML্Ͱ͋Δఔ౓ͷσʔλͷՃ޻΋Մೳ •  σʔλͷฒྻ౓Λ্͛Δ͜ͱͰσʔλసૹޮ཰

    Λ޲্Ͱ͖Δ –  ͨͩ͠సૹσʔλྔ͕ଟ͍΋ͷʹؔͯ͠͸Τϥʔ͕ සൃ͍ͯ͠Ζ͍Ζνϡʔχϯά͕ඞཁͩͬͨɻ 27
  28. ϫʔΫϑϩʔͷ؅ཧ 28

  29. ϫʔΫϑϩʔͷಋೖ &NCVMLɺ&.3ɺ1ZUIPOͳͲ߹ΘͤΔͱΛ௒͑ΔλεΫ ˠґଘؔ܎ͷ֬ೝ΍Τϥʔ࣌ͷղੳͷͨΊͷϫʔΫϑϩʔ ΤϯδϯΛಋೖɻ  ϫʔΫϑϩʔΤϯδϯʹҎԼͳͲ͕͋Δ •  NBLFpMF •  EJHEBH

    •  "JSqPX •  -VJHJ  ࠓճ͸ɺ7JTVBMJ[BUJPOͱ1ZUIPOͰ͔͚Δͱ͍͏؍఺͔Β "JSqPXΛબΜͩ 29
  30. "JSqPXͷར༻ •  1ZUIPOͰ͔͚Δ •  7JTVBMJ[BUJPO͕༏Ε͍ͯΔ –  ॲཧͷґଘؔ܎͕Θ͔Γ΍͍͢ –  ೔ຖɺλεΫ͝ͱͷॲཧ͕࣌ؒݟ͑Δ ˞HJUIVCͷ"JSqPXͷϖʔδʹྫ͕͋ͬͯΘ͔Γ΍͍͢

    •  Τϥʔ࣌ͷϦτϥΠ౳ͷ੍ޚ •  ॲཧ݁ՌΛ4MBDLͰ௨஌ 30
  31. ௒୹ظؒͰ௕͘࢖͑Δ෼ੳ ج൫Λ࡞ΔߏஙͷਐΊํ 31

  32. ෼ੳج൫͋Δ͋Δ •  ࡞ͬͯΈ͚ͨͲ࢖ΘΕͳ͍ –  ཁ݅ͱ߹Θͳ͍ –  εέʔϧͰ͖ͣ࡞Γ௚͠ –  ͳΜ͔࢖͍ʹ͍͘ • 

    ӡ༻͕ΊΜͲ͍͘͞ •  ਵ࣌ͷཁ݅มߋʹ଱͑ΒΕͳ͍ 32 ҰਓͰ๊͑ࠐΉͱ͍ͨ΁Μͳ͜ͱʹɻ
  33. ෼ੳج൫ߏஙͷਐΊํᶃ •  ૣ͘࡞ͬͯ΋௕͘࢖͑ͳ͍΋ͷΛ࡞ͬͯ΋ҙຯ͕ͳ͍ •  %8)ͷ৔߹ɺج൫෦෼͸ʮ࡞ͬͯյͯ͠ʯ͕؆୯ʹ͸ ͢·ͳ͍ɻ •  ج൫෦෼͸৻ॏʹܾΊͨ 5⽉ 6⽉

    ཁ݅ώΞϦϯάɺ੡඼ɾٕज़બఆɺ1P$ &5-εΫϦϓτ࡞੒ɾ ؀ڥߏங ͬͪ͜ʹ͔͚࣌ؒͨɻ ͪΌΜͱ࢖ΘΕΔ෼ੳج൫͕Ͱ͖ͨʂ 33
  34. ෼ੳج൫ߏஙͷਐΊํᶄ •  ෼ੳऀࣗ਎͕͋Δఔ౓ӡ༻Ͱ͖ΔΑ͏ʹ͢Δ –  ϑϧϚωʔδυαʔϏεΛ࢖͏ –  &NCVMLͷઃఆϑΝΠϧ͸෼ੳऀ͕ࣗ෼Ͱ௥Ճɻ ௥Ճ͞ΕͨΒࣗಈͰ"JSqPXδϣϒʹऔΓࠐ·ΕΔ Α͏ʹ͢Δ – 

    4QBSLʹΑΔਖ਼نදݱநग़ͷ৚݅มߋ΋ɺઃఆ༻ͷ ςΩετϑΝΠϧͷର৅ߦΛมߋ͢Δ͚ͩ –  Τϥʔൃੜ࣌͸#BDLMPHͰϨϙʔτͯ͠*TTVF؅ཧɻ ؆୯ͳΤϥʔ͸ؾ͍ͮͨਓ͕௚͢ɻ 34
  35. ௒୹ظؒͰ࡞ΔͨΊʹޙճ͠ʹͨ͠΋ͷ ҎԼʹؔͯ͠͸ɺ࠷ॳͷϲ݄͸༏ઌ౓ΛԼ͛ͨɻ •  $*ɾςετͷ࣮૷ •  υΩϡϝϯςʔγϣϯ  ͱʹ͔͘ಈ͘΋ͷΛݟͤΔ͜ͱ༏ઌɻ ʢ্هΛ୲อͯ͠΋࢖ΘΕͳ͔ͬͨΒҙຯ͕ͳ͍ͷͰɺҰ ୴ӡ༻ʹ৐ͤͯΈ͔ͯΒͪΌΜͱ͢Δํ਑ʹͨ͠ɻʣ

    όά͕͋Δ৔߹͸͋ͱ͔Βͳ͓ͤΔͭ͘Γʹͳ͍ͬͯΕ͹ Α͍   35
  36. ෼ੳͷͨΊʹ޻෉ʢۤ࿑ʣͨ͜͠ͱ ͷҰ෦  •  ,JOFTJT'JSFIPTF͸ʮσʔλൃੜ࣌ࠁʯͰͳ͘ʮσʔλ౸ ண࣌ࠁʯͰσΟϨΫτϦ͕෼͔ΕΔɻ ೔લͷσʔλΛ෼ੳ͠Α͏ͱ͢Δͱɺσʔλ͕଍Γͳ ͍͜ͱʹͳΔ ˠ&.3Ͱͷ&5-Ͱʮσʔλൃੜ࣌ࠁʯΛ࢖͏Α͏ʹɻ • 

    #JH2VFSZ͸EBUFϑΥʔϚοτ͸(.5ͷΈɻ ɹˠ&5-Ͱ࣌ؒޙͷ࣌ࠁͷΧϥϜ΋࡞੒ •  σʔλϕʔε͔Βऔಘ͢ΔςʔϒϧͱϩάςʔϒϧͷΧ ϥϜͷܕΛ͋ΘͤΔ •  (PPHMF"OBMZUJDTʹ͋Θͤͯ66*%ͱ4FTTJPO*%Λ&5-Ͱ෇ ༩ 36
  37. ͍͞͝ʹ •  "84ʢͱ($1ʣΛϑϧ׆༻͢Δͱ෼ੳج൫Λ௒୹ظؒͰ ࡞ΕΔʂ –  Ͱ΋̍ਓͰ΍Δͷ͸ͭΒ͔ͬͨɻ৭ΜͳҙຯͰɻ •  ෼ੳج൫ͷߏஙͷϙΠϯτͱͯ͠ɺҎԼΛ঺հͨ͠ɻ –  ໨తʹ͋ͬͨج൫ίϯϙʔωϯτͷબఆ

    –  ॲཧ͢Δσʔλྔͷ૿ՃΛߟྀͨ͠ઃܭ –  ϫʔΫϑϩʔͷ؅ཧ –  ௒୹ظؒͰ௕͘࢖͑Δ෼ੳج൫Λ࡞ΔߏஙͷਐΊํ 37
  38. ༻ޠ •  σʔλϨΠΫ –  Ճ޻લͷੜϩάΛอଘ͢Δ৔ॴ •  %8) –  ෼ੳ͠΍͍͢Α͏ʹՃ޻͞ΕͨσʔλΛ֨ೲ͢Δσʔλϕʔε • 

    %. –  ෼ੳ༻్ʹԠͯ͡ूܭޙͷσʔλͳͲΛ֨ೲ͢ΔͳͲɺαϯυ ϘοΫεతʹ͔ͭ͏ͨΊͷσʔλϕʔε •  σʔλՃ޻πʔϧ –  ϩάΛ෼ੳ͠΍͍͢ܗʹ੔ܗ͢Δπʔϧ •  ϫʔΫϑϩʔΤϯδϯ –  Ұ࿈ͷσʔλॲཧͷϑϩʔΛ؅ཧ͢Δπʔϧ 38