1
WordCamp Tokyo 2016 LT
Web制作・運用会社に
必要なCDNサービスとは?
(WordPressのCDN化を踏まえて)
株式会社Jストリーム
事業推進部 佐藤 太一
2016.9
自己紹介
1
• 経歴
• 1980/09 山口県光市 生
• 2003/03 鹿児島大学 卒
• 2003/04 Jストリーム(AS24253)に入社
~新卒で入社してそのまま、現在も在籍
• 業務内容
• セールス兼インフラエンジニア
• CDNのインフラ全般の構築・運用・管理
• CDN情報サイト: https://tech.jstream.jp/
• その他
• インターネットコミュニティ活動も積極的に実施中
JANOG38 Meeting 実行委員長(7/6-7/8@沖縄)
• 趣味:楽器(ファゴット)
WordPress+CDNでWebサイト運営中
http://www.aoyama-symphony.com/
CDN(Content Delivery Network)とは
2
CDN
Webサーバ
エンドユーザー
エンドユーザー
多数のコンテンツ配信キャッシュサーバで構成された ネットワークのことです。
Webサーバのデータを、CDNが一時的に保存(キャッシュ)し、
Webサーバにかわってエンドユーザーへ最短経路で効率的に配信します。
エンドユーザー
エンドユーザー
管理者
CDNの基本ニーズ:ピーク対策
 Yahooトピックス、テレビ放送、LINE告知等は通常時の数十倍
~数百倍のアクセスが発生します。クラウド事業社の提供する
オートスケール機能では、対策が完了するまでに数分~数十分
が必要となり、アクセス集中が発生している=本当に誘導を行
いたい間での対応が完了しません
LINEニュースに広告出稿掲載時のデータ
アクセス数
925,000req/min (平均15,000req/sec)
トラフィック
8.7Gbps
ピークは15分間程度
3
CDN:中小規模サイトでの利用が増加中
4
クラウドのCDNオプション(J-Stream調査)
日本のCDNマーケットシェア(JPドメイン数ベース)
2014年4月
2016年9月
CloudFrontが2年半で5倍(5→28%)CloudFrontが2年半で5倍(5→28%)
WordPressはアクセス集中に弱い!?
 WordPress自体は元々単体のサーバ上で動作する想定で作られており、
大規模アクセスやCDN化をあまり考慮していません
 標準状態(キャッシュプラグインを入れていない状態)では、ユーザ
アクセス毎にデータベースに対し毎回アクセスが発生します
CDNを導入する事で、既存の設備にあまり手を加えずに
Webサーバの負荷軽減・アクセス集中対策を実施する事が出来ます
5
ブラウザ
サーバ
データベース
(MySQL等)
Webサーバ
(Apache等)
Word
Press
WordPressをCDN化する方法
 WordPressのCDN化には多くのノウハウが必要です
 WordPress自体は元々単体のサーバ上で動作する想定で作られてお
り、大規模アクセスやCDN化を考慮して作られておりません
 WordPressのCDN化には大きく分けて3つのパターンが
あります
レベル1:イメージのみをCDN配信する
レベル2:サイト全体をCDN配信する
レベル3:レベル2+オリジン秘匿化
6
レベル1、レベル3の詳細は以下を参照
https://tech.jstream.jp/blog/meeting/wordcamptokyo2016/
レベル2:サイト全体をCDN配信する ①
 サイト全体をCDN化する方法です
 この方法は、Yahooトピックス掲載、LINE企業アカウントからのアク
セス誘導、TVに取り上げられた場合、等の瞬間的なピークトラ
フィック対策も可能となります
 HTML/PHPもCDNでキャッシュするため、サイト全体の表示高速化
が見込めます
 ただし、単純にCDN化を行っただけでは様々な問題が発生します
 レベル2:イメージ図
7
CDN
Webサーバ
Webページを含む
全ファイル www.sample.jp
レベル2:サイト全体をCDN配信する ②
 発生しうる問題と回避方法
 記事がキャッシュされず、オリジンサーバの負荷が高いまま
 原因
• WordPressはHTTPヘッダにcache-control:no-cache,no-storeを付与する事が多い。
(テーマによる。デフォルトのTwenty*シリーズは軒並み入ってます)
• これらの値が入っていると多くのCDNサービスではCDNが有効に働かない。
 回避方法
• 1.推奨:WordPressが出力するHTTPヘッダ情報をCDN側で無視するオプションを利用
• 2.ヘッダ情報を.htaccess等で上書き
 記事の投稿がうまくいかない(「メディアを追加」ボタンを押しても反応し
ない等)
 原因
• キャッシュすべきでないファイルをキャッシュしてしまう(例:/wp-admin/)
 回避方法
• 1.推奨:CDN側で特定ディレクトリをキャッシュしないようにする
• 2.オリジンサーバ側で上記をキャッシュしないヘッダを挿入
8
レベル2:サイト全体をCDN配信する ③
 発生しうる問題と回避方法(続き)
 UserAgentによるサイト出し分けを行っていると正常に表示されない
 原因
• CDNは「同一URLで別のものを出し分ける」事が出来ないor苦手
• レスポンシブの場合は問題なし
• “Multi Device Switcher”等で出し分けを行っている場合は注意が必要
 回避方法
• CDN側でUserAgent出し分け機能を利用する
• この機能を持っていないCDNも多数あり
 CDN経由でサイトにアクセスしているとWebサーバに誘導されてしまう
 原因
• WordPressは、生成するリンクに、”WordPressアドレス”を使用したフルパスを利用する
 回避方法
• WordPressの設定で” WordPress アドレス (URL)”をCDNに向けるドメインのURLを入力
• CDN側ではサーバのグローバルIPアドレスにHostヘッダを付与した上でコンテンツを取得
• この機能が利用可能かは事前に確認した方が良い
 その他
 導入しているプラグインによって様々な問題が発生する可能性あり
 ある程度は仕様を確認すれば分かるが、実際にはテストして試すしかない
9
 アクセスのピーク対策ならCDN!
 WordPressは構造上アクセス集中に強くない
 CDN化を行う事で既存サイト・設備にあまり手を加えず
にアクセス集中に強くする事が出来る
 WordPressのCDN化にはいくつかのパターンがあるが、
サイト全体のCDN化には多くのノウハウが必要となる
まとめ:Web制作・運用会社に必要なCDNサービスとは?
10
J-Stream CDNext 販売パートナー募集中
11
詳細はスポンサーブースまで!!

Web制作・運用会社に必要なCDNサービスとは?