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
AWSが分からん人に送るFargateのススメ
Harutaka TAKEUCHI
July 22, 2019
Other Decks in Programming
See All in Programming
Exploring RuboCop with MCP
koic
0
580
飯MCP
yusukebe
0
510
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
240
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
360
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
520
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
240
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
890
実用!Hono RPC2026
yodaka
2
170
Alternatives to JPA 2026
debop
0
110
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
270
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
210
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
330
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Darren the Foodie - Storyboard
khoart
PRO
3
3.2k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
200
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
A Modern Web Designer's Workflow
chriscoyier
698
190k
How to Ace a Technical Interview
jacobian
281
24k
Six Lessons from altMBA
skipperchong
29
4.2k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
170
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Being A Developer After 40
akosma
91
590k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
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Ͱදࣔ͞ΕΔͱಉ͡ɺͭ·Γ ඪ४ग़ྗͱඪ४Τϥʔग़ྗ͕ϩΪϯά͞ΕΔ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