Slide 1

Slide 1 text

&$4ͷσϓϩΠπʔϧΛࢼ͍ͯ͠Δ࿩ 2016/09/21 JAWS-UG ίϯςφࢧ෦ #6 #jawsug_ct @yukiyan_w

Slide 2

Slide 2 text

ʙ4*FS ʙGFFEGPSDF*OD "QQMJDBUJPO&OHJOFFS όονɾ$47ɾ3VCZΛओʹ৮Δɻ Ώ͖΍Μ @yukiyan_w http://yukiyan.hatenablog.jp/ ɾ͜ͳ͍ͩECSͷ࿩Λ͠·ͨ͠ "Replace a batch application to ECS // Speaker Deck":http://bit.ly/2d2hfAL

Slide 3

Slide 3 text

౰εϥΠυͰҾ༻ͨ͠ࢿྉͷϦϯΫΛ ҎԼʹશͯஔ͖·ͨ͠ IUUQTHJUJPWJ))*

Slide 4

Slide 4 text

&$4ͷσϓϩΠπʔϧ͍ͬͺ͍͋Δ

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

๻ͷνʔϜ͸ʜ

Slide 7

Slide 7 text

ΦϨΦϨ3BLFUBTLΛ࢖͍ͬͯΔ

Slide 8

Slide 8 text

ɾ࡞ऀ͔͠ղಡͰ͖ͳ͍໰୊ ϝϯς͖͍ͭ ɾಾͷZNM໰୊ EPDLFSDPNQPTFMJLFʹॻ͖͍ͨ

Slide 9

Slide 9 text

&$4ͷσϓϩΠπʔϧΛௐࠪͯ͠ΈΔ

Slide 10

Slide 10 text

ɾ ɾaws official ɾcompose likeͳymlͰtaskΛొ࿥Ͱ͖Δ ɾservice΋ొ࿥Ͱ͖Δ͕ELBͱͷඥ෇͚͸Ͱ͖ͳ͍ ɾ"Create services with a load balancer · Issue #21 · aws/amazon-ecs-cli":https://git.io/viSkK

Slide 11

Slide 11 text

ɾ ɾcompose likeͳymlͰtaskΛొ࿥Ͱ͖Δ ɾservice΋ొ࿥Մೳ(CLBͱͷඥ෇͚΋ɻALB͸·ͩɻ) ɾσϓϩΠ͸ECSΫϥελΛ੾Γସ͑ΔλΠϓ(bluegreen) ɾ"EC2 Container Service(ECS)Λ؅ཧͯ͠ɺBlue-Green DeploymentΛ࣮ݱ͢ΔπʔϧΛॻ͍ͨ - tehepero note(ɾ Т<)”:http://bit.ly/2d1Mqfq ɾ"Amazon EC2 Container Service(ECS)ͱٔΕͨ1೥ͱίϯςφܳਓͷདྷ೥ʹ͍ͭͯ - tehepero note(ɾТ<)”:http:// bit.ly/2cOsGZi ɾ"Flexible Blue Green DeploymentͷεεϝʛαΠόʔΤʔδΣϯτ ެࣜΤϯδχΞϒϩά":http://amba.to/2ddJx7F

Slide 12

Slide 12 text

ɾShell ɾserviceͷσϓϩΠʹಛԽ ɾDockerfile͕͋ΔͷͰίϯςφܦ༝Ͱ࣮ߦՄೳ ɾ"AWS Application Load Balancer + Amazon ECS ͰDockerͷϗοτσϓϩΠ؀ڥΛߏஙͨ͠ - Glide Note":http://bit.ly/2d1QAUn

Slide 13

Slide 13 text

ɾ"ECS Λར༻ͨ͠ΦϑϥΠϯδϣϒͷ࣮ߦ؀ڥ - ΫοΫύου։ൃऀϒϩά”:http://bit.ly/2d1TfgR ɾ"Scalable Job Queue System Built with Docker // Speaker Deck”:http://bit.ly/2d1TsAI ɾ"hako͕ALBʹରԠͨ͠ͷͰ࢖ͬͯΈͨ - so what”:http://bit.ly/2d1TSao ɾ"hakoͷoneshotΛ࢖͏ - so what":http://bit.ly/2d1Tmcf ɾ ɾtask͕ొ࿥Մೳ(ͨͩ͠compose likeͳymlͰ͸ͳ͍) ɾservice͕ొ࿥Մೳ(CLB΍ALBͱͷඥ෇͚΋Մೳ)

Slide 14

Slide 14 text

ૉৼΓͯ͠ΈΔ

Slide 15

Slide 15 text

!͓࿳ͼ! IBLPʹ͍ͭͯ͸࢖͍ํͷ೺Ѳ͕ؒʹ߹Θͳ͔ͬͨɻ ίʔυಡΈ్தʜ

Slide 16

Slide 16 text

ECS Cluster EC2 ECS Cluster Internal CLB EC2 EC2 ALB 24224 24224 Dynamic Port 80 log-container.fluentd:24224 /index.html ૉৼΓͷߏ੒ public subnet private subnet

Slide 17

Slide 17 text

&$4Ͱͳʹ͔ͭ͘Δͱ͖ͷجຊతͳྲྀΕ

Slide 18

Slide 18 text

-BVODIDPOpH "VUPTDBMJOHHSPVQ &-# 5BTLEFpOJUJPO 5BTLTFSWJDF ;FSP%PXOUJNF%FQMPZNFOUT

Slide 19

Slide 19 text

֤ϑΣʔζͰFDTDMJ FDTGPSNBUJPO FDTEFQMPZΛ ࢖ͬͯΈΔ

Slide 20

Slide 20 text

