Slide 1

Slide 1 text

AWS ECS

Slide 2

Slide 2 text

ࣗݾ঺հ • ໦ଜ༐ଠ • SREΤϯδχΞ • ϓϩάϥϛϯάݴޠ • Java, node, PHP, Ruby, Go • ීஈ͸AWSΛར༻ͨ͠γεςϜͷӡ༻ɺӡ༻վળͱ͔΍ͬͯ·͢ɻ • ࠷ۙ͸EnvoyΛ͍ͬͯ͡·ͨ͠ɻ • AWS Certificated Solutions Architect • AWS Certificated DepOps Engineer

Slide 3

Slide 3 text

Agenda • Containerٕज़ʹ͍ͭͯͷ͓͞Β͍ • ECSʹ͍ͭͯ • ECSͷ֓೦ʹ͍ͭͯ

Slide 4

Slide 4 text

ContainerͬͯԿʁ

Slide 5

Slide 5 text

• ߓʹ͋ΔΞϨ • Container ʹ DockerͰ͸ͳ͍ɻ • Docker͸ίϯςφܕԾ૝Խͷ࣮૷ͷҰͭ • Docker͸ΧʔωϧͱcgroupsͳͲͷٕज़Λ૊ Έ߹ΘͤͯɺΞϓϦέʔγϣϯͱϥϯλΠϜ ࣮ߦ؀ڥΛ·ͱΊͯ෼཭͢Δٕज़ • ίϯςφ͸ϓϩηε ͬ͘͟Γͱͨ͠ղઆ

Slide 6

Slide 6 text

• ΞϓϦέʔγϣϯͱ࣮ߦ؀ڥΛҰͭʹ·ͱΊ Δ͜ͱͰ։ൃͱӡ༻νʔϜ͕εϜʔζʹӡ༻ ग़དྷΔ • e.g. ϩʔΧϧͱຊ൪Ͱಉ͡Dockerfile࢖͑ Δ!ɺΠϯϑϥνʔϜ͕Dockerfile࡞ͬͯɺ ։ൃνʔϜʹ౉ͤΔʂٯ΋·ͨવΓ Կ͕ྑ͍ͷʁ

Slide 7

Slide 7 text

• Elastic Container Serviceͷུ • AWS͕ఏڙ͢ΔίϯςφΦʔέετϨʔ γϣϯπʔϧ • e.g. kubernates, docker swarmͱ͔ • Docker͚ͩͰ͸ग़དྷͳ͍ίϯςφͷ Scaling, ഑ஔ, ؅ཧΛߦ͏αʔϏε ECSʹ͍ͭͯ

Slide 8

Slide 8 text

ECS overview EC2 Launch type

Slide 9

Slide 9 text

• ECR • Elastic Container RegistryͷུɺAWS্ͰϚωʔδυʹ ӡ༻͞ΕΔɺDocker imageΛอଘ͢ΔRegistry • Cluster • Container͕࣮ࡍʹ࣮ߦ͞ΕΔEC2Πϯελϯεͷू߹ ମ • Service • Task definitionΛ΋ͱʹͯ͠࡞੒͞ΕͨTaskΛ͍ͭ͘ى ಈ͢Δ͔ɺͲͷΑ͏ʹ഑ஔ͢Δͷ͔ɺͲͷϩʔυόϥϯ αʔܦ༝Ͱ௨৴͢Δ͔ͷઃఆɻTask definitionͱ1:1Ͱ ઃఆ͢Δ ༻ޠ1

Slide 10

Slide 10 text

• Task definition • Containerͷ࣮ߦ͢Δ਽ܗ • Task • Task definitionΛ΋ͱʹͯ͠࡞੒͞Εͨ Containerͷ࣮ଶ ༻ޠ2

Slide 11

Slide 11 text

Task Definitionʹ͍ͭͯ • ECS্Ͱ࣮ߦ͢ΔContainerͷઃఆ • EC2ͱFargateλΠϓ͕͋Δ • ࣮ߦͤ͞Δcontainerͷimage,ར༻͢Δ؀ ڥม਺ɺportͷઃఆͳͲΛߦ͏

