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
1.9k
AWSが分からん人に送るFargateのススメ
Harutaka TAKEUCHI
July 22, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
kiroでゲームを作ってみた
iriikeita
0
160
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
180
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
360
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
120
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
850
JetBrainsのAI機能の紹介 #jjug
yusuke
0
200
あのころの iPod を どうにか再生させたい
orumin
2
2.4k
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
360
Portapad紹介プレゼンテーション
gotoumakakeru
1
130
新世界の理解
koriym
0
130
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
280
AIのメモリー
watany
13
1.4k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
A better future with KSS
kneath
239
17k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
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Ͱදࣔ͞ΕΔͱಉ͡ɺͭ·Γ ඪ४ग़ྗͱඪ४Τϥʔग़ྗ͕ϩΪϯά͞ΕΔ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