WordPressで大規模なメディアサイトを作ることになった新米フリーランスの元OLがどうやって立ち向かっていくかという話題です。
͍ͨʔΜʂͱͭͥΜେنαΠτΛ࡞Δ͜ͱʹͳͬͨʂෳαʔόରԠϓϥάΠϯͷհWordBench Tokyo 2017/03(C) Takahashi Fumiki
View Slide
୭ʁ• ߴڮจथͰ͢ɻ• খઆՈͰ͢ɻ• ഁ໓දऔక• WordCamp౦ژ ڈͷҕһ• ϓϥάΠϯ࡞ऀ
ઃఆϑϦʔϥϯεͱͯ͠ಠཱ͔ͯ͠Βɻ8PSE1SFTTͷαΠτΛ࡞Δ͓ࣄ׳Ε͖ͯͨΘ
͋Δ……͑ͬɺ͋ͷ༗໊ϝσΟΞαΠτ͔Βґཔʁʔɺ8PSE1SFTTͳΜͩ͜Ενϟϯε͔ʂʁ
ཁ݅• ݄ؒPV3,000ສɺίϯςϯπ10ສ݅΄Ͳ• αʔόΛมߋͯ͠΄͍͠• ΞΫηε͕Ұ൪ଟ͍ͷΠϕϯτ͕͋Δ8݄• ೖߘը໘ͷΧελϚΠζ͕͕ͬͭΓ͋Δ
ϐϯνͲ͏͠Α͏ʜʜ
ઓུ
େنαΠτͷཁ݅• ΄ͱΜͲෛՙରࡦ͚ͩ• ϨϯλϧαʔόʔͰ͍ͬͯΔWordPressͱಉ͡Α͏ʹಈ͘ͱϕετ• ʮෛՙͷߴ͞ʯͱʮσʔλͷଟ͞ʯʹҙ͢Εେৎ
ී௨ʹ͑Δͭ• Image WidgetΈ͍ͨͳɺγϯϓϧͳͷ• ΞϨόϯευΧελϜͳΜͪΌΒΈ͍ͨͳೖߘը໘ΛΧελϚΠζ͢Δͭ
͑ͳ͍Մೳੑ͕͋Δ• Search RegexΈ͍ͨͳσʔλϕʔεʹର͢ΔҰׅॲཧΛߦ͏ͭ• Search EverythingΈ͍ͨͳݕࡧܥςετڥͩͱಈ͘ͷͰҙʂ
αʔόߏ
ෳߏ• MemcachedαʔόΛཱͯͯɺObjectCacheͳͲΛͦ͜ʹอଘ• WebαʔόϩʔυόϥϯαʔͷԼʹஔ͖ɺՁʹѻ͏• NFSʹWordPressΛ·Δ͝ͱஔͯ͠ɺͯ͢ͷWebαʔό͕ͦΕΛࢀর
• DBෳߏʹ͢Δ߹ɺϚελʔ-εϨʔϒܕͷΫϥελʹͳΔ• NFSԽ͠ͳ͍ͱSPOFʢ୯ҰোʣʹͳΔͷͰҙ• CDNͰ͖Ε͋ͬͨ΄͏͕͍͍
AWS͋Δ͋Δ• Elastic File System͍ͭ͑ΔΑ͏ʹͳΔͷʁɹͳΒͳ͍ͷʁ• Auto Scaling͕ؒʹ߹Θͳ͍ʢεύΠΫͨ͠Β͏͍ʣ• సૹྔ͕ҙ֎ͱߴ͍• CPUΫϨδοτͱ͍͏ڪΖ͍֓͠೦
େنαΠτͷཱ͓ͪϓϥάΠϯ
Memcached ObjectCache• Object CacheͷอଘઌΛMemcachedʹͯ͘͠ΕΔ• Memcachedͱͯ͠Elastic CacheΛ͏ͱḿΔ• ࣮υϩοϓΠϯ
BatCache• ϖʔδΩϟογϡϓϥάΠϯ• Object CacheΛΩϟογϡͷอଘઌʹ͏• αʔό͕Կ૿͑ͯେৎ
HyperDb• ෳͷMySQLαʔόʹରͯ͠ɺͲΕ͕εϨʔϒͰͲΕ͕Ϛελʔ͔Λผ• 1ͪΐ͍ͷؒɺutb8mb4(WP4.4Ҏ߱)ʹରԠͯ͠ͳ͔ͬͨͷͰ͑ͳ͔͕ͬͨɺରԠͨͬ͠Ά͍• ࠓޙඍົͳؾ͕͢Δʢݸਓͷײʣ
Nephila clavata• ը૾ϑΝΠϧΛS3ʹ্͛ͯ͘ΕΔͷͰɺCDNΛಋೖ͍ͯ͠ͳ͍߹ָνϯ
WP-CLI• ϓϥάΠϯͰͳ͍• σʔλྔ͕ଟ͍αΠτͷ߹ɺόονॲཧతͳͷ͚͜Δ͜ͱ͕ଟ͍ͷͰɺͦ͏͍͏߹ίϚϯυϥΠϯͰ• ΩϟογϡͰؾ͕ڰ͍ͦ͏ʹͳͬͨΒwp cache flush
େن͋Δ͋Δ
ॏཁͳϞϊΛফ͢• αʔό͕ଟ͗ͯ͢ɺ໎ࢠʹͳΔ• σʔλϕʔεΛؒҧ͑ͯফͯ͠͠·͏• IPΞυϨεΛมߋ
αΠτ͕མͪΔ• ༧ଌෆՄೳͳλΠϛϯάͰͷ͍͢͝ࣄ͕݅ى͖ΔͱɺͲ͏͠Α͏ͳ͍ঢ়گʹͳΔ• ͍͍ͩͨٳɾૣேͩͬͨΓ͢Δ
͓ΘΓϐϯννϟϯεʂը૾ఏڙɾ͍Β͢ͱ
એ
• ionicͱWP REST APIͰϞόΠϧΞϓϦΛ࡞Δษڧձ(wpionic.tokyoͱ͔ʁ)• ϓϥάΠϯ·ͨςʔϚͰ͓ۚṶ͚Λ͢Δษڧձʢ$100M Babiesͱ͔ʁʣ• ຑΛ͢Δษڧձ