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
某サービスのリニューアルでECSを導入したよもやま話
Search
Tomohiro MITSUMUNE
May 22, 2018
Technology
1
2.8k
某サービスのリニューアルでECSを導入したよもやま話
Healthtech Meetup vol.1で発表したスライド
Tomohiro MITSUMUNE
May 22, 2018
Tweet
Share
More Decks by Tomohiro MITSUMUNE
See All by Tomohiro MITSUMUNE
Swift2 New Features
tmitz
0
130
5分でわかるAdequateRecord
tmitz
1
470
Other Decks in Technology
See All in Technology
Javaコミュニティの歩き方 ~参加から貢献まで、すべて教えます~
tabatad
0
130
Amazon ECS デプロイツール ecspresso の開発を支える「正しい抽象化」の探求 / YAPC::Fukuoka 2025
fujiwara3
13
3.8k
Rubyist入門: The Way to The Timeless Way of Programming
snoozer05
PRO
7
510
AIと自動化がもたらす業務効率化の実例: 反社チェック等の調査・業務プロセス自動化
enpipi
0
650
明日から真似してOk!NOT A HOTELで実践している入社手続きの自動化
nkajihara
1
810
やり方は一つだけじゃない、正解だけを目指さず寄り道やその先まで自分流に楽しむ趣味プログラミングの探求 2025-11-15 YAPC::Fukuoka
sugyan
2
830
QAを"自動化する"ことの本質
kshino
1
130
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩パターンとその対策
mizdra
PRO
10
3.6k
Lazy Constant - finalフィールドの遅延初期化
skrb
0
230
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
800
[CV勉強会@関東 ICCV2025] WoTE: End-to-End Driving with Online Trajectory Evaluation via BEV World Model
shinkyoto
0
270
Error.prototype.stack の今と未来
progfay
1
180
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Building an army of robots
kneath
306
46k
Statistics for Hackers
jakevdp
799
220k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
Designing Experiences People Love
moore
142
24k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Gamification - CAS2011
davidbonilla
81
5.5k
Navigating Team Friction
lara
190
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Transcript
αʔϏεͷϦχϡʔΞϧͰ ECSΛಋೖͨ͠Α· Healthtech Meetup vol.1 2018/05/22 גࣜձࣾΤεɾΤϜɾΤεɹޫफ๎
ࣗݾհ • ໊લ: ޫफ ๎ (@t_mitz ) • ձࣾ: גࣜձࣾΤεɾΤϜɾΤε
ϓϩμΫτ։ ൃ෦ ٕज़ਪਐάϧʔϓ • (ϔϧεέΞΆ͍)झຯɿϚϥιϯ ! • ߦಈม༰εςʔδϞσϧҡ࣋ظ
None
גࣜձࣾΤεɾΤϜɾΤε • IT x ҩྍɾհޢɾϔϧε έΞྖҬͷύΠΦχΞ اۀ • ߴྸࣾձΛऔΓר͘ਓʑ ͕ΠΩΠΩͱੜ׆Ͱ͖
ΔΠϯϑϥͷߏங
None
͡ΊΔલʹ
࣮·ͩಋೖऴΘͬͯ·ͤΜ" • հޢαʔϏεͷΞϓϦέʔγϣϯͷվमͱฒ ߦͯ͠ECSͷߏஙΛ͢͢Ί͍ͯΔ • ຊ൪ӡ༻։࢝·Ͱʹ༻ҙ͓͚ͯ͠Α͍Օॴʹ ͍ͭͯ·ͩະணखʢAWSͷίετ੍ͳͲʣ • ࢼߦࡨޡ͍ͯͨ͠ͱ͜ΖΛੜԹ͔͍Ͱ͝ཡ͍ ͚ͨͩΔͱ͍Ͱ͢
ࠓͷΞδΣϯμ • ECSΛ࠾༻ͨ͠ཧ༝ • ߏʹ͍ͭͯ • Α·
ECSΛ࠾༻ͨ͠ཧ༝
࠾༻ཧ༝ • ϩʔΧϧڥʹDockerಋೖࡁΈͩͬͨͷͰຊ൪ ڥͰಉ͡ͷΛಈ͔ͯ͠ݕূ͍ͨ͠ • ࣗલͰίϯςφͷΦʔέετϨʔγϣϯΛඋ͢ Δͷίετ͕ߴ͍ͷͰطଘͷιϦϡʔγϣϯΛ ͍͔ͨͬͨ • ΦϯϓϨ͔ΒύϒϦοΫΫϥυҠߦͷλΠϛ
ϯάͰΞʔΩςΫνϟΛݟͤΔλΠϛϯά
Google Kubernetes Engine ? • GKEͩͱIAM͕AWS΄Ͳࡉ੍͔͘ޚͰ͖ͳ ͍ʢ࣌ʣͷͰཁ݅ΛຬͨͤΒΕͳ͔ͬͨ • ࣾͷผαʔϏε͕ઌͩͬͯAWSҠߦ͠ ͨͱ͍͏എܠ͕͋ΓɺࣾͷφϨοδ͕ஷ
·Γ͍͢Α͏ʹAWSΛબఆ
Kubernetes on AWS ? • kube-aws ͔ kops Λར༻ͯࣗ͠લͰΫϥελ Λߏங͢Δඞཁ͕͋Γॳظֶशίετߴ͍
• ࣗ1ਓͰͬͯͨͷͰͱΓ͋͑ͣαΫοͱಈ ͔ͤΔڥΛ४උ͢Δඞཁ͕͋ͬͨ • ͳΔ͘ϑϧϚωʔδυʹد͔ͤͨͬͨ
ߏ
None
CircleCI • ࠓςετͷ࣮ߦͷΈΛ͍ͬͯ·͢ • গ͠લ·ͰίίͰdocker imageΛbuild & pushͯ͠·ͨ͠ • CIʹ͔͔࣌ؒΓ͗͢ͰPRͷϚʔδʹӨڹ͋Δ
CodePipeline • CodePipelineΛར༻ͯ͠GithubͷϒϥϯνΛ ࢹͯ͠ߋ৽͕͋ΔͱECSσϓϩΠ • CodebuildͰdocker image build ͯ͠ECR push
• CodePipelineͷdeployͰECSσϓϩΠ
Deploy to ECS • Ҏલecs-deployΛ͍͕ͬͯͨɺ CodePipelineΛ͏ํ͕ߏ͕γϯϓϧʹ ͳͬͯϝϯςφϯε͍͢͠ͷͰ࠾༻ • hakoݕ౼ͯ͠Έ্͕ͨهಉ༷ʹ CodePipelineͷํ͕γϯϓϧͩͬͨ
Logging • ී௨ʹ awslogs driver Ͱ CloudWatch Logsʹ ऩूͯ͠·͢ •
ϩάΛݟΔɺͱ͍͏ࣄʹؔͯ͠ࠔ͍ͬͯ· ͤΜʢCloudWatch LogsͰ୳͠ʹ͍͘ͱ͍͏ ͷஔ͍ͱ͍ͯ
ECS • 1αʔϏε1λεΫఆٛ • 1λεΫʹ3ͭͷίϯςφΛఆٛ • h2o • rails •
shoryuken
None
Α·
ఆظతͳόονॲཧ • CloudWatch EventsΛར༻ • ࣌ؒʹΑΔఆظ࣮ߦͰ͖Δ͠ɺAWSίϯ ϙʔωϯτͷΠϕϯτhookͰ͖ͯΜΓ • ECSͷλεΫఆٛΛ༻ҙͯ͠call͢ΕOK
ߏཧ • ߏཧͯ͢CloudFormation • ChangeSets͕ΜΓ • IAMͰͷݖݶཧ͕ڧྗ • awscliʹৄ͘͠ͳΕ·͢
Terraform ʹ͠ͳ͔ͬͨཧ༝ • ϚϧνΫϥυʹ͢Δඞཁੑ͕ࠓͷͱ͜Ζͳ͔ͬͨ • HCLಡΈ͍͕͢ಠࣗDSLͬͯॴ͕ΠϚΠν • ෳਓͰߏཧ͢Δͱ͖tfstateཧΛؾʹͨ͘͠ ͳ͔ͬͨ •
࣮ߦޙʹίέͨͱ͖ͷϦΧόϦ͕cfnΑΓίετߴ
AWS::Cloudformation::Stack • AWSίϯϙʔωϯτ͝ͱʹstackϑΝΠϧΛఆ ٛͯ͠ɺͦΕΒΛϦιʔεͱͯ͠ωετͯ͠ ཧͰ͖Δͭ • খ͍͞୯ҐͰςϯϓϨʔτΛ࡞͓͚ͬͯ Έ߹ΘͤͯߏΛม͑ΒΕΔͷͰΜΓ
ൿಗใ • SSM::Parameter StoreΛར༻ • ΞϓϦʹ͢ڥม͜͜Ͱཧ • Ҏલyaml_vaultΛͬͯΞϓϦέʔγϣϯ ʹ͍͚࣋ͨͤͯͨͲɺͪ͜Βͷํ͕γϯϓϧ •
AWS Secrets Manager͜Ε͔Βݕ౼
AutoScaling • EC2 AutoScaling • CPUReservation • ECS Service AutoScaling
• ·ͩຊ൪ӡ༻Λ։͍࢝ͯ͠ͳ͍ͷͰະઃఆ • EC2ͱECSͷAutoScaling͕ผϨΠϠͰಈ͘ͷͰΠϯε λϯε૿ݮ࣌ʹλεΫͷஔΛߟྀ͠ͳ͍ͱ͍͚ͳ͍
CPUͱReservedMemory • ECSͰΊΜͲ͍͘͞ͷ͕Clusterʹඥ͚ͨEC2ͷϦιʔ εΛTaskDefinitionͰΛܭࢉ͢Δඞཁ͕͋Δ͜ͱ • σϓϩΠ࣌ɺMaxMaximumPercent & MinimumHealthyPercent ߟྀͨ͠ʹ͓͔ͯ͠ͳ ͍ͱࠔΔ͕ීஈϦιʔε͕एׯ༨͍ͬͯΔײʹͳΔ…
• ༻్ʹΑͬͯFargate͕౦ژʹ͘Δͱղܾ
·ͱΊ
·ͱΊ • CloudformationͦΜͳʹѱ͘ͳ͍ͷͰAWSͷ ΈͰด͡ΔߏͳΒ͏ͷΞϦͰ͢ • ECSEC2ϨΠϠͱίϯςφϨΠϠͷཧ͕গ ͠ʹͳΔͷͰ͕ඞཁ • Code*γϦʔζੲΑΓ͜ͳΕ͍ͯΔͷͰ͏ ͱΜΓͳγʔϯ͕ଟΊͰ͢
ΤϯδχΞืूͯ͠·͢ʂ ৄ͘͠Wantedlyͷืूͷ֓ཁΛ