50
AWS+WordPress AWSでスケーラブルなWordPressサイトを構築

AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

Embed Size (px)

DESCRIPTION

2014/10/18 WordBench名古屋(10月度)にて 発表させて頂きました。 AWS(Amazon Web Services)を使った WordPressサイト構築のノウハウを、 インフラの観点からお話しています。

Citation preview

Page 1: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

AWS+WordPressAWSでスケーラブルなWordPressサイトを構築

Page 2: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

自己紹介• 名前 : 横井 公紀 (https://www.facebook.com/kiminori.yokoi)

• 職業 : SIer    アプリとは無縁のインフラ部隊です。   サーバ/ネットワーク、ミドルウェア

• 趣味 : 学生の頃からWebを使って生計を立てることばかり考えていました。2005年ごろ 某大手ブログサービスのテンプレート売り2007年ごろ~現在 個人ニュースサイトのデザイン作成。          SEO周りのフォロー。

Page 3: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

とあるお手伝いしている サイトのステータス

1/1~10/15

Page 4: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

とあるお手伝いしている サイトのステータス

• デザインはお見せできません。。許可が下りませんでした。。

• 月間50~60万PV

• 多い時は1日で3万PV!

• それなりに、利益も・・・

Page 5: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

初めは某有名ブログサービスを使って運用していましたが

• いろいろ課題がありました。でも一番の課題は・・・

Page 6: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

初めは某有名ブログサービスを使って運用していましたが

•ブログっぽく見えること! これが一番の課題

Page 7: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ブログっぽく見えるサイトの何がいけないのか

•ニュースのソースとして 扱ってもらえない (個人ブログ乙)

•信頼されない

•有名人にピックアップしてもらいにくい (ソーシャルメディアを有効に使えない)

Page 8: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ブログっぽく見えるサイトの何がいけないのか

•ブログでニュースサイトをやってアクセスアップするならデザインを凝る必要がある

Page 9: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

初めは某有名ブログサービスを使って運用していましたが

• もう一つ課題がありました。それは・・・

Page 10: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

初めは某有名ブログサービスを使って運用していましたが

•儲からない!

Page 11: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

某有名ブログサービスで運用しても利益は上がりにくい

記事一覧

記事一覧

タイトル広告

広告

URL

Page 12: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

某有名ブログサービスで運用しても利益は上がりにくい

記事一覧

記事一覧

タイトル広告

広告

URL

ブログサービスによる 自動挿入広告!

ブログサービスによる 自動挿入広告!

Page 13: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

某有名ブログサービスで 運用しても利益は上がりにくい•独自に広告を入れてもブログサービスが自動で挿入する広告と競合する

•クリックが分散し利益を取られてしまう

Page 14: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

いろいろと機会損失していることが判明したので

Page 15: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ブログサービスの時は考えなくても良かった課題

• 1日3~4万アクセスを平然とさばくことが必要

•でもそれって金がかかるのでは・・・

Page 16: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ページビュー数について考えてみる

•多い時は1日3~4万PV(8000~10000ユーザ)

•平均すると1.5~2万PV

Page 17: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

サーバにどこまで 金をかけるか

• 3~4万PVを想定してサーバを用意することは金の無駄

•ページビューに応じてリソースを可変し、コストを最適化することが必要

Page 18: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

そんなニーズに応えるのが

Page 19: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

略して

AWS

Page 20: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

AWSとは (超簡易版)• Amazonが提供するクラウド型インフラサービス

• 必要なときに必要なスペックの仮想マシンを調達できる(費用は、使った分だけ)

• 負荷に応じてリソースの利用量を自動調整できる

水道料金と同じ!

Page 21: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

AWSを使い、負荷のことも考えて WordPressサイトを組むと

• こうなります↓

Availability Zone Availability Zone

WP

Page 22: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサーで負荷分散• ELB (Elastic Load Balancer)

Availability Zone Availability Zone

WP

これ

Page 23: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサーで負荷分散• ELB (Elastic Load Balancer)

Availability Zone Availability Zone

WP

配下のサーバの負荷状態を自動で判断し、 適切にリクエストを分配

Page 24: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサーで負荷分散• ELB (Elastic Load Balancer)

Availability Zone Availability Zone

WP

ELB自体の負荷が増えても、 自動でオートスケール

Page 25: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• Auto Scaling機能

Availability Zone Availability Zone

WP

負荷に応じて自動でサーバ台数を調整!

Page 26: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• Auto Scaling機能

Availability Zone Availability Zone

WP 普段は1台でOK

Page 27: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• Auto Scaling機能

Availability Zone Availability Zone

WP 負荷がきつくなったら・・・ !

!

Page 28: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• Auto Scaling機能

Availability Zone Availability Zone

WP

自動で増えます

Page 29: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

• CPUの使用率(MAX, MIN, AVG)

• ネットワークのIN/OUT (同上) etc…

• 時間でオートスケールすることも可

何を見ているのか?

Page 30: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

1UP!

Page 31: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• Auto Scaling機能

Availability Zone Availability Zone

WP 負荷が減ったら 1台に戻ります

Page 32: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• 発動履歴

1UP1DOWN1UP

Page 33: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ロードバランサー配下で オートスケール

• 発動したら通知できるように設定も可能

しきい値 しきい値

UP DOWN

Page 34: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

ちょ待てよ!• Auto Scalingでサーバ台数を増やし、後で元の台数に戻りました。↓増やしたサーバに溜め込んだデータってどうなるの?消えるの?

Page 35: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

そうです。WPとDBは同一サーバに置けません

• この構成じゃあたりまえだよね!

Page 36: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

RDSを使いましょう• DBのインスタンスだけ貸し出すサービス

Availability Zone Availability Zone

WP

これ

Page 37: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

全WPが同じRDSを読む• そうすれば、データの不整合はない

Availability Zone Availability Zone

WP

WP側でRDSの DNS Nameを指定してあげましょう

Page 38: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

もちろん、WPと画像も同一サーバに置けません

• あたりまえだよね!(大事なことなので2度言いました)

Page 39: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

S3を使いましょう• ストレージサービス(感覚的にはFTP)

Availability Zone Availability Zone

WP

これ

Page 40: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

全WPがS3を読む• そうすれば、画像の不整合はない

Availability Zone Availability Zone

WP

WP側でS3を読みに行くよう 設定してあげましょう

Page 41: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

WP+S3はプラグイン連携です Amazon S3 Plugin for WordPress• 画像をアップしたら自動でS3に入るようにするために必要です。

Page 42: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

S3に独自ドメインをつけられます

• ブログが abcde.com なら画像はimg.abcde.com とできます。

Page 43: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

設定はお手軽! 問題は費用ですよね・・・

注: 10/18まで

Page 44: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

この構成で月¥15,000• 年間¥180,000でこれだけの構成を維持できます。

• 高そうに見えたらメンテのことを考えてください。工事費/保守費/電気代は0円です。

• バックアップも高価なソフトが不要です。(AWSのサービスがあります)

Page 45: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

もっと費用を削ることを考えてみましょう

• サーバのスペックは下げられないか?

• AutoScalingのしきい値を上げられないか?

• データ転送量を減らせないか?(AWSからのOutに課金される)

Page 46: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

通信費用が結構多い

Page 47: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

通信費用をどうやって減らすのか

• Apacheの設定(mod_deflate)でレスポンスを圧縮して返す

• テンプレートそのものに画像を多く盛り込まない

Page 48: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

まとめ• AWSを使えばメンテフリーで負荷に耐えられる 高性能サイトがお手軽に出来ます。

• ブログサービスより費用は高くなりますが、WPのデザインを凝れば、高信頼と多くのSNS拡散を期待できるので、広告費でまかなえます。

Page 49: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

まとめ• 格安で何とかしようとしている方、今一度よく考えてみましょう。PVはいくつですか? (目標でもOK) 負荷対策はありますか?

この組み合わせなら安心!

Page 50: AWS+WordPress - AWSでスケーラブルなWordPressサイトを構築しよう

END