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

イチからWordPressのインフラを考えてみる

A1d5763c166c102945ed2371a76dc0ec?s=47 re__ma
December 15, 2018

 イチからWordPressのインフラを考えてみる

WordPress の 5.0 が出ましたね!
サーバー、インフラもずっと旧い環境を使っていたりしませんか?
メジャーアップデートを気に、いま新しい環境を作るなら、インフラ側はどうするか、イチから考えてみたいと思います。

A1d5763c166c102945ed2371a76dc0ec?s=128

re__ma

December 15, 2018
Tweet

More Decks by re__ma

Other Decks in Technology

Transcript

  1. Πν͔ΒWordPressͷ ΠϯϑϥΛߟ͑ͯΈΔ ࣉా ྯਅ Dec 15 2018 WordPress Meetup @

    Matsumoto
  2. • ࣉా ྯਅ(Reima TERADA) • ॴଐ1ɿגࣜձࣾαʔόʔϫʔΫε
 Ϋϥ΢υΠϯςάϨʔγϣϯ෦
 ٕज़2՝ (AWSΤϯδχΞ)
 MS෦


    MS՝αϙʔτνʔϜ • ॴଐ2ɿ
 ৴भେֶେֶӃ
 ߴΤωϧΪʔ෺ཧֶݚڀࣨ ത࢜2೥ • Twitterɿ@re__maɹfacebook: https://www.facebook.com/reima.terada
 GitHub: https://github.com/re-ma
  3. ݚڀ಺༰ • ߴΤωϧΪʔ෺ཧֶ͕ઐ໳ • εΠεɺδϡωʔϒͷڊେͳՃ଎ثͱ͔ͱ ܨ͕͍ͬͯ·͢ • ओʹ౦๺ʹ࡞Ζ͏ͱߦ͍ͬͯΔɺ
 ϦχΞίϥΠμʔܭըͷଌఆثͷR&DͰ͢ •

    ࠷ۙ͸ղੳʹJupyter NotebookΛΑ͘ ࢖͍ͬͯ·͢ ࢓ࣄͷ࿩ • AWSΛϝΠϯͰѻ͍ͬͯΔΤϯδχΞ • ΠϯϑϥΤϯδχΞ
 ͱ͘ʹOSະຬ͙Β͍͕࢓ࣄ
 ͋ͱΞʔΩςΫτΑΓ • ࠷ۙ͸ɺӡ༻ͱ͔ηΩϡϦςΟͱ͔ɺ໰͍ ߹ΘͤରԠͱ͔ɺͳΜͰ΋԰ʹ͍ۙঢ়ଶͰ ͢ • ΞϓϦέʔγϣϯ͸ۤखͰ͢
  4. 5PSP@6OJU͞Μͱ
 ஌Γ߹͖͔͚ͬͨͬ  ๭େֶͷαʔΫϧͰઌഐޙഐ
 ผʹ౰࣌͸ຆͲؔΘΓͳ͠  ࣾձਓʹͳͬͯɺͳ͔ͥ"84ίϛχϡςΟͷͭͳ͕ΓͰγϯΨϙʔϧ΁ߦ͘ ࣗෲ  

    ͦ͜Ͱɺژ౎ͷ๭ਓͱ஌Γ߹͍ʹͳΔ
 ͦͷޙಛʹؔΘͬͯͨΘ͚Ͱ͸ͳ͍  େֶʹ໭͖ͬͯͯɺ௕໺ʹ໭ͬͯ͘Δ  ژ౎ͷ๭ਓͱ౦ژͷΠϕϯτͰ͋͏
 দຊʹ஌Γ߹͍͍ΔΜͩΑͶʁ  ձͬͯΈͨΒɺ͸Δ͔ੲʹ͔֬ʹ஌Γ߹͍ͩͬͨਓͩͬͨΠϚίί
  5. 5PSP@6OJU͞Μͱ
 ஌Γ߹͖͔͚ͬͨͬ  ๭େֶͷαʔΫϧͰઌഐޙഐ
 ผʹ౰࣌͸ຆͲؔΘΓͳ͠  ࣾձਓʹͳͬͯɺͳ͔ͥ"84ίϛχϡςΟͷͭͳ͕ΓͰγϯΨϙʔϧ΁ߦ͘ ࣗෲ  

    ͦ͜Ͱɺژ౎ͷ๭ਓͱ஌Γ߹͍ʹͳΔ
 ͦͷޙಛʹؔΘͬͯͨΘ͚Ͱ͸ͳ͍  େֶʹ໭͖ͬͯͯɺ௕໺ʹ໭ͬͯ͘Δ  ژ౎ͷ๭ਓͱ౦ژͷΠϕϯτͰ͋͏
 দຊʹ஌Γ߹͍͍ΔΜͩΑͶʁ  ձͬͯΈͨΒɺ͸Δ͔ੲʹ͔֬ʹ஌Γ߹͍ͩͬͨਓͩͬͨΠϚίί ·͋େମ
 5000km͙Β͍
 ཭Ε͍ͯΔΒ͍͠
  6. 8PSE1SFTT  Ұ൪໨ʹݟ͑Δେ͖ͳมԽ͸ɺΤσΟλ͕ (VUFOCFSHʹͳΓ·ͨ͠Α  ଞͷࡉ͔͍͜ͱ͸5PSP@6OJU͞Μ͕͜ͷޙ஻Γ· ͢

  7. 8PSE1SFTTͷཁ݅Λ͓͞Β͍

  8. ֤ϛυϧ΢ΣΞͷ࠷৽൛͸ʁ  1)1    .Z42-   

    .BSJB%#    "QBDIF    /HJOY    ࠷৽൛࢖͍ͬͯ·͢ʁ
  9. ࠷৽൛Λ࢖͍ͬͯͳ͍ཧ༝  ςετ͕ࡁΜͰ͍ͳ͍  6*ͱ͔͕มΘΔ͔Β͍΍ͩ  ॻ͖௚ͤͳ͍  ͕࣌ؒͳ͍ 

    ͦ΋ͦ΋Ξοϓσʔτ͢Δҙຯ͋Δͷʁ  FUD
  10. ࠷৽൛Ͱͳ͍ͱ໰୊͕͋Δ͜ͱ  ࠷৽൛͕͍͍͜ͱ  όά͕मਖ਼͞Ε͍ͯΔ  ηΩϡϦςΟ͕޲্͍ͯ͠Δ  ࠷৽൛ͩͱ͋ΓಘΔ͜ͱ 

    ػೳ֦ு͕͋Δ  ૣ͘ͳ͍ͬͯΔ  ࠷৽൛Ͱͨ·ʹى͖Δ͜ͱ  όά͕૿͍͑ͯΔ  ػೳ͕࡟ΒΕΔ  Ͱ΋ɺ͍ͣΕݹ͍όʔδϣϯ͸αϙʔτ͞Εͳ͘ͳΔ
  11. ͳΔ΂͘ɺΞοϓσʔτ͠Α͏ ͪͳΈʹ04͸࠷৽൛Ͱ͔͢ʁ 04ͷϝδϟʔΞοϓσʔτ΍Γ͍ͨͰ ͔͢ʁ ͍ͬͦ৽͍͠؀ڥ࡞Γ·ͤΜʁ
 Πν͔Β

  12. αʔόʔΛ࡞Δͱͨ͠Β  ࣗ୐αʔόʔ  Ϩϯλϧαʔόʔ  714  Ϋϥ΢υαʔϏε

  13. ϨϯλϧαʔόʔͱΫϥ΢υͷ͕͍ͪ  ͓஋ஈ  SPPUݖݶͱ04ͷ؅ཧ  ֦ுੑ  ӡ༻ͷखؒ 

    ͱʹ͔͍҆͘ͷ͕ྑ͚Ε͹Ϩϯλϧαʔόʔ  ͦΕͰ଍Γͳ͍ͳΒͱͬͱΫϥ΢υ
  14. Ϋϥ΢υ͕Ͱ͖ͨཧ༝  ͨͿΜ   "NB[PO&$αΠτͷཪଆͷαʔόʔΛผʹͨ͠  .404ΛചΓ͍ͨ  (PPHMFੈքͰҰ൪ίϯϐϡʔλʔϦιʔεΛ࣋ͬ

    ͯΔͷΛ֎ʹͪΐͬͱചͬͯΔ
  15. Ϋϥ΢υͷ͍͍ͱ͜Ζ  ࣌ؒ՝ۚ  ϋʔυ΢ΣΞͷϝϯςෆཁ
 σʔληϯλʹ͍͘ඞཁͳ͠  ඇৗʹߴ͍֦ுੑ  ศརͳػೳ΋͋Γ

  16. Ϋϥ΢υͰ΍ͬͨΒ҆৺ͳߏ੒
 "84Λྫʹ Client Internet Mobile client Users DB Instance DB

    instance standby Instance Instance
  17. Ϋϥ΢υͰ΍ͬͨΒ҆৺ͳߏ੒
 "84Λྫʹ Client Internet Mobile client Users DB Instance DB

    instance standby Instance Instance CDN ϩʔυ
 όϥϯαʔ αʔόʔ σʔλϕʔε ڞ༗ετϨʔδ
  18. Ϋϥ΢υͰ΍ͬͨΒ҆৺ͳߏ੒
 "84Λྫʹ Client Internet Mobile client Users DB Instance DB

    instance standby Instance Instance CDN ϩʔυ
 όϥϯαʔ αʔόʔ σʔλϕʔε ڞ༗ετϨʔδ Ͱ͓஋ஈ͸ʁ ͜Ε͚ͩͰ ݄7ສ͙Β͍ ߴ͍Ͷʂ
  19. ͳΜͰ͜͜·Ͱ͢Δͷʁ  े෼ʹૣ͍ͷ͸جຊͰ
 ͦͷؾʹͳΕ͹ɺίΞ͍ۙαʔόʔͱ͔΋࢖͑Δ  ͦΕΑΓ΋ɺͱʹ͔͘ɺ
 αʔϏεΛҰॠͰ΋ࢭΊͨ͘ͳ͍͔Β  "84Ͱ΋ɺ.4Ͱ΋ɺ(PPHMFͰ΋ਅ໘໨ʹ࡞ΔͱɺΠϯϑϥ͸͜Ε͙Β͍ͷ ஋ஈ͕͢Δ


    ͦΕͰ΋ɺσʔληϯλʔʹαʔόʔΛஔ͘ΑΓ͸ָ  ͪͳΈʹɺΫϥ΢υͱ8PSE1SFTTͷ૬ੑ͸ɺɺɺ
 ࣗ෼Ͱ΍Δͷ͸ແཧʹ͸ਐΊͳ͔ͬͨΓɺɺɺ
  20. ͪͳΈʹ࠷খߏ੒͸ʁ Client Internet Mobile client Users Instance ͜Εͩͱ
 VPSͱಉ͙͡Β͍Ͱ 1000ԁऑ

    Ϩϯλϧαʔόʔͷ࣍͸ ͜Ε͙Β͍͕໨҆
 (Ͱ΋OSΑΓ্ͷ؅ཧ͸ࣗ෼
  21. ͱ͍͏͜ͱͰɺͲ͜·Ͱ΍Δ͔ߟ͑Α͏  ؾʹͳΔ఺͸͍Ζ͍Ζ͋Δ͕ɺඞཁͳΞʔΩςΫνϟ Λߟ͑Α͏  αʔόʔ୆͸ԿʹͤΑඞਢ  ͦͷ࣍ʹඞཁͳͷ͸ʁ Server

  22. ։ൃɾݕূ؀ڥ͸ඞཁͩ  Ξοϓσʔτͨ͘͠ͳ͔ͬͨཧ༝͸  ςετ͕ࡁΜͰ͍ͳ͍  ͡Ό͋ɺ؆୯ʹςετͰ͖Δ؀ڥΛ༻ҙ͠Α͏  ୆໨ͷαʔόʔ͕ඞཁͩ 

    ࢖Θͳ͍ͱ͖͸ɺ
 ຊ൪ͱಉ͡؀ڥʹ͓͚ͯ͠͹͍͍
 Կ͔τϥϒͬͨΒɺ੾Γସ͑Δ Server Server
  23. αʔόʔ͕ࢭ·ͬͨͱ͖͸Ͳ͏͢Δʁ  αʔόʔ͕ࢭ·Δཧ༝  ϋʔυ΢ΣΞނো  ఀి  ωοτϫʔΫఀࢭ 

    ఀࢭ͕ඞཁͳΞοϓσʔτ  σϓϩΠϛε  FUD  ͋ͱɺΞΫηεաଟͰԠ౴͕ͳ͘ͳͬͨͱ͖΋ಉ͡  ͜ͷ࣌ɺαΠτ͕ݟΕͳ͍͍ͯ͘ͷ͔ʁ Server
  24. 4PSSZϖʔδΛ༻ҙ͢Δ  αʔόʔ͕ࢭ·ͬͨ࣌ʹͱʹ͔͘৘ใΛग़ͤΔ৔ॴΛ༻ҙ͢Δ  τοϓϖʔδ  ࠷௿ݶͷ৘ใ  ΦϒδΣΫτετϨʔδͷαʔϏε͸͍͍ͩͨϗετ͕Մೳ "84ͷ4͸༗໊

      ੩తαΠτͷϗεςΟϯάΛར༻͢Δख΋͋Γ /FUMJGZͱ͔   ࣗಈ੾Γସ͕͑మଇ  ΋ͪΖΜɺઃఆͱएׯͷίετ͸ඞਢ
 Ͱ΋ɺͦΜͳʹ೉͘͠ͳ͍Α Server User ࣗಈͰ੾Γସ͑
  25. ඞਢͷ΋ͷ  ؀ڥΛม͍͑ͨ࣌ɺτϥϒͬͨ࣌ͷ։ൃɾݕূ؀ڥ  ࢭ·ͬͨ࣌ʹͱʹ͔͘؆қతͰ΋αΠτ͕ӾཡͰ͖Δϖʔδͱ࢓૊Έ  ͡Ό͋࣍ʹߟ͑Δͷ͸ʁ  ΞΫηεͷΩϟύγςΟΛ૿΍͍ͨ͠
 ΋͏Ϩϯλϧαʔόʔ͚ͩͰ͸ͳ͍

     ηΩϡϦςΟ͸Ͳ͏͢Δʁ
  26. ΞΫηε͕૿͖͑ͯͨ࣌ʹऔΕΔํ๏  ·ͣ͸ɺαʔόʔʹΞΫηε͢ΔτϥϑΟοΫΛݮΒͤΕ͹͍͍  $%/ ίϯςϯπσϦόϦʔωοτϫʔΫ Λར༻͢Δ  "LBNBJ $MPVE'SPOU

    'BTUMZ $MPVE'MBSFͳͲ  ੩తͳϖʔδ αʔόʔαΠυͰͷॲཧΛߦΘͳ͍͍ͯ͘ ͸ɺαʔόʔ͕ඞͣ͠΋ฦ͢ඞཁ͸ͳ͍  $%/ΛڬΉ͚ͩͰ਺෼ͷ·ͰམͱͤΔ  ͋ͱτϥϑΟοΫΛ৯͏ɺॏ͍ը૾΋αʔόʔͰॲཧ͠ͳͯ͘ྑ͘ͳΔ  ͪͳΈʹɺ ͔͠௨ৗ௨͞ͳ͘ͳΔͷͰɺαʔόʔͷηΩϡϦςΟ΋޲্͢Δ Server ίετ͸τϥϑΟοΫྔ࣍ୈ͕ͩɺ ͦ͜·Ͱߴ͘͸ແ͍ (ҰԠແྉͷ΋͋Δ
  27. ηΩϡϦςΟΛ্͛Δʹ͸  8"' 8FC"QQMJDBUJPO'JSFXBMM Λ࢖͏  $%/ʹೖΕΒΕΔύλʔϯ΋ଟ͍  )551 4

    Λ࢖ͬͨ߈ܸΛ͋Δఔ౓ःஅͯ͘͠ΕΔ  ͍҆ͷ͸$MPVE'MBSF "848"' 4VDVSJͳͲ  ͓ͨͩ͠஋ஈ͸গ͠ߴΊ େମɺ҆ͯ͘΋ԁ͙Β͍͔Β Server
  28. $%/ͱ8"'ͷ஫ҙ఺  $%/͸ಈతϖʔδ͸ෆՄ͔͠΋ಈతͳϖʔδ͕ෛՙͷݪҼͩͬͨΓɺɺɺ  ΩϟογϡͳͷͰɺଈ࣌Ͱߋ৽͍ͨ͠ͱ͖ͳͲʹ੾ΓସΘΒͳ͍Մೳੑ͕͋ Δ ؾʹͳΔ৔߹͸ɺΩϟογϡͷ੍ޚΛ͔ͬ͠Γ΍Δඞཁ͕ग़ͯ͘Δ  8"'͸ 

    ͪΌΜͱઃఆ͠ͳ͍ͱλμͷβϧ
 ෆཁͳ௨৴ΛϒϩοΫͰ͖ͳ͍  ΋͘͠͸अຐͳน
 ඞཁͳ௨৴·Ͱःஅͯ͠͠·͏
  29. ߋʹ΍Δͱͨ͠Β  ϨϯλϧαʔόʔͰͰ͖ͳ͍෦෼ʹखΛೖΕΔ  ίϯςφԽ  ৑௕ߏ੒Ұؾʹίετ͕͕͋Δ

  30. ίϯςφ  ྑ͍ͱ͜Ζ  ຊ൪؀ڥͱ։ൃ؀ڥΛಉ͡ʹͰ͖Δ  ؀ڥߏஙָ͕  ࣦഊͨ͠Β؆୯ʹࣺͯΒΕΔ 

    ։ൃ؀ڥͱຊ൪؀ڥͷ04͕ҧͬͯ΋0,  ѱ͍ͱ͜Ζ  04ଆ͸ผͰ؅ཧ͢Δඞཁ͋Γ  ͪΌΜͱӡ༻͢Δʹ͸ɺίϯςφͷ஌͕ࣝඞཁʹ
  31. ৑௕ߏ੒ Client Internet Mobile client Users DB Instance DB instance

    standby Instance Instance CDN ϩʔυ
 όϥϯαʔ αʔόʔ σʔλϕʔε ڞ༗ετϨʔδ ࢭ·Βͳ͍ߏ੒͕࡞ΕΔ ίετ͸૬Ԡʹߴ͍
  32. ͜͜·Ͱࣗ෼Ͱ΍Δ͙Β͍ͳΒ  Ϛωʔδυͷ8PSE1SFTTͷαʔϏε΋͋ΔΑʂ  ηΩϡϦςΟͱ͔ӡ༻ͱ͔ɺ
 ͋Μ·Γߟ͑Δඞཁͳ͠  ίετ͸ͦΕͳΓ  جຊతʹ͸ɺ͋·Γෳࡶͳํʹߦ͔ͳ͍ͳΒɺ


    ͕ͬͪ͜Φεεϝ  ͦΕҎ্ʹΧελϜͯ͠΍Γ͍ͨͳΒɺΫϥ΢υͬͯײ͡Ͱ
  33. ·ͱΊ  8PSE1SFTTʹ߹Θͤͯ؀ڥΛ৽͘͢͠Δ͜ͱ΋ߟ͑Α͏  ΋͠ϨϯλϧαʔόʔͰ΍Δʹͯ͠΋   ։ൃɾݕূ؀ڥΛ༻ҙ͢Δ  ࢭ·ͬͨͱ͖ͷͨΊʹɺ4PSSZϖʔδ͸࡞͓ͬͯ͘

     ෛՙ্͕͕ͬͨ࣌ʹ͸ɺΫϥ΢υ΋બ୒ࢶ  Ͱ΋ɺखͬऔΓૣ͍ͷ͸ϚωʔδυαʔϏεͩͬͨΓ