wordpressサイトをnginxとsoftlayerで高速化する

18
© SIOS Technology, Inc. All rights Reserved. WordPress サイトを Nginx と SoftLayer で 高速化する Kazuhisa Hara SIOS Technology, Inc. SoftLayer Tokyo Meetup 2015/08/04 @Bit-isle GroupLounge

Upload: kazuhisa-hara

Post on 17-Aug-2015

1.113 views

Category:

Technology


8 download

TRANSCRIPT

© SIOS Technology, Inc. All rights Reserved.

WordPress サイトを Nginx と SoftLayer で 高速化する

Kazuhisa Hara SIOS Technology, Inc.

SoftLayer Tokyo Meetup 2015/08/04 @Bit-isle GroupLounge

© SIOS Technology, Inc. All rights Reserved.

原 和久 KAZUHISA HARA サイオステクノロジー株式会社 OSS テクノロジーセンター/エンジニア @kazuhisya kazuhisya kazuhisahara kazuhisya 第9章 NginxでハイパフォーマンスWordPress in SoftLayer http://thinkit.co.jp/story/2015/05/01/5472

2

© SIOS Technology, Inc. All rights Reserved.

今日のお題

3

© SIOS Technology, Inc. All rights Reserved. 4

Web サイトを爆速 にしたい!

ひとまとめに高速化したいと言っても観点は色々 • js とか レンダリング順とか・・・ • DB の高速化とか H/W とか・・・ • ネットワークとか AP サーバとか・・・ • チューニングとか・・・

今日は SoftLayer との連携周りがメインターゲット

https://pixabay.com/en/space-shuttle-lift-off-liftoff-nasa-992/

© SIOS Technology, Inc. All rights Reserved.

“Nginx で高速化” のアプローチ

基本は『キャッシュとスケールアウト』

5

クライアント

ロードバランサ +

キャッシュ

アプリケーションサーバ

データベースサーバ

スケールアウト

キャッシュ

© SIOS Technology, Inc. All rights Reserved.

キャッシュ

Nginx のキャッシュの基本的なアプローチ

キャッシュがない場合はバックエンドに聞きに行く 一度バックエンドに聞きに行った URI はキャッシュする

キャッシュがある場合は即座にキャッシュを返す 単位ファイルだけでなく、php(FastCGI) などの動的に作られるページも対象

6

クライアント

リバプロ キャッシュ

バックエンド アプリケーション

キャッシュが あれば即座に返

© SIOS Technology, Inc. All rights Reserved.

キャッシュするときのポイント

キャッシュストアはディスクに置かれる

複数台用意する場合は同期させた方がベター

memcached もキャッシュストアにもできる スケールアウトはしやすくなるが・・・

SSL セッションキャッシュもできるよ

コンテンツや URI だけでなく、SSL のセッションもキャッシュできる

SSL を使う場合は積極的に使いたいところ

7

© SIOS Technology, Inc. All rights Reserved.

キャッシュするときのポイント

キャッシュの消し方も検討しておこう

有効期限で消させる?

WordPress のプラグイン/ドロップインなどで消させる? やり方は色々

別途 purge モジュールが必要になる場合もある

キャッシュがどこにあるかにも注意!

8

© SIOS Technology, Inc. All rights Reserved.

スケールアウト

Nginx のスケールアウトの基本的なアプローチ

L7 ロードバランサとして振る舞い、AP をスケールアウトさせる

TCP ロードバランサとして振る舞い、DB などをスケールアウトさせる

9

クライアント

バックエンド アプリケーション

データベース

L7 LB TCP LB

© SIOS Technology, Inc. All rights Reserved.

ロードバランサ・・・?

SoftLayer でも LB のサービスがあったような・・・?

あります!

ローカル LB、NetScaler VPX アプライアンス、専用 LB…

Nginx LB の立ち位置は?

SoftLayer 標準の LB と、NetScaler などの高価なアプラインスの間くらいを提供するよ

(性能が許す限り)接続数無制限、キャッシュ

ユーザフレンドリーな設定方法

10

© SIOS Technology, Inc. All rights Reserved.

ロードバランスするときのポイント

Nginx で LB する場合、CPU に盛るのが効く

SoftLayer ならでは、ベアメタルも検討しよう

メモリ量よりコア数優先

TCP LB は実は使いどころが難しい

Galera cluster なんかと組み合わせることはできる

運用考えると HyperDB(WP ドロップイン) の方が現実的?

11

© SIOS Technology, Inc. All rights Reserved.

その他ポイント

worker_processes の初期値に注意 入れ方によっては初期値が 1 の場合も auto にすると CPU コアに応じたワーカプロセスが上がる 物理メニーコアがやっぱり効く

本気でチューニングするなら worker_cpu_affinity でコアのピニングまでできますよ

gzip も活用しよう 対象ブラウザが対応しているなら検討しましょうか やっぱりこれも CPU が活きてくる

SPDY3/1 もつかえるよ listen 443 ssl spdy; みたいに宣言するだけ

HTTP/2 対応計画あるよ、2015年末までには出せるらしいよ! https://www.nginx.com/blog/how-nginx-plans-to-support-http2/ https://www.nginx.com/blog/nginx-1-8-and-1-9-released/

12

© SIOS Technology, Inc. All rights Reserved. 13

ケーススタディ

https://pixabay.com/en/whiteboard-strategy-diagram-849803/

© SIOS Technology, Inc. All rights Reserved.

既存環境への追加パターン

Apache mod_php な既存環境に LB+キャッシュ として追加

14

NFS NFS

© SIOS Technology, Inc. All rights Reserved.

サービス活用パターン

SoftLayer の提供するサービスをうまく活用するパターン 静的ファイルはプラグインで Object Storage 経由、CDN 配送

php(FastCGI) が生成するページは Nginx のキャッシュを利用

更に前段に Global LB を重ねて DR 構成も可能

15

Nginx + PHP FastCGI

CDN Object Storage

フロントキャッシュ+LB

© SIOS Technology, Inc. All rights Reserved.

バランス構成パターン

可用性を担保しつつ、拡張を視野に入れたパターン WordPress プラグイン/ドロップインを活用

AMIMOTO Nginx Cache Controller HyperDB

Nginx の L7 LB の機能を活用し、 /wp-admin はフロントで処理 それ以外はバックエンド or キャッシュで処理 キャッシュをフロントでコントールする事で、削除処理などを実施

コンテンツは SoftLayer の NFS で共有 NFS は速度を出そうとすると高額になるので、キャッシュで返せるようにする

16

Nginx + PHP FastCGI

L7 LB フロントキャッシュ

+ /wp-admin

MariaDB Replication

M S

NFS

© SIOS Technology, Inc. All rights Reserved.

まとめ

基本はキャッシュとスケールアウト

キャッシュ キャッシュは消し方を検討しておこう

スケールアウト ケースバイケースで SoftLayer の LB と使い分けよう

サービスを使い分けよう

CDN, Object Storage, NFS, LB・・・ どこまで必要なのか?

予算はどれくらいないなのか?

運用・保守できるのか?

17

© SIOS Technology, Inc. All rights Reserved.

ちょっと宣伝

NGINX Plus なる製品があります NGINX, inc. が提供 エンタープライズ向けの機能拡張を行った製品

LB バックエンドヘルスチェック オンザフライ設定変更 ライブステータスダッシュボード 高可用性・・・などなど

日本語サポートあります

NGINX Plus|サイオステクノロジー株式会社

http://www.sios.com/products/oss/nginx/

18