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.7k
某サービスのリニューアルで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
歴代のWeb Speed Hackathonの出題から考えるデグレしないパフォーマンス改善
shuta13
6
570
夢の印税生活 / Life on Royalties
tmtms
0
270
GISエンジニアよ 現場に行け!
sudataka
1
140
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual Localization
takmin
0
360
我々は雰囲気で仕事をしている / How can we do vibe coding as well
naospon
2
180
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
180
信頼できる開発プラットフォームをどう作るか?-Governance as Codeと継続的監視/フィードバックが導くPlatform Engineeringの進め方
yuriemori
1
360
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
6.4k
OCI Bastionサービス
oracle4engineer
PRO
1
100
ウォンテッドリーのアラート設計と Datadog 移行での知見
donkomura
0
260
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
1.6k
意志の力が9割。アニメから学ぶAI時代のこれから。
endohizumi
1
110
Featured
See All Featured
Site-Speed That Sticks
csswizardry
10
780
Navigating Team Friction
lara
188
15k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
BBQ
matthewcrist
89
9.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Code Reviewing Like a Champion
maltzj
525
40k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Building Applications with DynamoDB
mza
96
6.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
820
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ͷืूͷ֓ཁΛ