Slide 12

Slide 12 text

Serviceʹ͍ͭͯ • ECS্Ͱ࣮ߦ͢ΔTaskʹ͍ͭͯͷ·ͱΊΔઃఆ • Containerͷಈ͔͢਺ɺInstance΁ͷTask഑ஔ ઓུ • Load balancer΁ͷport mappingͳͲΛ୲͏ɻ

Slide 13

Slide 13 text

ECS agent • EC2্Ͱಈ͘ɺECSͷcontainerͷ਺΍ঢ়ଶΛ೺Ѳ͢Δ agent • ͜ͷagentࣗମ΋dockerͰEC2ͷதͰಈ͍͍ͯΔ • EC2 typeͷ৔߹ɺ͜ͷECS agentΛEC2ىಈ࣌ʹಈ͘ Α͏ʹͯ͠Clusterʹొ࿥͢Δ

Slide 14

Slide 14 text

Ϣʔεέʔε Rails appΛECSͰಈ͔͢৔߹ • Rails appͷimageΛઃఆͨ͠Task definitionΛ࡞੒ • Load balancerΛ͚ͭͨServiceΛ࡞੒͢Δ

Slide 15

Slide 15 text

Sample

Slide 16

Slide 16 text

ղઆ • Route53Λར༻ͯ͠domainΛઃఆ • ௨৴͸ALBܦ༝ͰContainerʹૹΔ • Application͸ContainerͰ࡞੒ɺECSͰε έʔϦϯάͷ؅ཧ

Slide 17

Slide 17 text

Fargate launch typeʹ͍ͭͯ • ECSʹ͸̎ͭͷlaunch type EC2 launch typeͱ Fargate launch type͕͋Δɻ • EC2 launch type͸ContainerΛಈ͔ͨ͢ΊͷEC2Λ؅ ཧ͢Δඞཁ͕͋Δ͕ɺFargate launch type͸ಈ͔ͨ͢ ΊͷEC2ͷresourceΛAWSଆͰ؅ཧͯ͘͠ΕΔɻ • ؅ཧίετ͕ݮΔ • ݸਓతʹ͸·ͩಋೖͨ͜͠ͱͳ͍ɻ

Slide 18

Slide 18 text

ECS overview Fargate Launch type

Slide 19

Slide 19 text

͓ΘΓʹ • ECS͸cluster্ͰserviceͰ؅ཧ͞Εͨ container͔Β੒ΔtaskΛtask definitionΛ΋ͱ ʹ࡞੒͠ɺӡ༻͢Δػೳ • ContainerΛຊ൪ӡ༻͢Δ͜ͱ͸։ൃɺӡ༻త ͳϦϨʔγϣϯʹ΋໾ʹཱͭ

Slide 20

Slide 20 text

༨ஊ

Slide 21

Slide 21 text

Modern Web appΛߟ͑Δͱ ͖ʹศརͳϖʔδ

Slide 22

Slide 22 text

Twelve-factor-app • https://12factor.net/ • ݩherokuͷ Adam Wiggins͕2011೥ʹॻ͍ ͨmodernͳSaaSΛ࡞ΔͨΊͷํ๏࿦ • ࣮࣭ContainerΛར༻͢ΔappΛ࡞੒͢Δͱ ͖ͷํ๏࿦ͷstandardͷҰͭ

Slide 23

Slide 23 text

Cloud Native landscape • https://landscape.cncf.io/ • CNCF(Cloud Native Computing Foundation) ͕ఏ͍ࣔͯ͠ΔɺCloud NativeͳΞϓϦέʔ γϣϯΛનΊ্͍ͯ͘ͰͷϩʔυϚοϓ

Slide 24

Slide 24 text

AWS ެࣜͷࢿྉ • ެࣜͷdoc • re:Invent΍AWS Summit, Black beltͷεϥΠ υ͸slideshareɺಈը͸youtubeʹଟ্͘ ͕͍ͬͯ·͢ɻ • ࠔͬͨΒެ͕ࣜҰ൪!

Slide 25

Slide 25 text

ྑ͍ Container lifeΛ!