Slide 1

Slide 1 text

ίϯςφΛSpot FleetͰ ্ཱͪ͛Δͱ͍͏બ୒ࢶ JAWS-UG ίϯςφࢧ෦ #7 @wata727

Slide 2

Slide 2 text

@wata727 • Kazuma Watanabe • Engineer in Actcat, Inc. • AWS Solution Architect • https://twitter.com/wata727_

Slide 3

Slide 3 text

Containers in SideCI

Slide 4

Slide 4 text

Sandbox Containers • ࣮ߦ؀ڥΛίϯςφԽ͙ͯ͢͠ഁغ͢Δ • 5,000 containers / day EPDLFS Ubuntu Host GitHub Clone Comment

Slide 5

Slide 5 text

Sandbox Containers • ࣮ߦ؀ڥΛίϯςφԽ͙ͯ͢͠ഁغ͢Δ • 5,000 containers / day EPDLFS Ubuntu Host GitHub Clone Comment

Slide 6

Slide 6 text

Spot Fleet ?

Slide 7

Slide 7 text

εϙοτΠϯελϯεΛ ຊ൪Ͱ࢖ͬͯΔํʁ ʢ༧૝: 10%ʣ ※௥ه: 5%͘Β͍Ͱͨ͠

Slide 8

Slide 8 text

Amazon Spot Instance • ༧උͷEC2ίϯϐϡʔςΟϯάੑೳʹೖࡳ • ͓͍҆ʂʂʂ • ͱ͋Δc4.2xlargeͷྫ: $0.39 → $0.06 ڻ͖ͷ

Slide 9

Slide 9 text

ͨͩ͠… • ೖࡳՁ֨ΛԼճΔͱམͪΔ • ߴ͘ͳͬͨΒผͷϓʔϧʢAZͱΠϯελϯε λΠϓͷ૊Έ߹ΘͤʣͷεϙοτΠϯελϯ εΛىಈ͢Δ is ೉͍͠ • ͦΜͳʹ؁͍࿩͸ͳ͍͔…

Slide 10

Slide 10 text

Spot Fleet • εϙοτΠϯελϯεͷλʔήοτ༰ྔΛҡ ࣋͢ΔͨΊͷ࢓૊Έ • ௥Ճྉۚແ͠ • ஋ஈ͕ߴಅͨ͠ΒɺผͷϓʔϧͰҰ൪͍҆ε ϙοτΠϯελϯε͕ࣗಈͰ্ཱ͕ͪΔ

Slide 11

Slide 11 text

Spot Fleetͷઓུ • lowest: બ୒ͨ͠தͰৗʹҰ൪͍҆ϓʔϧ͔Β ىಈ͢Δɺ͍͕҆ߴಅ͢Δͱશ෦མͪΔ • diversified: ՄೳͳݶΓϓʔϧΛ෼ࢄͭͭ͠ɺ ͍҆ॱʹىಈ͢Δɺߴ͍ͱ͖΋͋Δ͕ɺ৑௕ Խͱߴಅ࣌ͷϦεΫܰݮ͕ظ଴Ͱ͖Δ

Slide 12

Slide 12 text

͸͡Ί͔ͨ • ެࣜͷνϡʔτϦΞϧ͕͔ͳΓஸೡͳͷͰɺ ͦΕʹैͬͯ࡞ͬͯΈΔͱྑͦ͞͏ • ͦΕ͢Β໘౗ͳਓ΁ • https://github.com/wata727/ tf_aws_ecs_on_spotfleet

Slide 13

Slide 13 text

Demo

Slide 14

Slide 14 text

Spot Fleet in SideCI

Slide 15

Slide 15 text

EC2ΛSpot Fleetʹ͠·ͨ͠

Slide 16

Slide 16 text

Spot Fleetʹ͢ΔͨΊʹ • ಥવΠϯελϯε͕མͪͯ΋ࠔΒͳ͍Α͏ʹ ઃܭ͢ΔʢϦτϥΠͱ͔ʣ • ىಈͨ͠Βɺ͙͢ʹαʔϏεΠϯͰ͖ΔΑ͏ ʹϢʔβσʔλͱ͔ઃఆ͓ͯ͘͠ • େମAutoScalingʹඞཁͳ΋ͷͱಉ͡ɺඞવత ʹো֐ʹڧ͍ઃܭʹͳΔ

Slide 17

Slide 17 text

҆ఆͯ͠Քಇͤ͞ΔͨΊͷTips • diversifiedͱlowestͰ෼͚Δ

Slide 18

Slide 18 text

҆ఆͯ͠Քಇͤ͞ΔͨΊͷTips • Spot Fleet ؒͷೖࡳՁ֨ʹࠩΛ͚ͭΔ • ೖࡳՁ֨Λ௒͑ͨ࣌఺ͰผͷҰ൪͍҆ϓʔϧ ͔ΒΠϯελϯε͕ىಈ͢Δ͜ͱΛར༻͢Δ • ೖࡳՁ͕͚֨҆Ε͹ɺఆظతʹҰ൪͍҆Πϯ ελϯεϓʔϧ΁ͷ࠶ׂΓ౰͕ͯߦΘΕΔ

