Slide 1

Slide 1 text

Copyright © 2018 M3, Inc. All Rights Reserved "84'BSHBUFͰ&MJYJSͷ ίϯςϯπ഑৴γεςϜΛ ӡ༻ͯ͠Έͨ

Slide 2

Slide 2 text

⾃⼰紹介 me |> name “Ryohei Sonoda” |> job “Application Engineer” |> work_at %{ name: “M3, Inc”, since: “2016” ] |> history [ %{ category: “SIer”, since: “2006” } ] |> like [“Java”, “JavaScript”, “Elixir”] |> twitter “@ryoryoryohei” |> github “sonodar” |> oss [“aws-ssm-env”] |> aws_services [“ElasticBeanstalk”, “ECS”] !2

Slide 3

Slide 3 text

本⽇お話する内容 ઌ೔ɺฐࣾςοΫϒϩάʹϙετͨ͠಺༰ʹ͍ͭͯൃදͤ͞ ͍͖ͯͨͩ·͢ɻैདྷͷ&MBTUJD#FBOTUBMLߏ੒͔Β'BSHBUF ʹӡ༻Λมߋͨ͠಺༰ʹͳΓ·͢ɻ "84'BSHBUFͰ&MJYJSͷίϯςϯπ഑৴γεςϜΛӡ༻ͯ͠Έͨ IUUQTXXXNUFDICMPHFOUSZFMJYJSBXTGBSHBUF lGBSHBUFFMJYJSz·ͨ͸lGBSHBUFΤϜεϦʔzͰάά͍ͬͯͩ͘͞ɻ !3

Slide 4

Slide 4 text

AGENDA ● 'BSHBUFԽͯ͠Έͯ ● ैདྷͷ&MBTUJD#FBOTUBMLߏ੒ͱ՝୊ ● "84'BSHBUFԽޙͷߏ੒ ● ߏ੒มߋޙͷ՝୊ͱվળ఺ !4

Slide 5

Slide 5 text

Fargate化してみて w ΞϓϦέʔγϣϯσϓϩΠ·Ͱͷ͕࣌ؒߴ଎Խ͞Εͨɻ w ෼ˠ෼ w ϓϥοτϑΥʔϜߏ੒มߋָ͕ʹͳͬͨɻ w ϓϥοτϑΥʔϜมߋʹ͔͔Δ͕࣌ؒ୹ॖ͞Εͨɻ w ࣌ؒˠ෼ w %PDLFSԽʹΑΓϩʔΧϧ؀ڥͰϓϥοτϑΥʔϜࣗମͷςετ͕Ͱ ͖ΔΑ͏ʹͳͬͨɻ w ίϯςφԽʹΑΔΦʔόʔϔου͸΄ͱΜͲݟΒΕͳ͔ͬͨɻ w σϓϩΠύΠϓϥΠϯΛ؅ཧ͠΍͘͢ͳͬͨɻ !5

Slide 6

Slide 6 text

従来のElasticBeanstalk構成と課題 'BSHBUFԽલ͸&MBTUJD#FBOTUBMLͷ$VTUPN1MBUGPSN Λར༻ͯ͠&MJYJS1IPFOJY؀ڥΛӡ༻͍ͯ͠·ͨ͠ɻ &MBTUJD#FBOTUBML͸ݱঢ়ɺ&SMBOHͷϓϥοτϑΥʔϜ͸ αϙʔτ͞Ε͍ͯͳ͍ͨΊɺಠࣗʹϏϧυͨ͠$VTUPN 1MBUGPSNΛར༻͢Δඞཁ͕͋Γ·ͨ͠ɻ !6

Slide 7

Slide 7 text

従来のElasticBeanstalk構成と課題 &$Ͱ͸ͳ͘&MBTUJD#FBOTUBMLΛબఆͨ͠ཧ༝͸ɺͪΐ͏ ͲγεςϜߏஙͷλΠϛϯάͰ$VTUPN1MBUGPSN͕ϩϯ ν͞Εͨ͜ͱͱɺࢲࣗ਎&MBTUJD#FBOTUBMLʹ׳Ε͍ͯͨͨ ΊͰ͢ɻ &MBTUJD#FBOTUBML͸θϩμ΢ϯλΠϜͰͷσϓϩΠΛ࡞Γ ࠐΉඞཁ͕ͳ͘ɺίϚϯυ̍ͭͰΞϓϦέʔγϣϯͷ৽όʔ δϣϯ͕σϓϩΠͰ͖ΔͷͰɺଞγεςϜͰ΋ॏๅ͍ͯ͠· ͢ɻ !7

