$30 off During Our Annual Pro Sale. View Details »

AWSでサーバ運用してみる

 AWSでサーバ運用してみる

Junpei Kuriyama

November 22, 2019
Tweet

Other Decks in Technology

Transcript

  1. AWSͰαʔόӡ༻Λͯ͠ΈΔ
    ۚ୔޻ۀେֶ ৘ใ޻ֶՊ ܀ࢁ७ฏ

    JAWS –UG ۚ୔ | 2019
    KANAZAWA

    View Slide

  2. • Name: ܀ࢁ ७ฏ
    • Belong: ۚ୔޻ۀେֶ
    • Twitter: @_Iruk_
    • Skill: Ruby, Elixir, TypeScript, Go,
    • CLIπʔϧ΍WebΞϓϦέʔγϣϯΛ޷ΜͰ࡞Γ·͢ɻ
    • Πϯϑϥ͸৯Θͣݏ͍ͳٕज़෼໺ͩͬͨɻ
    $ whoami

    View Slide

  3. View Slide

  4. App

    View Slide

  5. View Slide

  6. App

    View Slide

  7. App

    View Slide

  8. App

    View Slide

  9. App

    View Slide

  10. App

    View Slide

  11. App

    View Slide

  12. App

    View Slide

  13. App

    View Slide

  14. αʔόߏஙɺਏ͔ͬͨɻ

    View Slide

  15. • ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ͸݁ߏਏ͍ɻ

    View Slide

  16. • ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ͸݁ߏਏ͍ɻ
    • αʔόߏஙʹ͓͚Δ஌ࣝ͸࠷௿ݶ͋Δ

    View Slide

  17. • ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ͸݁ߏਏ͍ɻ
    • αʔόߏஙʹ͓͚Δ஌ࣝ͸࠷௿ݶ͋Δ
    • ͜ͷਏ͞ΛऔΓআ͍ͯ͘ΕΔαʔϏε….

    View Slide

  18. • ܦݧͷͳ͍ྖҬΛCLIͰߦ͏ͷ͸݁ߏਏ͍ɻ
    • αʔόߏஙʹ͓͚Δ஌ࣝ͸࠷௿ݶ͋Δ
    • ͜ͷਏ͞ΛऔΓআ͍ͯ͘ΕΔαʔϏε….
    ʂ

    View Slide

  19. AWSͰαʔόӡ༻Λͯ͠ΈΔ
    ۚ୔޻ۀେֶ ৘ใ޻ֶՊ ܀ࢁ७ฏ

    JAWS –UG ۚ୔ | 2019
    KANAZAWA

    View Slide

  20. ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ
    • ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠ؅ͨ͠ɻ
    • ݴޠ: Ruby
    • RDB: MySQL

    View Slide

  21. View Slide

  22. Internet gateway Amazon EC2

    View Slide

  23. Internet gateway
    Amazon RDS
    Amazon EC2

    View Slide

  24. Internet gateway
    Amazon RDS
    Amazon S3
    Amazon EC2
    Amazon RDS
    Amazon EC2

    View Slide

  25. Internet gateway
    Amazon RDS
    Amazon S3
    Amazon EC2
    Amazon RDS
    Amazon EC2
    ΞϕΠϥϏϦςΟκʔϯ - B
    ΞϕΠϥϏϦςΟκʔϯ - C

    View Slide

  26. ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ
    • ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠ؅ͨ͠ɻ
    • ಉ࣌ʹߏஙʹ৑௕ੑΛ࣋ͨͤͨɻ

    View Slide

  27. ʮAWSͷαʔόӡ༻Λͯ͠ΈΔʯ
    • ӡ༻͍ͯͨ͠όοΫΤϯυͷΠϯϑϥΛAWSʹҠ؅ͨ͠ɻ
    • ಉ࣌ʹߏஙʹ৑௕ੑΛ࣋ͨͤͨɻ
    • => ͦͷࡍͷৄࡉɺ஌ݟΛ࿩͍͖ͯ͠·͢ɻ

    View Slide

  28. EC2ΠϯελϯεΛ࡞੒͢Δ
    Amazon EC2

    View Slide

  29. Ϧʔδϣϯ

    View Slide

  30. Ϧʔδϣϯ
    • αʔόͷ෺ཧతॴࡏҐஔ

    View Slide

  31. Ϧʔδϣϯ
    • αʔόͷ෺ཧతॴࡏҐஔ
    • ೔ຊϢʔβ͕ଟ͍αʔϏεΛӡӦ͢ΔͳΒɺϢʔβͱͷ෺
    ཧతڑ཭͕͍ۙ౦ژϦʔδϣϯ͕๬·͍͠

    View Slide

  32. Ϧʔδϣϯ
    • αʔόͷ෺ཧతॴࡏҐஔ
    • ೔ຊϢʔβ͕ଟ͍αʔϏεΛӡӦ͢ΔͳΒɺϢʔβͱͷ෺
    ཧతڑ཭͕͍ۙ౦ژϦʔδϣϯ͕๬·͍͠
    • ଞͷϦʔδϣϯͷ৘ใ͸දࣔ͞Εͳ͍ͷͰ஫ҙ

    (ex. όʔδχΞ๺෦Λબ୒͍ͯ͠Δͱ౦ژͷ৘ใ͸ݟ͑ͳ͍

    View Slide

  33. EC2ΠϯελϯεΛ࡞੒͢Δ

    View Slide

  34. EC2ΠϯελϯεΛ࡞੒͢Δ
    • Amazon Elastic Compute
    • ΠϯελϯεͱݺͿαʔόΛ࡞੒͢Δ
    • εϖοΫʹؔͯ͠͸બ୒Մೳ
    • OS(AMI)΋બ୒Մೳ

    View Slide

  35. AMIͷબ୒

    View Slide

  36. ΠϯελϯελΠϓͷબ୒

    View Slide

  37. ΠϯελϯελΠϓͷબ୒
    Amazon EC2 ΠϯελϯελΠϓ - https://aws.amazon.com/jp/ec2/instance-types/

    View Slide

  38. VPCͷઃఆΛ͢Δ
    Amazon EC2
    AZ(ΞϕΠϥϏϦςΟκʔϯ)

    View Slide

  39. Πϯελϯεৄࡉͷઃఆ

    View Slide

  40. Amazon VPCͷઃఆ

    View Slide

  41. Amazon VPCͱ͸
    • CIDRϒϩοΫͷઃఆ
    • ΞϕΠϥϏϦςΟκʔϯͷઃఆ
    • AZ͕ҧ͏ͱσʔληϯλʔࣗମҧ͏ͷͰɺ

    ہॴతͳࡂ֐ͳͲʹඋ͑ͨ৑௕ߏ੒͕࡞ΕΔ

    View Slide

  42. αϒωοτͷ࡞੒

    View Slide

  43. EC2ΠϯελϯεΛ࡞੒͢Δ

    View Slide

  44. EC2ΠϯελϯεΛ࡞੒͢Δ

    View Slide

  45. ηΩϡϦςΟάϧʔϓ
    • ϑΝΠΞ΢ΥʔϧͷઃఆͷΑ͏ͳ΋ͷ
    • ࠓճ͸

    ssh: 22

    http: 80

    https: 443

    pumaͷsocket: 3000

    Λ։͚͓ͯ͘

    View Slide

  46. ࡞੒ʂ

    View Slide

  47. EC2Πϯελϯεͷ׬੒
    • άϩʔόϧIPͱήʔτ΢ΣΠͷ४උ͞Εͨαʔό͕׬੒

    View Slide

  48. EC2Πϯελϯεͷ׬੒
    • άϩʔόϧIPͱήʔτ΢ΣΠͷ४උ͞Εͨαʔό͕׬੒
    • ηΩϡϦςΟάϧʔϓͰsshͷϙʔτΛ։͚ͨͷͰ

    ssh ec2-user@IPv4public -i key.pem ͰsshͰ͖Δ

    View Slide

  49. EC2Πϯελϯεͷ׬੒
    • άϩʔόϧIPͱήʔτ΢ΣΠͷ४උ͞Εͨαʔό͕׬੒
    • ηΩϡϦςΟάϧʔϓͰsshͷϙʔτΛ։͚ͨͷͰ

    ssh ec2-user@public -i key.pem ͰsshͰ͖Δ
    • ϙʔτΛ։͚ͨαʔό͕׬੒͍ͯ͠ΔͷͰ

    MySQLͳͲϛυϧ΢ΣΞΛೖΕͯΞϓϦӡ༻͕Մೳ

    View Slide

  50. EC2Πϯελϯεͷ׬੒
    Internet gateway Amazon EC2

    View Slide

  51. ࣮ࡍʹڍಈΛݟΔ
    • Ruby, RailsपΓͷ؀ڥߏஙΛ͢Δ

    View Slide

  52. ࣮ࡍʹڍಈΛݟΔ
    • Ruby, RailsपΓͷ؀ڥߏஙΛ͢Δ

    (DockerFileΛ༻ҙͯ͋͠ΔͷͰͦͷ··ίϯςφΛ࡞੒

    View Slide

  53. ࣮ࡍʹڍಈΛݟΔ
    • Ruby, RailsपΓͷ؀ڥߏஙΛ͢Δ

    (DockerFileΛ༻ҙͯ͋͠ΔͷͰͦͷ··ίϯςφΛ࡞੒
    • ΞΫηε͕དྷͨࡍͷϑΥϫʔσΟϯάʹnginxΛॻ͘

    • puma(rubyͷwebαʔό)ͷsocketΛnginxʹରԠͤ͞Δɻ

    View Slide

  54. VQTUSFBNQVNB\
    TFSWFSVOJYIPNFFDVTFS&$EFQUNQTPDLFUTQVNBTPDL
    ^
    TFSWFS\
    MJTUFO
    TFSWFS@OBNFBEESFTT
    JODMVEFFUDOHJOYEFGBVMUEDPOG

    MPDBUJPO\
    QSPYZ@TFU@IFBEFS9'PSXBSEFE'PSQSPYZ@BEE@Y@GPSXBSEFE@GPS
    QSPYZ@SFEJSFDUPGG
    QSPYZ@QBTTIUUQQVNB
    ^

    FSSPS@QBHFIUNM
    MPDBUJPOYIUNM\
    ^

    FSSPS@QBHFYIUNM
    MPDBUJPOYIUNM\
    ^
    ^

    View Slide

  55. ࣮ࡍʹڍಈΛݟΔ

    View Slide

  56. Internet gateway
    Amazon RDS
    Amazon EC2

    View Slide

  57. RDBʹ͍ͭͯ

    View Slide

  58. RDBʹ͍ͭͯ
    • EC2ΠϯελϯεʹRDB(MySQL, PostgreSQL)

    ΛೖΕΔ
    • Amazon RDSΛ࢖͏

    View Slide

  59. RDBʹ͍ͭͯ
    • EC2ΠϯελϯεʹRDB(MySQL, PostgreSQL)

    ΛೖΕΔ
    • Amazon RDSΛ࢖͏

    View Slide

  60. • Amazon Relational Database Servise

    RDBʹ͍ͭͯ

    View Slide

  61. • Amazon Relational Database Servise
    • DBͷόοΫΞοϓ΍੬ऑੑʹର͢ΔରԠͳͲ
    ΛAmazonͷαʔϏεʹҰ೚Ͱ͖Δ
    • Τϯδϯ(RDBͷछྨ)͸બ୒Մೳ
    RDBʹ͍ͭͯ

    View Slide

  62. RDSΠϯελϯεͷ࡞੒

    View Slide

  63. RDSΠϯελϯεͷ࡞੒

    View Slide

  64. ηΩϡϦςΟάϧʔϓͷઃఆ

    View Slide

  65. config/database.ymlʹهड़
    socket: /var/lib/mysql/mysql.sock
    ɹ
    host: address.rds.amazonaws.comɹ
    database: appname_developmentɹ

    View Slide

  66. Internet gateway
    Amazon RDS
    Amazon EC2

    View Slide

  67. ಉ͡ߏ੒ͷΠϯελϯεΛཱͯΔ

    View Slide

  68. ·ͱΊ
    • ܦݧͷগͳ͍ٕज़ऀ໨ઢͰ΋

    GUIϕʔεͰαʔόΛߏஙͰ͖Δ
    • අ༻͸͔͔Δ΋ͷͷɺAmazonͷαʔϏεʹ
    ґଘ͢Δ͜ͱͰීஈ؅ཧͷ೉͍͠ྖҬΛҕ೚
    Ͱ͖Δ
    • Πϯϑϥ͕ਏ͍ਓʹͦͥ͜ͻ৮ͬͯཉ͍͠ɻ

    View Slide

  69. View Slide

  70. AWSͰαʔόӡ༻Λͯ͠ΈΔ
    ۚ୔޻ۀେֶ ৘ใ޻ֶՊ ܀ࢁ७ฏ

    JAWS –UG ۚ୔ | 2019
    KANAZAWA

    View Slide