-BVODIDPOpH "VUPTDBMJOHHSPVQ &-# 5BTLEFpOJUJPO 5BTLTFSWJDF ;FSP%PXOUJNF%FQMPZNFOUT

Slide 21

Slide 21 text

ecs-cli up \ --verbose \ --keypair "yukiyan" \ --capability-iam \ --size 1 \ --vpc "vpc-1234" \ --subnets "subnet-1234","subnet-1234" \ --security-group "sg-1234" \ --image-id "ami-12345" \ --instance-type "t2.micro"

Slide 22

Slide 22 text

FDTDMJVQʹΑͬͯ$MPVE'PSNBUJPO͕ؤுΔਤ

Slide 23

Slide 23 text

-BVODIDPOpH "VUPTDBMJOHHSPVQ &-# 5BTLEFpOJUJPO 5BTLTFSWJDF ;FSP%PXOUJNF%FQMPZNFOUT

Slide 24

Slide 24 text

&-#ͷ࡞੒͸ɺ ɾBXTίϚϯυ ɾ5FSSBGPSN ౳Λ࢖ͬͯؤுΔ IBLPͩͱ࡞ͬͯ͘ΕΔؾ͕͢Δ ཁௐࠪ ɻ ɾ"hako/hello-lb-v2.yml · eagletmt/hako":https://git.io/viS1Z

Slide 25

Slide 25 text

-BVODIDPOpH "VUPTDBMJOHHSPVQ &-# 5BTLEFpOJUJPO 5BTLTFSWJDF ;FSP%PXOUJNF%FQMPZNFOUT

Slide 26

Slide 26 text

UBTLBQQZNM

Slide 27

Slide 27 text

UBTLqVFOUEZNM

Slide 28

Slide 28 text

$ ecs-formation task plan ← Dry run $ ecs-formation task apply

Slide 29

Slide 29 text

-BVODIDPOpH "VUPTDBMJOHHSPVQ &-# 5BTLEFpOJUJPO 5BTLTFSWJDF ;FSP%PXOUJNF%FQMPZNFOUT

Slide 30

Slide 30 text

qVFOUETFSWJDFͷ্ཱͪ͛ͱJOUFSOBM$-#ͱͷؔ࿈෇͚

Slide 31

Slide 31 text

TFSWJDFDMVTUFSOBNFZNM

Slide 32

Slide 32 text

$ ecs-formation service plan ← Dry run $ ecs-formation service apply

Slide 33

Slide 33 text

BQQTFSWJDFͷ্ཱͪ͛ͱ"-#ͱͷؔ࿈෇͚

Slide 34

Slide 34 text

KTPOॻ͍ͯɺBXTίϚϯυͰؤுΔ FDTGPSNBUJPO͸"-#ະରԠ͕ͩɺ ผϒϥϯνͰ։ൃͯ͠Δงғؾ͸͋ͬͨɻ IBLPͩͱରԠࡁΈ ཁௐࠪ ɻ ɾ"BlueGreen Deployment for ALB by stormcat24 · Pull Request #98 · stormcat24/ecs- formation”:https://git.io/viSXF ɾ"hako͕ALBʹରԠͨ͠ͷͰ࢖ͬͯΈͨ - so what”:http://bit.ly/2d1TSao BQQTFSWJDFͷ্ཱͪ͛ͱ"-#ͱͷؔ࿈෇͚

Slide 35

Slide 35 text

-BVODIDPOpH "VUPTDBMJOHHSPVQ &-# 5BTLEFpOJUJPO 5BTLTFSWJDF ;FSP%PXOUJNF%FQMPZNFOUT

Slide 36

Slide 36 text

ecs-deploy \ -c yukiyan-cluster \ -n app \ -i yukiyan/app:latest \ -D 1 \ # desired count -m 100 \ # minumumHealthyPercent -M 200 # maximumPercent

Slide 37

Slide 37 text

ॴײ

Slide 38

Slide 38 text

ɾFDTDMJVQͷμΠφϛοΫ͞ʹڻ͘ ɾFDTGPSNBUJPO͸QMBOͱ͔͋Δ͠ɺ৭͕ͭ͘͠ɺ݁ߏ޷͖ ŠūŶŜƃ ɾFDTEFQMPZ͸σϓϩΠ׬ྃ·Ͱ଴ͬͯ͘Εͯྑ͍ ɾ࢖͏πʔϧ͸̍ͭʹߜΓ͍ͨɻࣗ෼Ͱ࡞Δ͔13౤͛Δ͔ʜ ɾIBLPௐ΂ΔͧʂϦϑΝϨϯε ৄ͍͠3&"%.& ཉ͍͠ʜ ɾશͯ044ͳͷͰɺཉ͍͠ػೳ͸13Λग़͠·͠ΐ͏ ࣗռ

Slide 39

Slide 39 text

ɾFDTDMJVQͷμΠφϛοΫ͞ʹڻ͘ ɾFDTGPSNBUJPO͸QMBOͱ͔͋Δ͠ɺ৭͕ͭ͘͠ɺ݁ߏ޷͖ ŠūŶŜƃ ɾFDTEFQMPZ͸σϓϩΠ׬ྃ·Ͱ଴ͬͯ͘Εͯྑ͍ ɾ࢖͏πʔϧ͸̍ͭʹߜΓ͍ͨɻࣗ෼Ͱ࡞Δ͔13౤͛Δ͔ʜ ɾIBLPௐ΂ΔͧʂϦϑΝϨϯε ৄ͍͠3&"%.& ཉ͍͠ʜ ɾશͯ044ͳͷͰɺཉ͍͠ػೳ͸13Λग़͠·͠ΐ͏ ࣗռ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