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
AWSが分からん人に送るFargateのススメ
Search
Harutaka TAKEUCHI
July 22, 2019
Programming
1.9k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSが分からん人に送るFargateのススメ
Harutaka TAKEUCHI
July 22, 2019
Other Decks in Programming
See All in Programming
Swiftのレキシカルスコープ管理
kntkymt
0
220
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
3.9k
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
Lessons from Spec-Driven Development
simas
PRO
0
150
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
210
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
320
Modding RubyKaigi for Myself
yui_knk
0
910
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
480
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
690
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
170
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
460
A2UI という光を覗いてみる
satohjohn
1
120
Featured
See All Featured
Believing is Seeing
oripsolob
1
140
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
140
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
Leo the Paperboy
mayatellez
7
1.8k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
We Are The Robots
honzajavorek
0
240
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Transcript
AWS͕ ͔ΒΜਓʹૹΔ Fargateͷεεϝ
ࣗݾհ • ོ • nametaketakewo • ͳΊ͚ͨ • 2014 ߴߍதୀ
• 2019 େֶதୀ • தଔϑϦʔϥϯεWebΤϯδχΞ
͜Μͳࣄ͋Γ·ͤΜ͔ʁ • AWS͔ΒΜͷʹຊ൪ڥͷߏஙͱӡ༻Λ ͞Εͯ͠·ͬͨʂ • ։ൃʹूத͍͔ͨ͠Βڥߏஙӡ༻ʹ࣌ؒ ίετ͔͚ͨ͘ͳ͍(͔͚ΒΕͳ͍)ʂ
AWS Fargateͬͯʁ • αʔόʔϨείϯςφ࣮ߦαʔϏε • ECS্ͷػೳ • ECSEC2্ͰίϯςφΛཧ • FargateEC2Λҙࣝͤͣίϯςφͷཧʹ
ूதͰ͖Δ
FargateΛબࢶʹೖΕΔ࣌ • ։ൃʹDockerΛ͍ͬͯΔ • Πϯϑϥٴͼӡ༻୲ऀ/νʔϜ͕ډͳ͍ • ͳΜͱͳ͘EC2Ͱӡ༻(͠Α͏ͱ)͍ͯ͠Δ
FargateಋೖͰղܾ͠ಘΔ՝ • ॴҦαʔόʔͷཧ • ύοέʔδϚωδϝϯτ • જࡏతͳηΩϡϦςΟϦεΫ • ֤छϦιʔε(CPU, Memory,
Disk)ͷࢹɾཧ • ίϯςφͱ͍͏੍ݶ͕՝͞ΕΔࣄͰڥߏஙΞϯνύλʔϯΛ౿Έʹ͍͘ • ຊ൪ڥͷ22port։͖ͬͺͳ͠ • ϩΪϯά͕·ͱʹߦΘΕ͍ͯͳ͍ • 1αʔόʔͰແݶʹϓϩηε͕ͬͯΔ
༻ޠͷཧ • Ϋϥελʔ • αʔϏεΛෳ࣋ͭ͜ͱ͕Ͱ͖Δ • αʔϏε • 1ͭͷΫϥελʔʹඥ͖ɺ1ͭͷλεΫఆٛΛ࣋ͭ͜ͱ͕Ͱ͖Δ •
λεΫఆٛ • ෳͷαʔϏεʹඥ͖ɺෳͷίϯςφఆٛΛ࣋ͭ͜ͱ͕Ͱ͖Δ • ͜ͷఆٛʹج͖ͮαʔϏε͕ෳͷλεΫΛ࣮ߦ͢Δ • λεΫͰར༻ͨ͠Ϧιʔεʹج͖ͮར༻ྉ͕ܾۚఆ͢Δ • ίϯςφఆٛ • 1ͭͷλεΫఆٛʹඥ͘ • ࣮ࡍʹՔಇͤ͞ΔίϯςφͷઃఆΛߦ͏
࣮ࡍͷߏஙྫͱ αʔϏεʹ͏มԽ
RailsͷΈΛͬͨ γϯϓϧͳߏ
Ϋϥελʔ • ςϯϓϨʔτʮωοτϫʔΩϯάͷΈʯ
λεΫఆٛ • FARGATEΛબ • ެ։ϙʔτΛࢦఆ͢ΔͷΛΕͳ͍ • ίϯςφΠϝʔδΛͲ͔͜ʹΞοϓϩʔυ͢ Δඞཁ͕͋Δ • AWS
ECR͕Φεεϝ
αʔϏε • LBΛඥ͚ͮΔඞཁ͕͋Δ͕ɺλʔήοτλΠ ϓipΛࢦఆ
service cluster task task Rails Rails
ඇಉظϫʔΧʔΛՃ
αʔϏεͱλεΫఆٛΛՃ • αʔϏεͷݕग़αʔϏεؒͰ௨৴͕ඞ ཁͳࡍʹ༻ • gRPCΛར༻͢Δ߹ඞཁ • ࠓճͷΑ͏ͳྫ(RedisΛհ͢)Ͱෆཁ
api-service cluster task task Rails Rails worker-service task Rails
όοΫΤϯυͱ ϑϩϯτΤϯυΛׂ
αʔϏε͔λεΫ͔ • αʔϏε(ૄ݁߹) • λεΫ(ີ݁߹) • ಉҰλεΫͷίϯςφlocalhostͰ௨৴Ͱ͖Δ • ඇӬଓετϨʔδڞ༗(λεΫετϨʔδ)͕͑Δ •
RailsͷϫʔΧʔ(ActiveJob)ͷ߹ผαʔϏεʹͯ͠ͳ͍ • Nginx+Node.jsͷ߹ετϨʔδڞ༗௨৴͕ൃੜ͢ΔҝಉαʔϏε
api-service cluster task task Rails Rails front-service task Nginx Node.js
worker-service task Rails task Nginx Node.js
σϓϩΠͲ͏Μͷ? • ΠϝʔδΛߋ৽͠ɺλεΫఆٛͷ৽ϦϏδϣ ϯΛ࡞͠ɺαʔϏεΛߋ৽ • αʔϏε࡞࣌ʹબͨ͠σϓϩΠϝϯτλ Πϓʹै͍ࣗಈͰσϓϩΠ͞ΕΔ • aws-cliTerraformΛ༻͍ͯCI/CDܦ༝ͰҰ࿈ ͷ࡞ۀΛߦ͑Δ
ϚΠάϨʔγϣϯͲ͏Μͷ? • ϚΠάϨʔγϣϯ༻ͷαʔϏεΛ࡞͢Δ • ྉۚλεΫ͕ར༻ͨ͠Ϧιʔεʹൃੜ͢ ΔͷͰྃ࣍ୈ͙͢ʹऴྃ͢Δ
ϩΪϯάͲ͏Μͷ? • CloudWatch LogsͰӾཡՄ • λεΫఆٛͰλεΫຖʹϩάઃఆ͕ߦ͑Δ • docker logsͰදࣔ͞ΕΔͱಉ͡ɺͭ·Γ ඪ४ग़ྗͱඪ४Τϥʔग़ྗ͕ϩΪϯά͞ΕΔ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