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でサーバ運用してみる
Search
Junpei Kuriyama
November 22, 2019
Technology
1.1k
0
Share
AWSでサーバ運用してみる
Junpei Kuriyama
November 22, 2019
Other Decks in Technology
See All in Technology
アクセシビリティはすべての人のもの
tomokusaba
0
290
「QA=テスト」「シフトレフト=スクラムイベントの参加者の一員」の呪縛を解く。アジャイルな開発を止めないために、10Xで挑んだ「右側のしわ寄せ」解消記 #scrumniigata
nihonbuson
PRO
3
930
古今東西SRE
okaru
1
140
自動テストだけで リリース判断できるチームへ - 鍵はテストの量ではなくリリース判断基準の再設計にあった / Redesigning Release Criteria for Lightweight Releases
ewa
7
3.5k
Shiny New Tools Won't Fix Your Problem
trishagee
1
110
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
310
Google Cloud Next '26 の裏でこっそりリリースされたCloud Number Registry & Cloud Hub コスト分析 を試してみた
hikaru1001
0
170
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
2.5k
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
2
250
多角的な視点から見たAGI
terisuke
0
130
React 19×Rustツール 進化の「ズレ」を設計で埋める
remrem0090
1
100
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
250
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Evolving SEO for Evolving Search Engines
ryanjones
0
190
Design in an AI World
tapps
1
210
Scaling GitHub
holman
464
140k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
510
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Paper Plane (Part 1)
katiecoart
PRO
0
7.2k
Navigating Team Friction
lara
192
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
What's in a price? How to price your products and services
michaelherold
247
13k
We Have a Design System, Now What?
morganepeng
55
8.1k
Transcript
AWSͰαʔόӡ༻Λͯ͠ΈΔ ۚۀେֶ ใֶՊ ܀ࢁ७ฏ JAWS –UG ۚ | 2019 KANAZAWA
• Name: ܀ࢁ ७ฏ • Belong: ۚۀେֶ • Twitter: @_Iruk_
• Skill: Ruby, Elixir, TypeScript, Go, • CLIπʔϧWebΞϓϦέʔγϣϯΛΜͰ࡞Γ·͢ɻ • Πϯϑϥ৯Θͣݏ͍ͳٕज़ͩͬͨɻ $ whoami
None
App
None
App
App
App
App
App
App
App
App
αʔόߏஙɺਏ͔ͬͨɻ
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ • αʔόߏஙʹ͓͚Δࣝ࠷ݶ͋Δ
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ • αʔόߏஙʹ͓͚Δࣝ࠷ݶ͋Δ • ͜ͷਏ͞ΛऔΓআ͍ͯ͘ΕΔαʔϏε….
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ • αʔόߏஙʹ͓͚Δࣝ࠷ݶ͋Δ • ͜ͷਏ͞ΛऔΓআ͍ͯ͘ΕΔαʔϏε…. ʂ
AWSͰαʔόӡ༻Λͯ͠ΈΔ ۚۀେֶ ใֶՊ ܀ࢁ७ฏ JAWS –UG ۚ | 2019 KANAZAWA
ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ • ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠͨ͠ɻ • ݴޠ: Ruby • RDB: MySQL
None
Internet gateway Amazon EC2
Internet gateway Amazon RDS Amazon EC2
Internet gateway Amazon RDS Amazon S3 Amazon EC2 Amazon RDS
Amazon EC2
Internet gateway Amazon RDS Amazon S3 Amazon EC2 Amazon RDS
Amazon EC2 ΞϕΠϥϏϦςΟκʔϯ - B ΞϕΠϥϏϦςΟκʔϯ - C
ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ • ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠͨ͠ɻ • ಉ࣌ʹߏஙʹੑΛ࣋ͨͤͨɻ
ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ • ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠͨ͠ɻ • ಉ࣌ʹߏஙʹੑΛ࣋ͨͤͨɻ • => ͦͷࡍͷৄࡉɺݟΛ͍͖ͯ͠·͢ɻ
EC2ΠϯελϯεΛ࡞͢Δ Amazon EC2
Ϧʔδϣϯ
Ϧʔδϣϯ • αʔόͷཧతॴࡏҐஔ
Ϧʔδϣϯ • αʔόͷཧతॴࡏҐஔ • ຊϢʔβ͕ଟ͍αʔϏεΛӡӦ͢ΔͳΒɺϢʔβͱͷ ཧతڑ͕͍ۙ౦ژϦʔδϣϯ͕·͍͠
Ϧʔδϣϯ • αʔόͷཧతॴࡏҐஔ • ຊϢʔβ͕ଟ͍αʔϏεΛӡӦ͢ΔͳΒɺϢʔβͱͷ ཧతڑ͕͍ۙ౦ژϦʔδϣϯ͕·͍͠ • ଞͷϦʔδϣϯͷใදࣔ͞Εͳ͍ͷͰҙ (ex. όʔδχΞ෦Λબ͍ͯ͠Δͱ౦ژͷใݟ͑ͳ͍
EC2ΠϯελϯεΛ࡞͢Δ
EC2ΠϯελϯεΛ࡞͢Δ • Amazon Elastic Compute • ΠϯελϯεͱݺͿαʔόΛ࡞͢Δ • εϖοΫʹؔͯ͠બՄೳ •
OS(AMI)બՄೳ
AMIͷબ
ΠϯελϯελΠϓͷબ
ΠϯελϯελΠϓͷબ Amazon EC2 ΠϯελϯελΠϓ - https://aws.amazon.com/jp/ec2/instance-types/
VPCͷઃఆΛ͢Δ Amazon EC2 AZ(ΞϕΠϥϏϦςΟκʔϯ)
Πϯελϯεৄࡉͷઃఆ
Amazon VPCͷઃఆ
Amazon VPCͱ • CIDRϒϩοΫͷઃఆ • ΞϕΠϥϏϦςΟκʔϯͷઃఆ • AZ͕ҧ͏ͱσʔληϯλʔࣗମҧ͏ͷͰɺ ہॴతͳࡂͳͲʹඋ͑ͨߏ͕࡞ΕΔ
αϒωοτͷ࡞
EC2ΠϯελϯεΛ࡞͢Δ
EC2ΠϯελϯεΛ࡞͢Δ
ηΩϡϦςΟάϧʔϓ • ϑΝΠΞΥʔϧͷઃఆͷΑ͏ͳͷ • ࠓճ ssh: 22 http: 80 https:
443 pumaͷsocket: 3000 Λ։͚͓ͯ͘
࡞ʂ
EC2Πϯελϯεͷ • άϩʔόϧIPͱήʔτΣΠͷ४උ͞Εͨαʔό͕
EC2Πϯελϯεͷ • άϩʔόϧIPͱήʔτΣΠͷ४උ͞Εͨαʔό͕ • ηΩϡϦςΟάϧʔϓͰsshͷϙʔτΛ։͚ͨͷͰ ssh ec2-user@IPv4public -i key.pem ͰsshͰ͖Δ
•
EC2Πϯελϯεͷ • άϩʔόϧIPͱήʔτΣΠͷ४උ͞Εͨαʔό͕ • ηΩϡϦςΟάϧʔϓͰsshͷϙʔτΛ։͚ͨͷͰ ssh ec2-user@public -i key.pem ͰsshͰ͖Δ
• ϙʔτΛ։͚ͨαʔό͕͍ͯ͠ΔͷͰ MySQLͳͲϛυϧΣΞΛೖΕͯΞϓϦӡ༻͕Մೳ
EC2Πϯελϯεͷ Internet gateway Amazon EC2
࣮ࡍʹڍಈΛݟΔ • Ruby, RailsपΓͷڥߏஙΛ͢Δ
࣮ࡍʹڍಈΛݟΔ • Ruby, RailsपΓͷڥߏஙΛ͢Δ (DockerFileΛ༻ҙͯ͋͠ΔͷͰͦͷ··ίϯςφΛ࡞
࣮ࡍʹڍಈΛݟΔ • Ruby, RailsपΓͷڥߏஙΛ͢Δ (DockerFileΛ༻ҙͯ͋͠ΔͷͰͦͷ··ίϯςφΛ࡞ • ΞΫηε͕དྷͨࡍͷϑΥϫʔσΟϯάʹnginxΛॻ͘ • puma(rubyͷwebαʔό)ͷsocketΛnginxʹରԠͤ͞Δɻ
VQTUSFBNQVNB\ TFSWFSVOJYIPNFFDVTFS&$EFQUNQTPDLFUTQVNBTPDL ^ TFSWFS\ MJTUFO TFSWFS@OBNFBEESFTT JODMVEFFUDOHJOYEFGBVMUE DPOG
MPDBUJPO\ QSPYZ@TFU@IFBEFS9'PSXBSEFE'PSQSPYZ@BEE@Y@GPSXBSEFE@GPS QSPYZ@SFEJSFDUPGG QSPYZ@QBTTIUUQQVNB ^ FSSPS@QBHFIUNM MPDBUJPOYIUNM\ ^ FSSPS@QBHFYIUNM MPDBUJPOYIUNM\ ^ ^
࣮ࡍʹڍಈΛݟΔ
Internet gateway Amazon RDS Amazon EC2
RDBʹ͍ͭͯ
RDBʹ͍ͭͯ • EC2ΠϯελϯεʹRDB(MySQL, PostgreSQL) ΛೖΕΔ • Amazon RDSΛ͏
RDBʹ͍ͭͯ • EC2ΠϯελϯεʹRDB(MySQL, PostgreSQL) ΛೖΕΔ • Amazon RDSΛ͏
• Amazon Relational Database Servise • RDBʹ͍ͭͯ
• Amazon Relational Database Servise • DBͷόοΫΞοϓ੬ऑੑʹର͢ΔରԠͳͲ ΛAmazonͷαʔϏεʹҰͰ͖Δ • Τϯδϯ(RDBͷछྨ)બՄೳ
RDBʹ͍ͭͯ
RDSΠϯελϯεͷ࡞
RDSΠϯελϯεͷ࡞
ηΩϡϦςΟάϧʔϓͷઃఆ
config/database.ymlʹهड़ socket: /var/lib/mysql/mysql.sock ɹ host: address.rds.amazonaws.comɹ database: appname_developmentɹ
Internet gateway Amazon RDS Amazon EC2
ಉ͡ߏͷΠϯελϯεΛཱͯΔ
·ͱΊ • ܦݧͷগͳ͍ٕज़ऀઢͰ GUIϕʔεͰαʔόΛߏஙͰ͖Δ • අ༻͔͔ΔͷͷɺAmazonͷαʔϏεʹ ґଘ͢Δ͜ͱͰීஈཧͷ͍͠ྖҬΛҕ Ͱ͖Δ • Πϯϑϥ͕ਏ͍ਓʹͦͥ͜ͻ৮ͬͯཉ͍͠ɻ
None
AWSͰαʔόӡ༻Λͯ͠ΈΔ ۚۀେֶ ใֶՊ ܀ࢁ७ฏ JAWS –UG ۚ | 2019 KANAZAWA