$30 off During Our Annual Pro Sale. View details »

EC2からECSへ移行を始めたお話

 EC2からECSへ移行を始めたお話

JAWS DAYS 2019 での発表資料です。

EC2のみを利用していたサービスを、コンテナ環境(ECS)に移行し始め、運用コスト(サーバ管理の手間など)が軽減されてきました。
移行に合わせてCloudFormation、Pipeline、System Managerなどを選択したことも軽減された要因になっています。

Takayuki Yoshioka

February 23, 2019
Tweet

More Decks by Takayuki Yoshioka

Other Decks in Technology

Transcript

  1. &$͔Β&$4΁ҠߦΛ ࢝Ί͓ͨ࿩ 5BLBZVLJ:PTIJPLB '"3&/%5FDIOPMPHJFTDP -UE+"846(4IJNBOF

  2. ࣗݾ঺հ ໊લ
 ٢Ԭོߦ ॴଐ
 ϑΝʔΤϯυςΫϊϩδʔגࣜձࣾ
 +"846(4IJNBOF
 .BUTVFSC ۀ຿
 ݩϑϩϯτΤϯυΤϯδχΞ
 ݩΞϓϦέʔγϣϯΤϯδχΞ


    ݱΠϯϑϥΤϯδχΞ ޷͖ͳαʔϏε
 $MPVE
  3. ΞδΣϯμ
 ʙɹ&$͔Β&$4΁ҠߦΛ࢝Ί͓ͨ࿩ɹʙ w ܦҢʢഎܠʣ w ݹ͍ߏ੒ w ৽͍͠ߏ੒ w 1PJOU

    w ՝୊ w ·ͱΊ
  4. ܦҢʢഎܠʣ w ࣾ಺αʔϏεɺϗεςΟϯάαʔϏεͷΠϯϑϥΛࠓ෩ ͷΫϥ΢υʹ͍ͨ͠ w ৽͍͠αʔϏεͷج൫Λߟ͑Δ

  5. ݹ͍ߏ੒

  6. AWS Cloud Internet Amazon RDS Proxy Server (EC2) App Server

    (EC2) ϗεςΟϯάαʔϏε αʔϏεఏڙதͷγεςϜͳͷͰৄࡉ΅΍͔͠ؾຯʜ
  7. VPC Internet EC2 Database Rails App ࣾ಺αʔϏε

  8. ৽͍͠ߏ੒

  9. VPC Internet ALB Service Task ECS Task Definition Task container

    Cluster w &$
 ஋ஈ͍҆
 EPDLFSWPMVNFQMVHJO࢖͑Δ w 'BSHBUF
 ϑϧϚωʔδυ
 ϑΝΠϧӬଓԽͰ͖ͳ͍
 &$ʹ͘Β΂஋ஈߴΊ
  10. VPC Internet RDS ALB Service Task Task ECS ( Fargate

    ) CodePipeline Registry Task Definition ϗεςΟϯάαʔϏε 4BB4 Systems Manager CloudFormation ˞༁͋ͬͯݱࡏݕূத S3 ΞϓϦέʔγϣϯʹมߋΛՃ͑ͨ 4ରԠͷQMVHJO࢖༻ "QBSUNFOUʢϚϧνςφϯτʣ࢖༻ ஫ʣϦʔδϣϯ "; 4( $MPVE8BUDI -PHͳͲলུ͍ͯ͠·͢ɻ
  11. VPC Internet RDS ALB Service Task Task ECS ( EC2

    ) CodePipeline Registry Task Definition ࣾ಺αʔϏε EFS Systems Manager CloudFormation Ҡߦத ΞϓϦέʔγϣϯ 3BJMT"QQMJDBUJPO +FOLJOT (JU-BCͳͲ ஫ʣϦʔδϣϯ "; 4( $MPVE8BUDI -PHͳͲলུ͍ͯ͠·͢ɻ
  12. 1PJOU &$4Λબ୒ʢ%PDLFSͰຊ൪؀ڥʣ $MPVE'PSNBUJPOͰ؀ڥߏங 4ZTUFNT.BOBHFSར༻ w &$4 1JQFMJOFͷ૊Έ߹ΘͤͰ։ൃ΋αʔό؅ཧ΋ίετܰݮʢ৺ཧతɾ࣌ؒతʣ w ຊ൪ɺεςʔδϯάɺςετ؀ڥͷߏங͕؆୯ʹͳͬͨ w

    4ZTUFNT.BOBHFSແྉͰศརʂ 3VCZ 3BJMT  ίϯςφ 1JQFMJOFͷಋೖ w 1JQFMJOFศརʂ"84Ͱ׬݁Ͱ͖Δʂʂ
  13. &$4Λબ୒
 ʢίϯςφͰຊ൪؀ڥʣ

  14. Α͔ͬͨ͜ͱ
 ʢ&$4ίϯςφʣ σϓϩΠ࣌ͷ৺ཧతෛ୲ͷܰݮ w #MVF(SFFOEFQMPZNFOU w ͙͢ʹϩʔϧόοΫͰ͖Δ҆৺ײ w ຊ൪؀ڥͱಉ͡؀ڥͰ։ൃ͕Ͱ͖Δ

  15. Α͔ͬͨ͜ͱ
 ʢ&$4ίϯςφʣ αʔό؅ཧͷෛ୲ܰݮ w ৑௕ԽɺߴՄ༻ੑ͕؆୯ w ".*ͷ؅ཧ΋ಛʹෆཁʢ&$ͷ"VUP4DBMFͷΑ͏ͳ w ӡ༻ίετΛܰݮ͍ͨ͠ʢ&$ɾσϓϩΠͷ؅ཧʣ w

    ϛυϧ΢ΣΞͷ؅ཧ͕༰қʹͰ͖Δ
  16. Α͔ͬͨ͜ͱ
 ʢ&$4ίϯςφʣ %PDLFSWPMVNFQMVHJOʹରԠ ʢετϨʔδͷӬଓԽʣ

  17. ͦͷଞͷબ୒ʹ͍ͭͯ &,4Λར༻͠ͳ͔ͬͨཧ༝
 ౦ژϦʔδϣϯɺٕज़໘ʢֶशίετʣɺֹۚ

  18. 1JQFMJOFͷಋೖ

  19. Α͔ͬͨ͜ͱ
 ʢσϓϩΠɾςετͷࣗಈԽʣ  σϓϩΠͷͨΊʹɺ44)ͰαʔόʹೖΒͳͯ͘ྑ͘ͳͬ ͨɻʢ͞ΑͳΒΦϨΦϨσϓϩΠʣ  ςετ࣮ߦ๨Ε๷ࢭ  %PDLFS*NBHFΛ࢖͏ͱ؆୯ͩͬͨ

  20. CodeCommit User Code Pipeline ECR CodeBuild #VJME %FQMPZ TaskDefinition Service

    Cluster EPDLFSDPNQPTF HJUQVTI QSF@CVJMEˠCVJME ˠQPTU@CVJME CVJMETQFDZNM ࣮ߦ 4PVSDF Jenkins
 Test ௨஌
  21. $MPVE'PSNBUJPOͰ
 ؀ڥߏங

  22. "84ϦιʔεΛࣗಈͰߏஙͰ͖ΔαʔϏε ςϯϓϨʔτ ઃఆϑΝΠϧ ελοΫ ςϯϓϨʔτΛݩʹ࡞੒͞ΕΔϦιʔεΛ؅ཧ͢Δ୯Ґ $MPVE'PSNBUJPO

  23. ໨తɾཧ༝ w खॱॻͱ͔ॻ͖ͨ͘ͳ͍ w BXTDMJ BOTJCMF૊Έ߹ΘͤͪΐͬͱπϥΠ w ॳظߏங͸͜ΕͰશͯͰ͖Δʢ%PDLFSͷԸܙʣ w ؀ڥͷ࠶ݱੑͷ֬อʢผΞΧ΢ϯτͰ΋ʣ

    w :".-Ͱॻ͚ΔΑ͏ʹͳͬͯͨ
  24. ஫ҙ఺ wελοΫͷωετʹ͍ͭͯ wςϯϓϨʔτͷ࠶ར༻ w$'OҎ֎ʢ(6* $-*ͳͲखಈʣͰߋ৽͢ΔͱյΕΔ͔΋ wֶशίετߴΊ

  25. CloudFormation 71$ &$4 4FSWJDF ʜ 3%4 71$ 4VCOFU 4( FUDʜ

    "-# SVMF UBSHFU MJTUFOFS $MVTUFS  "VUP4DBMF &'4 *". 3PMF 4( FUDʜ %/4 5BTL%FpOJUJPO 4FSWJDF "VUP4DBMF  5BSHFU 3VMF 3PMF *".  3%4 4VCOFU 4( ओʹ௥Ճɾมߋ͢ΔελοΫ
  26. 4ZTUFNT.BOBHFSͷ ར༻

  27. ໨తɾཧ༝ w ύεϫʔυ౳ͷ؅ཧ w 44)ϩάΠϯ

  28. 3VCZ 3BJMT  ίϯςφ w ίϯςφͷىಈ͸ૣ͍͚Ͳɺ3BJMTͷىಈ͸஗͍ w ىಈ࣌ʢFOUSZQPJOUTIʣͷॲཧΛͳΔ΂ܰ͘͘ w CVOEMFJOTUBMM

    NJHSBUJPOͷλΠϛϯά w ϝϞϦʔͷফඅྔ w 3BJMTϚϧνςφϯτԽ
  29. ՝୊  3BJMTΞϓϦͷσϓϩΠ  ࣾ಺Ͱͷ%PDLFSͷ෍ڭ׆ಈ  ؀ڥม਺૿΍͗͢͠ʹ஫ҙ  ϩΪϯά 

    ηΩϡϦςΟʔ
  30. ·ͱΊ

  31. 1PJOU &$4Λબ୒ʢ%PDLFSͰຊ൪؀ڥʣ $MPVE'PSNBUJPOͰ؀ڥߏங 4ZTUFNT.BOBHFSͰӡ༻؅ཧ w &$4 1JQFMJOFͷ૊Έ߹ΘͤͰ։ൃ΋αʔό؅ཧ΋ίετܰݮʢ৺ཧతɾ࣌ؒతʣ w ຊ൪ɺεςʔδϯάɺςετ؀ڥͷߏங͕؆୯ʹͳͬͨ w

    4ZTUFNT.BOBHFSແྉͰศརʂ 3VCZ 3BJMT  ίϯςφ 1JQFMJOFͷಋೖ w 1JQFMJOFศརʂ"84Ͱ׬݁Ͱ͖Δʂʂ %PDLFSʢίϯςφʣͷԸܙ w ʜͦ΋ͦ΋ίϯςφʹ޲͍ͯͳ͍ΞϓϦʢγεςϜʣ΋͋Δɻ
  32. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