Slide 1

Slide 1 text

WordPress+CDNでドはまりした話 2017年10月7日 小島健司 WordBench新潟

Slide 2

Slide 2 text

自 己 紹 介 小 島 健 司 Twitter https://twitter.com/nu_nrgist Facebook https://www.facebook.com/kenji.kojima.96 ファーストサーバで2001年くらいから働いています。 CMS コミュニティ: WordCamp Kansai 実行委員 WordBench 大阪 モデレーターの一員

Slide 3

Slide 3 text

社名 ファーストサーバ株式会社 FirstServer, Inc. 所在地 大阪市中央区安土町1丁目8番15号 野村不動産大阪ビル3F 事業開始 1996年7月 資本金 3億6,357万円 主要株主 ヤフー株式会社 事業内容 レンタルサーバーサービス ドメイン名登録サービス クラウドサービス 会 社 紹 介

Slide 4

Slide 4 text

クラウド型レンタルサーバーZenlogic

Slide 5

Slide 5 text

メモリやCPUなどをデータ移行なしに サーバーリソースを強化できる

Slide 6

Slide 6 text

0 100 200 300 400 500 600 700 800 900 1000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 50 100 150 200 250 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ずっとアクセスが多いのか 一時だけすごく多いのか

Slide 7

Slide 7 text

今日の内容 前半:急なアクセス増の事例と レンサバでの対処 後半:WordPress+CDNでドはまりした話

Slide 8

Slide 8 text

急激に増えるアクセスの事例

Slide 9

Slide 9 text

http://fusenucyu.com/ 風船で宇宙撮影している方のサイト

Slide 10

Slide 10 text

2015/10/18放送 「情熱大陸」砲!!

Slide 11

Slide 11 text

 サーバリソースUP  サーバ台数追加  CDN アクセスが増えた時の対処例

Slide 12

Slide 12 text

 サーバリソースUP メモリやCPUを増やすとか 専用サーバにするとか アクセスが増えた時の対処例

Slide 13

Slide 13 text

サーバ台数追加 • 同じコンテンツのサーバを用意して 振り分け DNSラウンドロビン ロードバランサー →データの同期のしくみを検討する

Slide 14

Slide 14 text

CDN コンテンツデリバリネットワーク (content delivery network) 全国に設置されたサーバから キャッシュで配信 1台

Slide 15

Slide 15 text

CDN 元々のサーバー 最初のアクセスは 元サーバで返す &キャッシュ保持 次からはCDNで キャッシュで返す

Slide 16

Slide 16 text

「情熱砲」にはこんな装備で • リソースの追加 • 諸事情で 画像のみCDN配信

Slide 17

Slide 17 text

お詫び・経緯の説明など炎上系で アクセスが増えた時 数日前から 準備できるものではない ケース

Slide 18

Slide 18 text

さすがに事例は・・・

Slide 19

Slide 19 text

 ノーガード戦法  コンテンツを軽く お詫び・経緯の説明などで アクセスが増えたケース対処例 対応を検討する • 嵐が過ぎるのを待てば 大丈夫なケース • サイトが見れなくて 更に炎上するリスクも検討

Slide 20

Slide 20 text

イベント・お祭り系サイト

Slide 21

Slide 21 text

イベント・お祭り系 横浜開港祭 中津川 THE SOLAR BUDOKAN 2015 世界コスプレサミット

Slide 22

Slide 22 text

イベント・お祭り系 • アクセスは多いが突発的なのは あまりない ※トラブル、出演者などによる • 当日は参加者のスケジュール確認が多い →当日の様子などはSNSや動画サイトに 分散される • イベント前後以外は極端にアクセス減 イベント前にリソースUP+CDNがいい感じ

Slide 23

Slide 23 text

バズり系

Slide 24

Slide 24 text

俺の嫁がかわいい

Slide 25

Slide 25 text

まずはSNSから

Slide 26

Slide 26 text

ノーガードだとこうなります

Slide 27

Slide 27 text

Y!砲も

Slide 28

Slide 28 text

ラジオも侮れない!

Slide 29

Slide 29 text

