Slide 1

Slide 1 text

レンタルサーバの設定で できるWebサイトの高速化 さくらインターネット株式会社 技術本部 谷口元紀

Slide 2

Slide 2 text

レンタルサーバで 「チューニング」による高速化は 可能なのか?

Slide 3

Slide 3 text

(設定値とかをいじると言う意味では) 無理です

Slide 4

Slide 4 text

なぜ無理なのか?  管理者権限がない(から色々できない)  スペックなどをいじることができない  共用サーバなので機能が制限されている 4

Slide 5

Slide 5 text

では高速化するにはどうすれば?

Slide 6

Slide 6 text

とその前に

Slide 7

Slide 7 text

高速化のためには ボトルネックの把握が必要

Slide 8

Slide 8 text

Webサイトの表示速度ボトルネック  PageSpeed Insightsで分析してみる  実は超巨大画像が使われている場合など、 サーバ側ではどうしようもない部分が大多 数。  ではサーバ側のボトルネックとは? 8

Slide 9

Slide 9 text

Webサイトが表示されるまでの 流れを知っておきましょう

Slide 10

Slide 10 text

ウェブサイト表示時の流れを分解すると 10 ページが見え始めるのに これぐらいかかる DNSルック アップ TLSハンド シェイク TTFB ファイル ダウンロード

Slide 11

Slide 11 text

ウェブサイト表示時の流れを分解すると 11 実際の流れはこんな感じになります。 ※DNS Lookup〜SSLまでは2回目以降キャッシュさ れます。

Slide 12

Slide 12 text

DNSルックアップとは  ドメイン(example.comなど)の名前を解 決するためにかかる時間  DNSリソースレコードのTTLを短縮しすぎ なければOK 12

Slide 13

Slide 13 text

TTLとは?  これ 13

Slide 14

Slide 14 text

TLSハンドシェイクとは  httpsサイトが暗号化通信を開始するための ご挨拶的なもの  基本的に短縮する手段は無し  失効管理のサーバが国内にある証明書を選 ぶぐらい 14

Slide 15

Slide 15 text

TTFBとは  Time To First Byteの略  サーバがページのHTMLを送ってくるまでの 時間  サーバの性能やページの重さによって大き く変わる 15

Slide 16

Slide 16 text

これがTTFB 16 ページのHTMLの 帯みたいなやつを クリック

Slide 17

Slide 17 text

ページ表示速度はTTFBではなく Time to First Meaningful Paint (意味のあるコンテンツの初回ペイント) と言われますが、TTFBはそこに 含まれるのでとても重要。

Slide 18

Slide 18 text

そして

Slide 19

Slide 19 text

TTFB以外の部分はサーバ設定で はいかんともしがたい

Slide 20

Slide 20 text

TTFBへ影響のあるもの  TTFBはサーバパフォーマンスの影響を多分に受ける。  PHPのバージョンでも違う。  重いCMSを利用していると特に影響大。  静的HTMLを配信するCMS等は影響小。 20

Slide 21

Slide 21 text

高速化のために 特にやりたいこと

Slide 22

Slide 22 text

1.PHPのバージョンアップ

Slide 23

Slide 23 text

PHPのバージョン変更方法  ポチるだけ  もっかいポチったら元に戻る

Slide 24

Slide 24 text

簡単!

Slide 25

Slide 25 text

PHPのバージョン変更方法  PHP7系を選択して保存するだけ

Slide 26

Slide 26 text

PHPのバージョン変更方法  レンタルサーバ各社、概ね変更可能  ドメインによって選べるところもアリ  2~3倍の高速化メリット (5系→7系の場合)

Slide 27

Slide 27 text

PHPのバージョン変更方法→デメリット  上位バージョンのPHPへ対応する必要あり  検証や仕様変更の手間

Slide 28

Slide 28 text

ポイント  現段階でPHP5系のみ対応のプラグインや テーマなどは開発が停止していることが多  セキュリティ的にも望ましくないので早急 に利用停止を検討する  さくらのレンタルサーバならステージング 環境で楽ちん検証が可能

Slide 29

Slide 29 text

2.WordPressプラグインの精査

Slide 30

Slide 30 text

多機能プラグインを入れるだけで… 30 921ms→1680ms とスピードダウン ・さくらのレンタルサーバ ・WordPress ・PHP7.2モジュールモード ・アクセス解析などができる プラグインをインストール

Slide 31

Slide 31 text

試しにPHP5.6(CGIモード)に落としてみると 1680ms→4670ms 4倍程度遅い ・さくらのレンタルサーバ ・WordPress ・PHP5.6CGIモード ・アクセス解析などができる プラグインをインストール

Slide 32

Slide 32 text

なぜプラグインを入れると 重くなるのか?

Slide 33

Slide 33 text

みなさんの周りにいませんか? 「余計なアプリを入れすぎるとPCが 重くなるよ!」おじさん

Slide 34

Slide 34 text

PCが重くなるおじさんの発生要因  以前のPCはCPUやメモリリソースが少ない  余計なプロセスが動いてるとPCが重くなる  極限までアプリケーションを切り詰めるモ チベーションになる

Slide 35

Slide 35 text

PCが重くなるおじさんの発生要因  昨今のPCは余裕があるので気にしなくてよ くなった!  レンタルサーバはどうなのか?

Slide 36

Slide 36 text

PCと同様に使いようによっては 重くなる

Slide 37

Slide 37 text

なぜレンサバも重くなるのか  安価にサーバサービスを提供できるように リソースを共有している  一人あたりのリソースは少なくなる  もちろん、以前よりは性能は上がっていま す!

