Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コンテナをSpot Fleetで起動するという選択肢
Search
Kazuma Watanabe
December 14, 2016
Technology
2
1.1k
コンテナをSpot Fleetで起動するという選択肢
JAWS-UG コンテナ支部 #7
Kazuma Watanabe
December 14, 2016
Tweet
Share
More Decks by Kazuma Watanabe
See All by Kazuma Watanabe
SmartHRにおけるBiTemporal Data Modelの実践のその後 / After the practice of BiTemporal Data Model in SmartHR
wata727
1
2.9k
PHPを検査するPHPを書く / Write PHP inspection by PHP
wata727
1
2.2k
快適なコードレビューを目指して / For a comfortable code review
wata727
1
650
現実世界でのコンテナの運び方
wata727
3
1.2k
Lintの付き合い方とPahoutのご紹介
wata727
0
160
Querlyで始めるコードレビューの自動化
wata727
2
450
エンジニア向けSaaSを支えるInfrastructure as Code
wata727
5
2.4k
SideCIのインフラ構築を自動化した話
wata727
1
2.2k
Other Decks in Technology
See All in Technology
Turn Your Community into a Fundraising Catalyst for Black Philanthropy Month
auctria
PRO
0
140
スプリントゴール未達症候群に送る処方箋
kakehashi
PRO
1
230
DatabricksのOLTPデータベース『Lakebase』に詳しくなろう!
inoutk
0
110
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
220
「AI駆動開発」のボトルネック『言語化』を効率化するには
taniiicom
1
150
20150719_Amazon Nova Canvas Virtual try-onアプリ 作成裏話
riz3f7
0
140
なぜAI時代に 「イベント」を中心に考えるのか? / Why focus on "events" in the age of AI?
ytake
2
620
MCPに潜むセキュリティリスクを考えてみる
milix_m
1
750
Microsoft Defender XDRで疲弊しないためのインシデント対応
sophiakunii
3
400
Amazon CloudWatchのメトリクスインターバルについて / Metrics interval matters
ymotongpoo
3
220
Talk to Someone At Delta Airlines™️ USA Contact Numbers
travelcarecenter
0
170
分散トレーシングによる コネクティッドカーのデータ処理見える化の試み
thatsdone
0
240
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Typedesign – Prime Four
hannesfritz
42
2.7k
Thoughts on Productivity
jonyablonski
69
4.7k
What's in a price? How to price your products and services
michaelherold
246
12k
How to Ace a Technical Interview
jacobian
278
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
BBQ
matthewcrist
89
9.7k
A better future with KSS
kneath
238
17k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Transcript
ίϯςφΛSpot FleetͰ ্ཱͪ͛Δͱ͍͏બࢶ JAWS-UG ίϯςφࢧ෦ #7 @wata727
@wata727 • Kazuma Watanabe • Engineer in Actcat, Inc. •
AWS Solution Architect • https://twitter.com/wata727_
Containers in SideCI
Sandbox Containers • ࣮ߦڥΛίϯςφԽ͙ͯ͢͠ഁغ͢Δ • 5,000 containers / day EPDLFS
Ubuntu Host GitHub Clone Comment
Sandbox Containers • ࣮ߦڥΛίϯςφԽ͙ͯ͢͠ഁغ͢Δ • 5,000 containers / day EPDLFS
Ubuntu Host GitHub Clone Comment
Spot Fleet ?
εϙοτΠϯελϯεΛ ຊ൪ͰͬͯΔํʁ ʢ༧: 10%ʣ ※ه: 5%͘Β͍Ͱͨ͠
Amazon Spot Instance • ༧උͷEC2ίϯϐϡʔςΟϯάੑೳʹೖࡳ • ͓͍҆ʂʂʂ • ͱ͋Δc4.2xlargeͷྫ: $0.39
→ $0.06 ڻ͖ͷ
ͨͩ͠… • ೖࡳՁ֨ΛԼճΔͱམͪΔ • ߴ͘ͳͬͨΒผͷϓʔϧʢAZͱΠϯελϯε λΠϓͷΈ߹ΘͤʣͷεϙοτΠϯελϯ εΛىಈ͢Δ is ͍͠ •
ͦΜͳʹ͍ͳ͍͔…
Spot Fleet • εϙοτΠϯελϯεͷλʔήοτ༰ྔΛҡ ࣋͢ΔͨΊͷΈ • Ճྉۚແ͠ • ஈ͕ߴಅͨ͠ΒɺผͷϓʔϧͰҰ൪͍҆ε ϙοτΠϯελϯε͕ࣗಈͰ্ཱ͕ͪΔ
Spot Fleetͷઓུ • lowest: બͨ͠தͰৗʹҰ൪͍҆ϓʔϧ͔Β ىಈ͢Δɺ͍͕҆ߴಅ͢Δͱશ෦མͪΔ • diversified: ՄೳͳݶΓϓʔϧΛࢄͭͭ͠ɺ ͍҆ॱʹىಈ͢Δɺߴ͍ͱ͖͋Δ͕ɺ
Խͱߴಅ࣌ͷϦεΫܰݮ͕ظͰ͖Δ
͡Ί͔ͨ • ެࣜͷνϡʔτϦΞϧ͕͔ͳΓஸೡͳͷͰɺ ͦΕʹैͬͯ࡞ͬͯΈΔͱྑͦ͞͏ • ͦΕ͢Β໘ͳਓ • https://github.com/wata727/ tf_aws_ecs_on_spotfleet
Demo
Spot Fleet in SideCI
EC2ΛSpot Fleetʹ͠·ͨ͠
Spot Fleetʹ͢ΔͨΊʹ • ಥવΠϯελϯε͕མͪͯࠔΒͳ͍Α͏ʹ ઃܭ͢ΔʢϦτϥΠͱ͔ʣ • ىಈͨ͠Βɺ͙͢ʹαʔϏεΠϯͰ͖ΔΑ͏ ʹϢʔβσʔλͱ͔ઃఆ͓ͯ͘͠ • େମAutoScalingʹඞཁͳͷͱಉ͡ɺඞવత
ʹোʹڧ͍ઃܭʹͳΔ
҆ఆͯ͠Քಇͤ͞ΔͨΊͷTips • diversifiedͱlowestͰ͚Δ
҆ఆͯ͠Քಇͤ͞ΔͨΊͷTips • Spot Fleet ؒͷೖࡳՁ֨ʹࠩΛ͚ͭΔ • ೖࡳՁ֨Λ͑ͨ࣌ͰผͷҰ൪͍҆ϓʔϧ ͔ΒΠϯελϯε͕ىಈ͢Δ͜ͱΛར༻͢Δ • ೖࡳՁ͕͚֨҆ΕɺఆظతʹҰ൪͍҆Πϯ
ελϯεϓʔϧͷ࠶ׂΓ͕ͯߦΘΕΔ
Ձ֨҆ͨ͘͠Β͙͢མͪͳ͍ʁ • EC2ͷ՝ۚ୯Ґ1࣌ؒ͝ͱ͔ͩΒɺִ͍ؒ Ͱ࠶ىಈͨ͠Β༨ܭʹߴ͘ͳΔΜ͡Ό… • ࣮ىಈ1࣌ؒҎʹεϙοτՁ֨ͷߴಅͰڧ ੍λʔϛωʔτ͞Εͨ߹ର֎ʹͳΔ • http://aws.typepad.com/sajp/2016/11/aws- black-belt-online-seminar-amazon-ec2-spot-
instances.html
Ͱɺ҆ఆͯ͠·͔͢ʁ • ҙ֎ͱ҆ఆͯ͠·͢ • 2िؒ͘Β͍ฏؾͰੜ͖ͬͯΔΠϯελϯε ͞Μ͍·ͨ͠
ͱ͋Δm4.2xlargeͷ1
Spot Fleet ӡ༻Ͱ ϋϚͬͨ͜ͱ
ಥવͷىಈΤϥʔ • Spot FleetͰΠϯελϯε͕ىಈ͠ͳ͘ͳͬͨ • VPCͰIPΞυϨε͕֬อͰ͖ͯͳ͍…ʁ • ͦΜͳഅࣛͳͱࢥ͍ͭͭVPCΛ֬ೝ
ʊਓਓਓਓਓਓਓਓਓਓʊ ʼɹར༻ՄೳͳIP: 1ɹʻ ʉY^Y^Y^Y^Y^Y^Y^Yʉ
VPCͷIP͕ރׇ • /25Ͱ128͋ΔͣͷIP͕ރׇ • ݪҼେྔʹੜ͞Ε͍ͯͨENI (!) • TerraformͰىಈͨ͠Spot Fleetಛఆͷ݅ ԼͰ
DeleteOnTermination ͕falseͷΠϯελ ϯεΛىಈ͢Δ
PR͛·ͨ͠ • ͰϚʔδ͞ΕΔ༧ײແ͠
Ձ֨ͷҟৗͳཚߴԼ • Ұ࣌ظɺͬͯΔϓʔϧͷஈ͕ݢฒΈߴಅ ͯ͠શવ҆ఆͯ͠ΠϯελϯεΛ֬อͰ͖ͳ ͍࣌ظ͕͋ͬͨ • ΦϯσϚϯυฒྻىಈͯ྇͗͠·ͨ͠ • ถେ౷ྖબͷλΠϛϯά͕͔ؔͯͨ͠…
diversifiedͳͷʹภΔ • ͳ͔ͥdiversifiedͰىಈ͢ΔΠϯελϯε͕ಉ ͡ϓʔϧ͔Βىಈ͍ͯ͠Δ • AWSͷํʹฉ͍ͨͱ͜Ζɺࢄ͢ΔͳΒ3 Ҏ্ඞཁΒ͍͠ • ఆظతʹΠϯελϯεΛআͰ͖Εɺ࠷҆ ͷϓʔϧ͔Βىಈ͢ΔͷͰࢄ͢Δ͔…ʁ
Chaos Monkeyͷػӡ
ͪͳΈʹ • Chaos Monkey in Lambda͋ΔΑ
·ͱΊ
·ͱΊ • ͓҆͘ͳΔͷͪΖΜɺෆྀͷোΛఆ ͨ͠ઃܭΛ༨ّͳ͘͞ΕΔͷͰɺΞʔΩςΫ νϟ͕ڧਟʹͳΔ • ੲεϙοτΠϯελϯεҰ࣌తͳόον ॲཧ͖͕ͩͬͨɺSpot Fleet͕ঢ়گΛม͑ͨ •
࠷ߴͳͷͰΈΜͳ͓͏ʂʂ