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

Preview:

DESCRIPTION

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

Citation preview

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

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

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

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

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

1/1~10/15

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

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

• 月間50~60万PV

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

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

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

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

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

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

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

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

•信頼されない

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

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

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

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

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

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

•儲からない!

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

記事一覧

記事一覧

タイトル広告

広告

URL

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

記事一覧

記事一覧

タイトル広告

広告

URL

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

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

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

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

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

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

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

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

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

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

•平均すると1.5~2万PV

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

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

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

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

略して

AWS

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

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

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

水道料金と同じ!

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

• こうなります↓

Availability Zone Availability Zone

WP

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

Availability Zone Availability Zone

WP

これ

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

Availability Zone Availability Zone

WP

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

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

Availability Zone Availability Zone

WP

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

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

• Auto Scaling機能

Availability Zone Availability Zone

WP

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

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

• Auto Scaling機能

Availability Zone Availability Zone

WP 普段は1台でOK

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

• Auto Scaling機能

Availability Zone Availability Zone

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

!

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

• Auto Scaling機能

Availability Zone Availability Zone

WP

自動で増えます

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

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

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

何を見ているのか?

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

1UP!

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

• Auto Scaling機能

Availability Zone Availability Zone

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

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

• 発動履歴

1UP1DOWN1UP

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

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

しきい値 しきい値

UP DOWN

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

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

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

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

Availability Zone Availability Zone

WP

これ

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

Availability Zone Availability Zone

WP

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

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

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

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

Availability Zone Availability Zone

WP

これ

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

Availability Zone Availability Zone

WP

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

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

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

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

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

注: 10/18まで

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

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

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

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

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

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

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

通信費用が結構多い

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

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

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

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

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

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

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

END

Recommended