Slide 38

Slide 38 text

というわけで

Slide 39

Slide 39 text

プラグインの悪影響  基本的にWordPressはデータベースからデータを引っ張って きて何かを表示する  もしくは何かしらの設定値(DBにある)に基づいて動的な処 理をする  関連投稿とか、アクセス解析とか、ショートコードとか  つまり、データベースへのアクセスが大量に発生する 39

Slide 40

Slide 40 text

プラグインの悪影響②  特定ページだけならまだいいけど…  全部のページで効果/影響のあるプラグインを入れると  全部のページを開くときにDBリクエストが大量に発生する  ページのHTML生成に時間がかかる 40

Slide 41

Slide 41 text

プラグインだけじゃない!

Slide 42

Slide 42 text

3.テーマの負荷見直し

Slide 43

Slide 43 text

例えば…  ヘッダーロゴをテーマに登録している  ヘッダーを読み込むたびにDBにロゴのパス を聞きに行く  DBアクセスが輻輳して重くなる 43

Slide 44

Slide 44 text

プラグインとかパスとか 精査とかめんどいんですが。。

Slide 45

Slide 45 text

よし、 ハードコーディングしよう!

Slide 46

Slide 46 text

ハードコーディングとは  例)テーマファイルに直接ヘッダロゴのパ スを書く!  管理面倒じゃない? →はい。WordPressの良さを殺します。 46

Slide 47

Slide 47 text

ハードコーディングはやめよう!

Slide 48

Slide 48 text

4.なら キャッシュを使いましょう!

Slide 49

Slide 49 text

 PHP&MySQLのページ表示までの処理 ページが表示されるまでの処理の流れ 49 ※あくまでざっくりの説明です。 HTTPリクエスト PHP処理 データベース 処理 PHP処理 HTML出力 サービスサーバ処理 DBサーバ処理 サービスサーバ処理 ネ ッ ト ワ ー ク ネ ッ ト ワ ー ク

Slide 50

Slide 50 text

 何かしらキャッシュを使った場合 ページが表示されるまでの処理の流れ 50 HTTPリクエスト キャッシュ処理 HTML出力 サービスサーバ処理 ※あくまでざっくりの説明です。

Slide 51

Slide 51 text

キャッシュの種類  OPCache  APCu  オブジェクトキャッシュ  ページキャッシュ  ブラウザキャッシュ  CDN(Content Delivery Network)  詳しくは 51 キャッシュの種類 さくらのナレッジ 検索

Slide 52

Slide 52 text

キャッシュプラグインを使うだけで… 52 1680ms→133ms 格段にスピードアッ プ! ・さくらのレンタルサーバ ・WordPress ・PHP7.2モジュールモード ・アクセス解析などができる プラグインをインストール ・WP Super Cache使用

Slide 53

Slide 53 text

キャッシュだって所詮 レンサバのスペック次第でしょ?

Slide 54

Slide 54 text

ではCDNを使ってみましょう!

Slide 55

Slide 55 text

CDNを経由すると… 55 さらにスピードアッ プ! ・さくらのレンタルサーバ ・WordPress ・PHP7.2モジュールモード ・アクセス解析などができる プラグインをインストール ・さくらインターネットのCDN ウェブアクセラレータを使用

Slide 56

Slide 56 text

同じサイトのデータでも 環境/設定によって これだけTTFBが変わります。

Slide 57

Slide 57 text

CDNのメリット  レンサバの引っ越しがいらない  使いたいときだけ使える  帯域上限が無い(もちろん限界はあり)  ハイスペックサーバに乗り換えるより安い (こともある) 57

Slide 58

Slide 58 text

CDNのデメリット  設定がややこしい(慣れれば一発)  キャッシュ事故のリスク  従量課金青天井 58

Slide 59

Slide 59 text

処理能力が高いサーバを選ぶ と言う選択肢もありますが…

Slide 60

Slide 60 text

速いサーバを選ぶには?  使って色々試してみないとわからない。 お試し期間でTTFBを見てみるのが有効。 時間帯も変えると◎  ボトルネックは人それぞれ。 同じサイトコンテンツで試すのが非常に重要。 自分のサイトをコピーして(ドメインは違うので OK)試す。 60

Slide 61

Slide 61 text

一概にここが速い!とは言えない コンテンツによって異なる

Slide 62

Slide 62 text

恒常的にアクセスが多くなければ CDNの方がお得になることも

Slide 63

Slide 63 text

CDNってお高いんでしょ?

Slide 64

Slide 64 text

CDNの価格  さくらのCDN ウェブアクセラレータでは1GiB5円 (税込)  GB→GiB計算を含み、GB×0.93×5で月間費用が見積 りできます。 64

Slide 65

Slide 65 text

寺社仏閣(初詣)、祭り・イベント、 学校(合格発表)等の 需要が不定期なサイトは

Slide 66

Slide 66 text

高負荷に備えて高いサーバを借りる より需要期にCDNを使う方が安い! CDN さくらのナレッジ 検索

Slide 67

Slide 67 text

帰ったら試してみましょう!  Chrome Dev Tool でTTFBの確認  使っているPHPバージョンの確認  使ってないプラグインなどの精査  キャッシュプラグインの導入検討 (キャッシュのデメリットに注意する)  ここぞと言うときのためにCDNを検討 67

Slide 68

Slide 68 text

ご質問ありましたら…  お気軽に  さくらインターネットでの担当:サービス企画 レンタルサーバ/SSL証明書/ドメイン/CDN

Slide 69

Slide 69 text

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