AWSͰαʔόӡ༻Λͯ͠ΈΔۚۀେֶ ใֶՊ ܀ࢁ७ฏ JAWS –UG ۚ | 2019KANAZAWA
View Slide
• Name: ܀ࢁ ७ฏ• Belong: ۚۀେֶ• Twitter: @_Iruk_• Skill: Ruby, Elixir, TypeScript, Go,• CLIπʔϧWebΞϓϦέʔγϣϯΛΜͰ࡞Γ·͢ɻ• Πϯϑϥ৯Θͣݏ͍ͳٕज़ͩͬͨɻ$ whoami
App
αʔόߏஙɺਏ͔ͬͨɻ
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ• αʔόߏஙʹ͓͚Δࣝ࠷ݶ͋Δ
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ• αʔόߏஙʹ͓͚Δࣝ࠷ݶ͋Δ• ͜ͷਏ͞ΛऔΓআ͍ͯ͘ΕΔαʔϏε….
• ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ݁ߏਏ͍ɻ• αʔόߏஙʹ͓͚Δࣝ࠷ݶ͋Δ• ͜ͷਏ͞ΛऔΓআ͍ͯ͘ΕΔαʔϏε….ʂ
ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ• ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠͨ͠ɻ• ݴޠ: Ruby• RDB: MySQL
Internet gateway Amazon EC2
Internet gatewayAmazon RDSAmazon EC2
Internet gatewayAmazon RDSAmazon S3Amazon EC2Amazon RDSAmazon EC2
Internet gatewayAmazon RDSAmazon S3Amazon EC2Amazon RDSAmazon 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 EC2AZ(ΞϕΠϥϏϦςΟκʔϯ)
Πϯελϯεৄࡉͷઃఆ
Amazon VPCͷઃఆ
Amazon VPCͱ• CIDRϒϩοΫͷઃఆ• ΞϕΠϥϏϦςΟκʔϯͷઃఆ• AZ͕ҧ͏ͱσʔληϯλʔࣗମҧ͏ͷͰɺ ہॴతͳࡂͳͲʹඋ͑ͨߏ͕࡞ΕΔ
αϒωοτͷ࡞
ηΩϡϦςΟάϧʔϓ• ϑΝΠΞΥʔϧͷઃఆͷΑ͏ͳͷ• ࠓճ 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\MJTUFOTFSWFS@OBNFBEESFTTJODMVEFFUDOHJOYEFGBVMUEDPOG MPDBUJPO\ QSPYZ@TFU@IFBEFS9'PSXBSEFE'PSQSPYZ@BEE@Y@GPSXBSEFE@GPS QSPYZ@SFEJSFDUPGG QSPYZ@QBTTIUUQQVNB ^ FSSPS@QBHFIUNMMPDBUJPOYIUNM\^ FSSPS@QBHFYIUNMMPDBUJPOYIUNM\^^
࣮ࡍʹڍಈΛݟΔ
RDBʹ͍ͭͯ
RDBʹ͍ͭͯ• EC2ΠϯελϯεʹRDB(MySQL, PostgreSQL) ΛೖΕΔ• Amazon RDSΛ͏
• Amazon Relational Database Servise•RDBʹ͍ͭͯ
• Amazon Relational Database Servise• DBͷόοΫΞοϓ੬ऑੑʹର͢ΔରԠͳͲΛAmazonͷαʔϏεʹҰͰ͖Δ• Τϯδϯ(RDBͷछྨ)બՄೳRDBʹ͍ͭͯ
RDSΠϯελϯεͷ࡞
ηΩϡϦςΟάϧʔϓͷઃఆ
config/database.ymlʹهड़socket: /var/lib/mysql/mysql.sockɹhost: address.rds.amazonaws.comɹdatabase: appname_developmentɹ
ಉ͡ߏͷΠϯελϯεΛཱͯΔ
·ͱΊ• ܦݧͷগͳ͍ٕज़ऀઢͰ GUIϕʔεͰαʔόΛߏஙͰ͖Δ• අ༻͔͔ΔͷͷɺAmazonͷαʔϏεʹґଘ͢Δ͜ͱͰීஈཧͷ͍͠ྖҬΛҕͰ͖Δ• Πϯϑϥ͕ਏ͍ਓʹͦͥ͜ͻ৮ͬͯཉ͍͠ɻ