Slide 19

Slide 19 text

Ձ֨҆ͨ͘͠Β͙͢མͪͳ͍ʁ • EC2ͷ՝ۚ୯Ґ͸1࣌ؒ͝ͱ͔ͩΒɺ୹ִ͍ؒ Ͱ࠶ىಈͨ͠Β༨ܭʹߴ͘ͳΔΜ͡Ό… • ࣮͸ىಈ1࣌ؒҎ಺ʹεϙοτՁ֨ͷߴಅͰڧ ੍λʔϛωʔτ͞Εͨ৔߹͸ର৅֎ʹͳΔ • http://aws.typepad.com/sajp/2016/11/aws- black-belt-online-seminar-amazon-ec2-spot- instances.html

Slide 20

Slide 20 text

Ͱɺ҆ఆͯ͠·͔͢ʁ • ҙ֎ͱ҆ఆͯ͠·͢ • 2िؒ͘Β͍ฏؾͰੜ͖࢒ͬͯΔΠϯελϯε ͞Μ΋͍·ͨ͠

Slide 21

Slide 21 text

ͱ͋Δm4.2xlargeͷ1೔

Slide 22

Slide 22 text

Spot Fleet ӡ༻Ͱ ϋϚͬͨ͜ͱ

Slide 23

Slide 23 text

ಥવͷىಈΤϥʔ • Spot FleetͰΠϯελϯε͕ىಈ͠ͳ͘ͳͬͨ • VPC಺ͰIPΞυϨε͕֬อͰ͖ͯͳ͍…ʁ • ͦΜͳഅࣛͳͱࢥ͍ͭͭ΋VPCΛ֬ೝ

Slide 24

Slide 24 text

ʊਓਓਓਓਓਓਓਓਓਓʊ ʼɹར༻ՄೳͳIP਺: 1ɹʻ ʉY^Y^Y^Y^Y^Y^Y^Yʉ

Slide 25

Slide 25 text

VPC಺ͷIP͕ރׇ • /25Ͱ128͋Δ͸ͣͷIP͕ރׇ • ݪҼ͸େྔʹੜ੒͞Ε͍ͯͨENI (!) • TerraformͰىಈͨ͠Spot Fleet͸ಛఆͷ৚݅ ԼͰ DeleteOnTermination ͕falseͷΠϯελ ϯεΛىಈ͢Δ

Slide 26

Slide 26 text

PR౤͛·ͨ͠ • Ͱ΋Ϛʔδ͞ΕΔ༧ײແ͠

Slide 27

Slide 27 text

Ձ֨ͷҟৗͳཚߴԼ • Ұ࣌ظɺ࢖ͬͯΔϓʔϧͷ஋ஈ͕ݢฒΈߴಅ ͯ͠શવ҆ఆͯ͠ΠϯελϯεΛ֬อͰ͖ͳ ͍࣌ظ͕͋ͬͨ • ΦϯσϚϯυฒྻىಈͯ྇͗͠·ͨ͠ • ถେ౷ྖબͷλΠϛϯά͕ؔ܎͔ͯͨ͠΋…

Slide 28

Slide 28 text

diversifiedͳͷʹภΔ • ͳ͔ͥdiversifiedͰىಈ͢ΔΠϯελϯε͕ಉ ͡ϓʔϧ͔Βىಈ͍ͯ͠Δ • AWSͷํʹฉ͍ͨͱ͜Ζɺ෼ࢄ͢ΔͳΒ͹3 ୆Ҏ্͸ඞཁΒ͍͠ • ఆظతʹΠϯελϯεΛ࡟আͰ͖Ε͹ɺ࠷҆ ͷϓʔϧ͔Βىಈ͢ΔͷͰ෼ࢄ͢Δ͔΋…ʁ

Slide 29

Slide 29 text

Chaos Monkeyͷػӡ

Slide 30

Slide 30 text

ͪͳΈʹ • Chaos Monkey in Lambda΋͋ΔΑ

Slide 31

Slide 31 text

·ͱΊ

Slide 32

Slide 32 text

·ͱΊ • ͓҆͘ͳΔͷ͸΋ͪΖΜɺෆྀͷো֐Λ૝ఆ ͨ͠ઃܭΛ༨ّͳ͘͞ΕΔͷͰɺΞʔΩςΫ νϟ͕ڧਟʹͳΔ • ੲ͸εϙοτΠϯελϯε͸Ұ࣌తͳόον ॲཧ޲͖͕ͩͬͨɺSpot Fleet͕ঢ়گΛม͑ͨ • ࠷ߴͳͷͰΈΜͳ࢖͓͏ʂʂ