Slide 8

Slide 8 text

従来のElasticBeanstalk構成と課題 'BSHBUFҠߦલͷϥϯλΠϜߏ੒͸ҎԼͷ௨ΓͰ͢ɻ !8

Slide 9

Slide 9 text

従来のElasticBeanstalk構成と課題 &MBTUJD#FBOTUBMLʹର͢ΔΞϓϦέʔγϣϯͷσϓϩΠ͸ ҎԼͷΑ͏ʹ࣮ࢪ͍ͯ͠·ͨ͠ɻ ࣾ಺(JUMBCʹιʔείʔυΛϓογϡɻ (JUMBC$*ͷϚχϡΞϧδϣϒͰFCEFQMPZίϚϯυΛ ࣮ߦɻ ‎ "84@"$$&44@,&:@*%ͱ"84@4&$3&5@"$$&44@,&:͸ (JUMBC$*ͷϓϩδΣΫτ؀ڥม਺ʹઃఆ͞Ε͍ͯΔɻ !9

Slide 10

Slide 10 text

従来のElasticBeanstalk構成と課題 ਤʹද͢ͱҎԼͷΑ͏ͳΠϝʔδͰ͢ɻ !10

Slide 11

Slide 11 text

従来のElasticBeanstalk構成と課題 &SMBOH΍&MJYJSͷόʔδϣϯΞοϓͷͨΊʹ$VTUPN 1MBUGPSNࣗମΛϏϧυ͠ͳ͓͢৔߹͸ɺҎԼͷΑ͏ʹ࣮ ࢪ͍ͯ͠·ͨ͠ɻ ࣾ಺(JUMBCʹιʔείʔυΛϓογϡɻ ϩʔΧϧ୺຤Ͱख࡞ۀͰFCQDSFBUFίϚϯυΛ࣮ߦɻ ‎ (JUMBC$*δϣϒ͔Βͷ࣮ߦʹ͍ͭͯɺσϓϩΠύΠϓϥΠϯΛߏஙͨ͠΋ͷ ͷ্ख͘ػೳͤͣɺ݁ہ͜ͷख๏ʹམͪண͖·ͨ͠ɻৄ͘͠͸ฐࣾςοΫϒ ϩάΛࢀর͍ͯͩ͘͠͞ɻ !11

Slide 12

Slide 12 text

従来のElasticBeanstalk構成と課題 $VTUPN1MBUGPSNͷϏϧυΛਤʹද͢ͱҎԼͷΑ͏ͳΠϝʔδͰ͢ɻ !12

Slide 13

Slide 13 text

従来のElasticBeanstalk構成と課題 ͜ͷߏ੒ͷ໰୊఺ͱͯ͠$VTUPN1MBUGPSNͷϏϧυ࣌ؒ ͕௕͍͜ͱ͕ڍ͛ΒΕ·͢ɻ w $VTUPN1MBUGPSNͷϏϧυʹ͕͔͔࣌ؒΓ͗͢Δ ʢ&SMBOHͷϏϧυʹ໿෼ʣɻ ‣ αʔόߏ੒ΛFCFYUFOTJPOTͰ؅ཧ͢ΔΑ͏ʹͳΔɻ ‣ ΞϓϦέʔγϣϯͷσϓϩΠ͕αʔόߏ੒ͷΤϥʔ Ͱࣦഊ͢ΔΑ͏ʹͳΔɻ GMVFOUEϓϥάΠϯͷڝ߹ͳͲ !13

Slide 14

Slide 14 text

従来のElasticBeanstalk構成と課題 ·ͨɺ(JUMBC$*্͔ΒσϓϩΠίϚϯυΛ࣮ߦ͢Δ౎߹্ɺ (JUMBC$*Ͱར༻͢Δ*".Ϣʔβͷݖݶ͸͔ͳΓڧ͍ݖݶʹ ͳΓ·͢ɻ ۩ମతʹ͸ɺ&MBTUJD#FBOTUBML4FSWJDF3PMFͱಉఔ౓ͷݖݶ ͕ඞཁͳͨΊɺFD5FSNJOBUF*OTUBODFTͱ͍ͬͨϦιʔε ͷ࡟আݖݶΛؚΜͩ΋ͷͱͳΓ·͢ɻ (JUMBC$*ͷύϥϝʔλ͕ൺֱత؆୯ʹࢀরͰ͖ͯ͠·͏ͨΊɺ ͜Ε͸ηΩϡϦςΟ্๬·͋͘͠Γ·ͤΜɻ !14

Slide 15

Slide 15 text

従来のElasticBeanstalk構成と課題 ࢲ͸"84؀ڥΛίʔυԽ͢ΔͨΊʹ5FSSBGPSNΛ޷Μ Ͱར༻͢ΔͷͰ͕͢ɺ5FSSBGPSNͷ&MBTUJD#FBOTUBMLϦ ιʔεʹ͓͍ͯ$VTUPN1MBUGPSNߏஙͷͨΊͷඞਢύϥ ϝʔλͱͳΔ1MBUGPSN"SO͕αϙʔτ͞Ε͍ͯͳ͍͜ͱ ΋ӡ༻্ͷωοΫͱͳΓ·ͨ͠ɻ ࣮ࡍʹ͸5FSSBGPSNͷιʔείʔυʹύονΛ౰ͯͯϏϧυ࣮ͨ͠ߦ όΠφϦΛϦϙδτϦʹίϛοτͯ͠ར༻͢Δͱ͍ͬͨӡ༻Λͱͬͯ ͍·ͨ͠ɻ !15

Slide 16

Slide 16 text

従来のElasticBeanstalk構成と課題 $VTUPN1MBUGPSNߏ੒ͷ՝୊Λ·ͱΊΔͱҎԼͱͳΓ·͢ɻ w ϓϥοτϑΥʔϜͷϏϧυʹ͕͔͔࣌ؒΓ͗͢ΔͨΊɺαʔό ߏ੒ͷมߋ͕ͮ͠Β͍ɻ w (JUMBC$*্ʹڧ͍ݖݶΛ࣋ͬͨ*".ϢʔβͷγʔΫϨοτ ৘ใΛอ࣋͢Δඞཁ͕͋Δɻ w 5FSSBGPSN͕$VTUPN1MBUGPSNʹରԠ͍ͯ͠ͳ͍ɻ &MBTUJD#FBOTUBMLͷ໰୊Ͱ͸ͳ͘ɺ&SMBOHɺ(JUMBCɺ5FSSBGPSN ͱ͍ͬͨ૊Έ߹ΘͤʹΑΔ՝୊Ͱͨ͠ɻ !16

Slide 17

Slide 17 text

AWS Fargate 化後の構成 ΋ͱ΋ͱ&$4ԽΛߦ͏༧ఆͰ͸͋ͬͨͷͰ͕͢ɺ ʹ"84'BSHBUF͕౦ژϦʔδϣϯʹདྷͨͷ Ͱɺ&MBTUJD#FBOTUBML͔Β'BSHBUFͰͷӡ༻ʹҠߦ͠· ͨ͠ɻ &MBTUJD#FBOTUBMLͷ.VMUJ$POUBJOFS%PDLFSϓϥοτ ϑΥʔϜ΍௨ৗͷ&$4ͱ͍ͬͨબ୒ࢶ΋͋ͬͨͷͰ͕͢ɺ ͔ͤͬ͘ͳͷͰ'BSHBUFΛબ୒͠·ͨ͠ɻ !17

Slide 18

Slide 18 text

AWS Fargate 化後の構成 ίϯςφԽͨ͜͠ͱʹΑͬͯɺ࠷ऴతͳ"84'BSHBUFߏ ੒͸ҎԼͷΑ͏ͳׂͱී௨ͷߏ੒ͱͳΓ·ͨ͠ɻ !18

Slide 19

Slide 19 text

AWS Fargate 化後の構成 4Λى఺ͱͨ͠ɺ$PEF1JQFMJOFʹΑΔσϓϩΠύΠϓϥ ΠϯΛߏங͠·ͨ͠ɻ !19

Slide 20

Slide 20 text

AWS Fargate 化後の構成 σϓϩΠύΠϓϥΠϯͷߏ੒ (JUMBCͰ͸ιʔεͷΞʔΧΠϒͷΈΛߦ͍ɺ4ʹΞοϓϩʔυɻ %PDLFSΠϝʔδͷϏϧυ΍&$4΁ͷσϓϩΠ͸$PEF1JQFMJOFͰߦ͏ɻ ϝϦοτɿ (JUMBC͔Β͸4ʹQVU͢Δ͚ͩɺ*".ϙϦγʔ͕ݶఆతɻ (JUMBCͱ"84͕ૄ݁߹ʹͳΓɺ"84ߏ੒ΛίʔυԽ͠΍͍͢ɻ σϝϦοτɿ ؀ڥ͝ͱͷࠩ෼ΛεΫϦϓτͰղܾ͠ͳ͚Ε͹ͳΒͳ͍ɻ !20

Slide 21

Slide 21 text

AWS Fargate 化後の構成 ࠾༻͠ͳ͔ͬͨσϓϩΠύΠϓϥΠϯͷߏ੒Ҋ <ϘπҊ">(JUMBCͰΠϝʔδϏϧυͱ&$3΁ͷϓογϡΛߦ͍ɺ $PEF1JQFMJOFͰ͸&$4΁ͷσϓϩΠͷΈΛߦ͏ɻ ϝϦοτɿ $PEF#VJMEͷ՝͕͔͔ۚΒͳ͍ɻ $PEF1JQFMJOFͷॲཧ͕࣌ؒ୹ॖ͞ΕΔɻ σϝϦοτɿ ؀ڥ͝ͱͷࠩ෼ΛεΫϦϓτͰղܾ͠ͳ͚Ε͹ͳΒͳ͍ɻ !21

Slide 22

Slide 22 text

AWS Fargate 化後の構成 ࠾༻͠ͳ͔ͬͨσϓϩΠύΠϓϥΠϯͷߏ੒Ҋ <ϘπҊ#>(JUMBC͔Β$PEF$PNNJUʹϓογϡͯ͠ىಈɻ ϝϦοτɿ ϩʔϧόοΫ࣌ʹ"84ͷΈͰ׬݁͢Δɻ σϝϦοτɿ (JUMBCͱͷೋॏ؅ཧͰ༰ྔ͕૿େ͢Δɻ $PEF$PNNJU͚ͩͰ͍͍ͷʹɺͳΜ͔ແବɻ !22

Slide 23

Slide 23 text

AWS Fargate 化後の構成 ࠾༻͠ͳ͔ͬͨσϓϩΠύΠϓϥΠϯͷߏ੒Ҋ <ϘπҊ$>(JUMBC͔ΒFDTDMJͰ௚઀&$4ʹσϓϩΠɻ ϝϦοτɿ ύΠϓϥΠϯ͕(JUMBCͷΈͰ׬݁͢Δɻ σϝϦοτɿ (JUMBC্ͷ*".Ϣʔβݖݶ͕ڧݖݶʹͳΔɻ ύΠϓϥΠϯߏ੒ΛίʔυԽͮ͠Β͍ɻ !23

Slide 24

Slide 24 text

構成変更後の改善点 ϓϥοτϑΥʔϜͷϏϧυ࣌ؒ ໿࣌ؒˠ෼ ͷվળ  (JUMBC$*্ͷ*".Ϣʔβݖݶ &MBTUJD#FBOUBML4FSWJDF3PMFˠT1VU0CKFDU 5FSSBGPSNඇରԠ ύον౰ͯˠύον౰ͯͳ͍ !24

Slide 25

Slide 25 text

構成変更後の課題 'BSHBUFԽޙͷ՝୊ w ίϯςφ͸γϯάϧϓϩηεͳͷͰɺ؂ࢹ༻ͷϓϩηεͳͲ ΛͲ͏࣮૷͢Δ͔͸ݕ౼͕ඞཁɻ w CVJMETQFDZNM͕ΞϓϦέʔγϣϯϦϙδτϦ಺ʹ͔͠ஔ͚ ͳ͍ͷͰɺ$PEF#VJME͕ΞϓϦέʔγϣϯϦϙδτϦʹґ ଘ͢Δɻ w "84ར༻ྉ͕গׂ͚ͩ͠ߴʁʢ݄̓தͰͷมߋͷͨΊɺ· ͩྉۚൺֱ͸ग़͍ͯ͠ͳ͍ʣ !25

Slide 26

Slide 26 text

最後に ࠓճͷ"84'BSHBUFߏ੒Λ࣮૷ͨ͠खॱΛฐࣾςοΫϒϩά Ͱެ։͍ͯ͠·͢ɻࢀߟʹͳΕ͹޾͍Ͱ͢ɻ w "84'BSHBUFͰ&MJYJSͷίϯςϯπ഑৴γεςϜΛಈ͔ͯ͠Έͨ ࣮૷ ฤ IUUQTXXXNUFDICMPHFOUSZFMJYJSGBSHBUFJNQM w "84'BSHBUFͷσϓϩΠύΠϓϥΠϯ (JUMBC4$PEF1JQFMJOF Λ ߏஙͯ͠ΈͨIUUQTXXXNUFDICMPHFOUSZFMJYJSGBSHBUFJNQM w "84'BSHBUFͱσϓϩΠύΠϓϥΠϯΛ5FSSBGPSNͰ؅ཧͯ͠Έͨ ʢ$PNJOH4PPOʣ !26