Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウドとオンプレ / on the Cloud or Premises

Harukasan
March 12, 2015

クラウドとオンプレ / on the Cloud or Premises

pixiv SPRING BOOTCAMP 2015 講義資料

Harukasan

March 12, 2015
Tweet

More Decks by Harukasan

Other Decks in Technology

Transcript

  1. Ϋϥ΢υͱΦϯϓϨ
    Shunsuke Michii / Harukasan
    2015-03-11

    View Slide

  2. Harukasan / Shunsuke Michii
    • 2012೥ʹ৽ଔͱͯ͠ΠϯϑϥνʔϜʹ഑ଐ
    • ίϯςϯπ഑৴Λ͸͡Ίͱͯ͠αʔϏεશମͷج൫Λ୲౰
    • αʔϏεج൫͚ͩͰͳ͘σʔλղੳج൫ͷߏஙͳͲ΋
    • ٕज़ܥࡶࢽͷࣥචͳͲ΋
    ϐΫγϒגࣜձࣾɹΠϯϑϥνʔϜ

    View Slide

  3. Agenda
    • WebαʔϏεʹ͓͚ΔΠϯϑϥετϥΫνϟ
    • Ϋϥ΢υͱΦϯϓϨϛεͷҧ͍
    • ΫϥελϦϯάͱΦʔέετϨʔγϣϯ

    View Slide

  4. WebαʔϏεʹ͓͚Δ
    ΠϯϑϥετϥΫνϟ
    • ͦ΋ͦ΋ΠϯϑϥετϥΫνϟͱ͸
    • ΤϯδχΞϦϯά͸εέʔϧ͠ͳ͍
    • ΠϯϑϥνʔϜͱ͸
    • ΠϯϑϥετϥΫνϟ͸εέʔϧ͢Δ

    View Slide

  5. Q1 ͋ͳ͕ͨWebαʔϏεΛઃܭ͢ΔͳΒ͹
    ͲͷΑ͏ͳߏ੒Λߟ͑Δ͔ʁ

    View Slide

  6. Application Application
    Database
    Cache Storage
    Application
    Application
    Load Balancer
    DNS

    View Slide

  7. ?
    ? ?
    ?
    ?
    ? ? ?
    Application Application
    Database
    Cache Storage
    Application
    Application
    Load Balancer
    DNS

    View Slide

  8. Server
    Server
    Server Server
    Server
    Local Network
    Internet
    Server
    Server / Appliance
    Server
    Server
    Application Application
    Database
    Cache Storage
    Application
    Application
    Load Balancer
    DNS

    View Slide

  9. Heroku
    Add-on
    Add-on Add-on
    Application
    Add-on
    DNS
    Database
    Cache Storage

    View Slide

  10. EC2 EC2
    RDS
    ElastiCache S3
    EC2
    EC2
    ELB
    Route53
    Database
    Cache Storage
    Application Application
    Application
    Application
    DNS Load Balancer

    View Slide

  11. DNS

    View Slide

  12. ͦ΋ͦ΋

    ΠϯϑϥετϥΫνϟͱ͸
    • αʔϏεΛӡ༻͢Δ্Ͱɺ߃ৗతʹඞཁͱͳΔج൫
    • αʔϏεΛߏங͢Δ্Ͱ౔୆ͱͳΔ΋ͷ
    • ࣗ෼Ͱ͸΍Βͳ͍ͱ͜Ζ

    View Slide

  13. ΠϯϑϥετϥΫνϟ

    ͦΕࣗ਎͸Ձ஋Λੜ·ͳ͍
    • ຊ౰ʹՁ஋͕͋Δͷ͸ӡ༻͍ͯ͠ΔαʔϏεɺ͍҃
    ͸αʔϏε͕ఏڙ͍ͯ͠Δ΋ͷͰ͋Δ
    • Πϯϑϥͱͯ͠ԿΛબ୒͢Δ͔ɺͲ͏͍͏ߏ੒ʹ͢
    Δ͔ͱ͍ͬͨߏஙϊ΢ϋ΢͕Ձ஋ʹͳΔ͜ͱ͸͋Δ
    ͕ɺΠϯϑϥࣗମ͸Ձ஋ʹͳΒͳ͍

    View Slide

  14. Ͳ͜ͰՁ஋ΛੜΉ͔
    • ΠϯϑϥΑΓ্ͷϨΠϠʔͰՁ஋ΛੜΈग़͢
    • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ

    View Slide

  15. Contents
    σβΠϯɾίʔσΟϯά
    ίϯςϯπࣥච
    DNS
    value value

    View Slide

  16. DNS
    Contents
    Heroku
    Add-on
    Database
    Add-on
    Cache
    Add-on
    Storage
    Application
    σβΠϯɾίʔσΟϯά
    ઃܭɾ։ൃ
    γεςϜઃܭ
    ίϯςϯπࣥච
    value value
    value
    value

    View Slide

  17. ΤϯδχΞϦϯά͸

    εέʔϧ͠ͳ͍
    • ࣗ෼ͷೳྗ͕ٸʹ100ഒʹͳΔ͜ͱ͸ͳ͍
    • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ

    View Slide

  18. εέʔϧ͠ͳ͍΋ͷΛ࡞Βͳ͍
    • 1ਓ͔͠ఏڙ͠ͳ͍αʔϏε͸ͦΕҎ্ͷՁ஋ΛੜΊ
    ͳ͍
    • ਓ͸εέʔϧ͠ͳ͍͕ʢ͠ͳ͍ͷͰʣɺ࢖༻͢Δਓ
    ͕ଟ͍΄Ͳ1ਓʹఏڙ͢ΔαʔϏεͷίετ͸Լ͕Δ
    • εέʔϧ͢ΔϚʔέοτ͕͋Δ͔

    View Slide

  19. ΠϯϑϥνʔϜͱ͸
    • αʔϏεΠϯϑϥΛ։ൃऀʹఏڙ͢Δ
    • ΍ͬͯΔ͜ͱ͸֤ࣾ͹Β͹Β
    • ΠϯϑϥνʔϜࣗମ͕Πϯϑϥ

    View Slide

  20. ΠϯϑϥνʔϜ
    Application

    View Slide

  21. ʢۃ࿦Λݴ͏ͱʣࣗ෼ͷཱͪҐஔΑΓ

    ԼͷϨΠϠʔ͸͢΂ͯΠϯϑϥ
    • ΠϯϑϥΤϯδχΞ͔ΒݟͨΒDCۀऀ͸Πϯϑϥ
    • DCۀऀ͔ΒΈͯిؾࣄۀऀ͸Πϯϑϥ
    • ։ൃऀ͔ΒΈͯΠϯϑϥΤϯδχΞ͸Πϯϑϥ
    • ܦӦऀ͔ΒΈͯܧଓత։ൃ͸Πϯϑϥʢʹࣄۀج൫ʣ

    View Slide

  22. ΠϯϑϥετϥΫνϟ͸

    εέʔϧ͢Δ
    • ΠϯϑϥετϥΫνϟ͸αʔϏεͱͯ͠εέʔϧ͢Δ
    • ύλʔϯԽͰ͖Δʹεέʔϧ͢Δ
    • εέʔϧ͢Ε͹͢Δ΄ͲίετϝϦοτ͕ग़Δ
    • ڊਓͷݞʹ৐Δ

    View Slide

  23. IaaS (Infrastructure as a Service)
    • WebαʔϏεͷΠϯϑϥετϥΫνϟΛαʔϏεͱ
    ͯ͠ఏڙ͢Δ
    • ୅දతͳαʔϏεʹ͸AWSɺGCPɺSoftLayerͳͲ
    • ࣗࣾͷΠϯϑϥετϥΫνϟج൫ΛαʔϏεͱͯ͠
    ఏڙ͍ͯ͠Δ

    View Slide

  24. XaaS (X as a Service)
    • ͳΜͱ͔as a Serviceͱݺ͹ΕΔ΋ͷ͸શ෦Πϯϑϥ
    ͳͷͰ·ͱΊͯIaaSͰ΋Α͍
    • ͲͷϨΠϠʔ·Ͱఏڙ͍ͯ͠Δ͔Θ͔Βͳ͘ͳΔʢൺ
    ֱͰ͖ͳ͘ͳΔʣͷͰPaaSΈ͍ͨͳݴ༿͕࢖ΘΕΔ

    View Slide

  25. WebαʔϏεʹ͓͚Δ
    ΠϯϑϥετϥΫνϟ
    • ࣗ෼Ͱ͸΍Βͳ͍ͱ͜Ζ
    • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ
    • ΠϯϑϥΛαʔϏεʹ͢Δͱεέʔϧ͢Δ
    ·ͱΊ:

    View Slide

  26. break

    View Slide

  27. IaaSͱΦϯϓϨ
    • ΦϯϓϨͱ͸ʁ
    • IaaSͱΦϯϓϨͷҧ͍

    View Slide

  28. ΦϯϓϨϛε: On-Premises
    • ௚༁͢Δͱ"ߏ಺ʹ"ͱͳΔ
    • ΋ͱ΋ͱࣾ಺ʹΠϯϑϥετϥΫνϟΛઃஔ͢Δ͜
    ͱΛ͍ࣔͯͨ͠

    View Slide

  29. ͳͥΦϯϓϨͱݴ͏ͷ͔
    • Ϋϥ΢υͷରٛޠ͕ͳ͔ͬͨ
    • Macͷରٛޠͱͯ͠ͷPC

    View Slide

  30. ݱ୅ͷΦϯϓϨϛε؀ڥ͸

    Ϋϥ΢υʹ͍ۙ
    • ࣗࣾߏ಺ʹαʔό͓͍ͯΔͱ͜ΖͳΜͯ·Ε
    • ଏʹ”ΦϯϓϨ”ͱݺ͹ΕΔͱ͖αʔό͸IDCʹઃஔ

    ͯ͋͠Δ
    • ੈͷதͷ΄ͱΜͲͷΦϯϓϨ͸”ͳΜͪΌͬͯΦϯϓ
    Ϩϛε”ʹͳͬͯΔ

    View Slide

  31. ຊ౰ͷΦϯϓϨϛε ͳΜͪΌͬͯΦϯϓϨϛε
    ઃஔ৔ॴ ࣗࣾDC ϗεςΟϯά
    αʔόઃஔɾ؅ཧ ࣗࣾ IDCɾϕϯμʔ
    ௐୡ ࣗࣾ ࣗࣾɾϕϯμʔ
    ిݯ ࣗࣾܖ໿ IDC
    ஍਒ରࡦ ࣗࣾͰઃܭ IDC
    ճઢ ઐ༻ճઢ IDC
    ճઢ؂ࢹ ࣗࣾ IDC

    View Slide

  32. Q2 IaaSͱΦϯϓϨϛεͷେ͖ͳҧ͍ͱ͸ʁ

    View Slide

  33. IaaSͱΦϯϓϨͷҧ͍
    • ࣗ෼͚ͩͰ࢖͏͔ɺΈΜͳͰ࢖͏͔
    • ࢖͍ํ͕ҧ͏ͷͰ՝ۚମܥ͕େ͖͘ҟͳΔ

    View Slide

  34. ΦϯϓϨͷௐୡ
    Load
    Infrastructure
    • ෛՙʹ߹ΘͤͯௐୡܭըΛཱͯΔ
    ௐୡλΠϛϯά

    ௐୡλΠϛϯά

    ௐୡλΠϛϯά

    View Slide

  35. Waste
    ΦϯϓϨͷௐୡ
    Load
    • ෛՙʹ߹ΘͤͯௐୡܭըΛཱͯΔ
    ௐୡλΠϛϯά

    ௐୡλΠϛϯά

    ௐୡλΠϛϯά

    View Slide

  36. ΦϯϓϨ͸େม
    • ࢖͏΋ͷ͸શͯࣗ෼Ͱ༻ҙࣗ͠෼Ͱӡ༻͢Δ
    • εέʔϧ͠ͳ͍
    • ઌΛಡ·ͳ͍ͱ͍͚ͳ͍

    View Slide

  37. IaaSͷௐୡ
    Load
    • ෛՙʹ߹Θͤͯ૿ݮͰ͖Δʢཧ૝ʣ

    View Slide

  38. IaaSͷௐୡ
    Load
    • ෛՙʹ߹Θͤͯ૿ݮͰ͖Δʢݱ࣮ʣ

    View Slide

  39. IaaS΋͚ͬ͜͏େม
    • ݁ہࣗ෼ͰεέʔϦϯά͢ΔΑ͏ʹ͠ͳ͚Ε͹ࣗಈ
    Ͱ͸εέʔϧ͠ͳ͍ʢͪΐͬͱੲͷ࿩ʣ
    • ୯Ձ͚ͩͰݟΕ͹ߴ͍

    View Slide

  40. CPU୯Ձͷൺֱ
    • ʢඇެ։ʣ

    View Slide

  41. ωοτϫʔΫ୯Ձͷൺֱ
    • ʢඇެ։ʣ

    View Slide

  42. ίετͷҧ͍
    • ୯Ձ͚ͩͰݟΕ͹IaaSͷํ͕ߴͦ͏ʹݟ͑Δ
    • ࣮ࡍʹ͸ӡ༻ʹ͔͔Δਓ݅අɺDCΠϯϑϥʹ͔͔Δ
    ྉۚͳͲ͍ΖΜͳݻఆඅ͕͔͔Δ
    • େ఍ͷ৔߹IaaSͷํ͕εέʔϧϝϦοτͰ҆͘ͳΔ
    • ݻఆඅ͕খ͘͞ݟ͑Δ΄Ͳεέʔϧ͢Ε͹ΦϯϓϨ
    Ͱ΍ͬͨํ͕͍҆

    View Slide

  43. IaaSͱΦϯϓϨ
    • ΦϯϓϨ΋શ͕ͯࣗલͰ͸ͳ͍ʢ౰ͨΓલʣ
    • IaaS͸εέʔϧ͢Δ͜ͱͰϝϦοτΛग़͍ͯ͠Δ
    • CPU࣌ؒͰΈΔͱ͔ͳΓΑ͘ͳ͖ͬͯͨ
    • ωοτϫʔΫ͸͚ͬ͜͏ߴ͍
    ·ͱΊ:

    View Slide

  44. break

    View Slide

  45. ΫϥελϦϯάͱ

    ΦʔέετϨʔγϣϯ
    • ΫϥελϦϯάͱΦʔέετϨʔγϣϯ
    • ͳͥΫϥελϦϯά͍ͨ͠ͷ͔
    • ίϯςφΫϥελϦϯά

    View Slide

  46. ΫϥελϦϯάͱ͸
    • ଟ਺ͷϦιʔεΛ1ͭͷϦιʔεͱͯ͠࢖͏
    • Ͱ͔͍Πϯελϯε͸ߴ͍͠ɺSPOFʢ୯Ұো֐఺ʣ
    ʹͳΔ
    • εέʔϦϯά͢Δʹ͸͍҆ϦιʔεΛͨ͘͞Μฒ΂ͯ
    1ͭͷϦιʔεʹͯ͠࢖Θͳ͍ͱ͍͚ͳ͍

    View Slide

  47. ΦʔέετϨʔγϣϯͱ͸
    • Φʔέετϥͷԋ૗ํ๏ɺసͯ͡ฤ੒ɺ૊৫ԽΛ

    ࢦ͢୯ޠʹͳͬͨ
    • γεςϜ/ϛυϧ΢ΣΞͷࣗಈతͳߏ੒؅ཧɺσϓϩ
    Πϝϯτͷ͜ͱΛࢦ͢

    View Slide

  48. ΫϥελϦϯά͍ͨ͠
    • αʔϏεͷن໛Λ༧ଌ͢Δͷ͸೉͍͠
    • ༻ҙ͍ͯ͠ΔΠϯϑϥΛ͙͢ʹ౤ೖ͍ͨ͠
    • Ϋϥελશମͷ͏ܾͪ·ׂͬͨ߹ͷϦιʔεΛׂΓ౰
    ͍ͯͨ

    View Slide

  49. ΦϯϓϨͷௐୡ
    Load
    • ෛՙʹ߹ΘͤͯௐୡܭըΛཱͯΔ
    ௐୡλΠϛϯά

    ௐୡλΠϛϯά

    ௐୡλΠϛϯά

    ʢ෮शʣ

    View Slide

  50. Server Server Server Server
    Application Application Application
    Load balancer
    Application Application

    View Slide

  51. ΫϥελϦϯά͢ΔͨΊʹ

    ίϯςφΛ࢖͏
    • εέʔϧ͢ΔͨΊʹ͸ɺΞϓϦέʔγϣϯɺϛυϧ΢Σ
    ΞɺઃఆͳͲ༷ʑͳ΋ͷΛσϓϩΠͯ͠ಈ࡞͢ΔΑ͏
    ʹ͠ͳ͚Ε͹ͳΒͳ͍
    • ίϯςφ͝ͱσϓϩΠ͢Ε͹ྑ͍

    =ΦʔέετϨʔγϣϯ͕؆୯

    View Slide

  52. Docker
    • ίϯςφ؅ཧπʔϧ
    • DockerfileΛॻ͚ͩ͘ͰίϯςφΛϏϧυͰ͖Δ
    • ͍·ͷͱ͜ΖσϑΝΫτελϯμʔυ

    View Slide

  53. dockerhub
    build push
    pull
    Dockerfile
    deployment
    Image

    View Slide

  54. ͳͥίϯςφʹ͍ͨ͠ͷ͔
    • ґଘؔ܎Λύοέʔδϯά͍ͨ͠
    • ։ൃऀ͕ϛυϧ΢ΣΞͷґଘؔ܎Λ؅ཧ͢Δ͜ͱ͕
    Ͱ͖ΔΑ͏ʹͳΔ
    • ίϯςφΛ࢖͏ͱ͜Ε·ͰΠϯϑϥͩͬͨ΋ͷ͕

    ΠϯϑϥͰ͸ͳ͘ͳΔ

    View Slide

  55. Infrastructure
    Application

    View Slide

  56. Infrastructure
    Application
    Container

    View Slide

  57. ίϯςφԽ͞ΕΔͱԿ͕ى͜Δ͔
    • ΠϯϑϥͷϨΠϠʔ͕1ͭԼ͕Δ
    • OSͷύοέʔδ؅ཧ͸ෆཁʹͳΔ
    • ίϯςφ͝ͱʹ؂ࢹ͕ඞཁʹͳΔ

    View Slide

  58. CoreOS
    • ίϯςφϗετʹ࠷దԽ͞ΕͨLinuxσΟετϦ
    Ϗϡʔγϣϯ
    • systemdʹΑΔίϯςφͷ؅ཧͱEtcdɺFleetdͱ͍ͬ
    ͨΫϥελϦϯάɺΦʔέετϨʔγϣϯπʔϧ͔Β
    ߏ੒͞ΕΔ
    • ࣗಈతͳηΩϡϦςΟΞοϓσʔτ

    View Slide

  59. ΦʔέετϨʔγϣϯ͕଍Γͳ͍
    • ͍ͭ͘ίϯςφΛσϓϩΠ͢Δ͔
    • ίϯςφؒͷ૬ޓ઀ଓ͸Ͳ͏͢Δ͔
    • ͲͷλΠϛϯάͰεέʔϧ͢Ε͹͍͍͔

    View Slide

  60. Kubernates
    • Google͕ͭͬͨ͘ίϯςφΫϥελ؅ཧπʔϧ
    • αʔϏε୯ҐͰͷσϓϩΠ͕Ͱ͖Δ
    • ͍͍ͩͨશ෦ͷػೳ͕͋Δ͚ͲɺͰ͔͗͢Δ

    View Slide

  61. ͦ΋ͦ΋ࣗ෼Ͱ΍Δҙຯ͸
    • ίϯςφΛσϓϩΠ͢ΔઌΛࣗલͰ΍Βͳͯ͘΋ྑ
    ͍ͷͰ͸
    • ͋Δఔ౓ͷεέʔϧʹͳΔͱࣗ෼Ͱ΍Δ͜ͱΛߟ͑Δ

    View Slide

  62. ΫϥελϦϯάͱ

    ΦʔέετϨʔγϣϯ
    • Ͳ͜·Ͱ͕Πϯϑϥ͔͸࣌୅ʹΑͬͯมԽ͢Δ
    • ίϯςφΛ࢖͏ͱ͍Ζ͍ΖͱมΘΓͦ͏
    • ͍Ζ͍Ζͱߟ͑ͳ͍ͱ͍͚ͳ͍͜ͱ͕ଟ͍
    ·ͱΊ:

    View Slide

  63. ·ͱΊ

    View Slide

  64. Ϋϥ΢υͱΦϯϓϨ
    • Ϋϥ΢υͰ͋Δ͔Βͱ͔ɺΦϯϓϨͰ͋Δ͔Βɺ

    ͱ͍͏ͷ͸͋·Γେ͖ͳ໰୊Ͱ͸ͳ͍
    • ࠷΋࠷దͳج൫Λબ୒͢Δͷ͕Α͍
    • ͩΊʹͳͬͨΒ৐Γ׵͑Ε͹ྑ͍
    • ʢΤϯδχΞͱͯ͠ʣͲ͜ͰՁ஋Λग़͔͕͢ॏཁ

    View Slide