高アクセス対策の費用など • レンタルサーバでリソースUP、コースUP • 複数台 →だいたいネットワーク転送量は無料 突発的アクセスにあわせると 普段はオーバースペック • CDN →転送量課金 =ずっと使っているとレンサバで不要な 転送量も必要になる。 逆に準備したけどアクセス無ければかからない。

Slide 30

Slide 30 text

 もしもバズったらどうするか考えておく  費用も検討  事前の相談、準備は大切 突発でどうしようもない時は コンテンツを極力軽く!  相談できるところをもっておく

Slide 31

Slide 31 text

イイ感じにアクセスさばいてくれるCDN

Slide 32

Slide 32 text

いろいろなサービスがあります

Slide 33

Slide 33 text

JETPACKにあるPhoton

Slide 34

Slide 34 text

CDN 元々のサーバー 最初のアクセスは 元サーバで返す &キャッシュ保持 次からはCDNで キャッシュで返す

Slide 35

Slide 35 text

CDN導入ステップ  サービスを申込む  設定する オリジンサーバやキャッシュ時間などの設定  DNS設定 cnameでCDNに向ける

Slide 36

Slide 36 text

CDN導入ステップ  サービスを申込む  設定する オリジンサーバやキャッシュ時間などの設定  DNS設定 cnameでCDNに向ける 静的ページでやったこと あったので、WordPressでも すんなりできると思ってたが

Slide 37

Slide 37 text

DNSでハマる ハマりポイント①

Slide 38

Slide 38 text

cname www.example.jp cname cdn.hoge.example.com CDNサービスに 向ける

Slide 39

Slide 39 text

www.example.jpでなくて example.jpで正規化しています。

Slide 40

Slide 40 text

Zone Apex (Naked Domain) ホスト名無し example.jp のこと

Slide 41

Slide 41 text

RFC1912 CNAMEレコードは他のデータと共存できない A CNAME record is not allowed to coexist with any other data

Slide 42

Slide 42 text

Aliasレコードなるサービスがあった!!

Slide 43

Slide 43 text

Dozens https://dozens.jp/ 1,000円/月のプランから Aliasレコードが使える

Slide 44

Slide 44 text

ゲヒルン https://www.gehirn.jp/ 1日2円/1ゾーンあたり

Slide 45

Slide 45 text

その他のDNSサービス • Route53 AWSのインスタンスのみ可 • CloudFlare 無料CDNサービスの会社

Slide 46

Slide 46 text

ハマりポイント② キャッシュされない・・・

Slide 47

Slide 47 text

Cache-Controll: no-cache, max-age=0

Slide 48

Slide 48 text

キャッシュされてるような されてないような・・・ ハマりポイント③

Slide 49

Slide 49 text

プラグインMulti Device Switcher https://ja.wordpress.org/plugins/multi-device-switcher/

Slide 50

Slide 50 text

「URL」に対してキャッシュデータを管理 ↓ 「URL + User-Agent」に対してキャッシュ データを管理 Vary: User Agent

Slide 51

Slide 51 text

Mozilla/5.0 (Linux; U; Android 4.0.1; ja-jp; Galaxy Nexus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 Mozilla/5.0 (Linux; U; Android 4.0.3; ja-jp; URBANO PROGRESSO Build/010.0.3000) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 Mozilla/5.0 (Linux; U; Android 4.0.3; ja-jp; Sony Tablet S Build/TISU0R0110) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 Mozilla/5.0 (Linux; U; Android 4.0.4; ja-jp; SC-06D Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 Mozilla/5.0 (Linux; U; Android 4.1.1; ja-jp; Galaxy Nexus Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Slide 52

Slide 52 text

キャッシュされてるけど・・・ ハマりポイント④

Slide 53

Slide 53 text

rank作成のための DB負荷

Slide 54

Slide 54 text

常時SSL化したい ハマりポイント⑤

Slide 55

Slide 55 text

CDNに証明書インストールする必要! 証明書によっては ダメなのも。 ダメなやつだったら追加予算。 ※最近はだいたいOK

Slide 56

Slide 56 text

まとめ • しっかりと計画を立てる • ホスト名の有無(wwwなど)は非常に重要 • プラグインに気を付ける • CDNサービスも様々、仕様を確認する 最近のサービスは今回紹介したトラブルを 回避するような機能が付いてるのもある

Slide 57

Slide 57 text

ご清聴ありがとうございました