こんにちは。takkaaaaa(@butterfly_2100)です。このブログでは今まではロリポップ!
VPSとは
WordPressでブログをやっている人は、たいていロリポップ!
ですが、VPS(Virtual Private Server)の場合は、root権限を持って、仮想マシンを丸ごと自分で管理することになります。インストールするOSのバージョンも選べますし、その中にインストールするデータベース、Webサーバ、PHPなどのソフトウェアも自分でインストールします。
なので、共用レンタルサーバと比較すると、サーバー管理の手間やスキルが必要になってきて、色々と大変なのですがメリットもありますよ。
VPSのメリット
まず、一番のメリットは、性能の割にサーバー代が安いことです。
共用レンタルサーバはピンからキリまでありますが、評判のいいエックスサーバー
私が今回借りたGMOクラウドのVPS
まあ、GMOクラウドの株は買った時より値下がりしてしまったので、株主優待以上に含み損があるんですけどね。。。笑
性能についてですが、ブログのトップページの読み込み時間をpingdomで測定したところ、移転前は4秒以上かかっていたのですが、移転後のVPSでは2.1~2.5秒ぐらいになりました。そして、GoogleのPageSpeed Insightsではなんと、モバイルは88点、PCでは92点にもなりました!
サーバーの性能を速くして、ユーザーが読みやすいサイトにすることにより、SEO的にもプラスになりますね。
2つ目のメリットとしては、ソフトウェア構成を自由に選べることですね。最新のバージョンのOS(CentOS 7.1)とPHP 5.6にしました。また、Webサーバーは一般的なレンタルサーバで使われているapacheよりも性能が良いと言われている、nginxにしました。レンタルサーバだとソフトウエアのバージョンが古いこともありますがが、VPSだと最新バージョンを入れられるのがいいですね。性能も上がっているし、セキュリティ面でも良くなっているはずです。
VPSのデメリット
デメリットはやっぱり最初に書いたように、サーバー管理に手間と時間がかかり、スキルも必要になってくることですね。私の場合は商用サーバーの管理はやったことはないけど、一応、本業がシステムエンジニアなのでLinuxの操作はできるので、Google先生のお力を借りて、なんとか構築することができました。
サーバーの保守・運用については、まだまだこれからやりながらのところもあるのですが、OSのアップデート(Windows Update的なやつ)はyum updateというコマンドを打てば一発でできるので大丈夫かと思ってます。でも、サーバーの負荷が高くなったりするのはちょっと怖いかな。攻撃を受けたりするのは心配ですね。
うちのブログは通常時はアクセス数は少なくて、GoogleAnalyticsのリアルタイムではいつも0人なんですけど(泣)、記事に個人的にファンである歌手のaikoさんのことをよく書いているので、テレビにaikoさんが出演すると瞬間的にアクセス数が跳ね上がることもあります。その時にサーバが耐えられるか楽しみですね。
ソフトウェア構成
今回のVPSの構築にあたって、ソフトウェア構成はこんな感じにしました。
OS:CentOS 7.1
DB:MariaDB(MySQLから派生したDB)
Webサーバ:nginx
PHPのバージョン:5.6(php-fpmを使っています)
ブログのCMS:WordPress
サーバ監視:Zabbix
になります。図には書いてないけど、メールサーバとしてpostfixとdovecotも入れています。
このサーバーの構築で一番苦労したのは実はメールサーバーの設定だったりします。SSLの設定と、自分のPCのメーラー(thunderbird)から送受信をできるようにするのが難しくてハマりましたよ。
サーバー監視用にZabbixを入れて、CPUとメモリの負荷やブログが落ちていないか監視してます。メール通知をしたり、ブログが落ちた時にWebサーバとDBサーバを自動的に再起動する設定もできたので、運用が少しは楽になりそうな気がします。
マシンが一台だけなので、OSごと落ちた時はどうしようもないですが、複数台のサーバを立ててロードバランシングや冗長化構成をするのは、商用だと必要かもしれないけど、個人ブログだとオーバースペックだと思いますし。
結局、一台のサーバに色々なソフトウェアを詰め込んだけど、うちのブログの同時アクセスが少ないので、余裕っぽいです。zabbixは結構メモリを使いますが、監視対象が自分自身のマシンだけなので大丈夫ですね。
ApacheBench(abコマンド)で負荷をかけてみましたが、PHPのCPU使用率が100%近くになっており、メモリはまだ余っている感じでした。4.7リクエスト/秒ぐらいのパフォーマンスでしたけど、こんなものかな。同時処理数という意味ではCPUのコア数が2なので仕方ないですね。
ちなみに、WordPressのキャッシュプラグインWP Super Cacheを入れると、100リクエスト/秒以上出ました(素のWordPressの状態でです。今のテーマにしてプラグインを入れたら、40リクエスト/秒ぐらいに下がりました)。キャッシュ系のプラグインを使いこなすのは難しいところもありますが、静的コンテンツとして処理するので処理速度が格段に向上するみたいですね。
MariaDB、nginx、PHPのチューニングもしたりしていますが、運用しながら設定値を見直していきたいです。平均して1秒間に1リクエストずつとしても、1×60秒×60分×10時間(アクセスの多い時間帯)×30日=約100万PV/月ぐらいまでは耐えられそうな気もしますけどね。
ブログのHTTPS化
あと、もう一つ大きな変更点があって、StartSSLから無料の証明書をもらって、ブログをHTTPS化しました。https://takkaaaaa.comでアクセスできるようになりましたよ。
しかも、nginxのバージョンをCentOS7のyumで通常インストールされる安定版の1.8.0から、開発版の1.9.5にアップデートして、http2に対応しました(nginxのアップデートはしないでspdy対応だけでも良かったのかもしれませんが)。opensslのバージョンを1.0.2にしないといけなくて、ソースからopensslをビルドしたりとちょっと面倒だったけど・・・。
http2に対応しているブラウザで見ると(Windows10のchromeやiOS9のsafariなど)、普通のhttpよりもかなり表示速度がアップしてる気がします。http2の仕組み上、小さい画像ファイルがたくさんあるようなページで効果が出るみたいです(spdyもです)。
ですが、HTTPS化にはデメリットもあって、PCのChormeから見ると、ページによってはURL欄に黄色い三角マークが出てしまうんですよね。httpsのサイトの中で画像をhttpで呼び出している箇所があるためです。mixed contentと呼ぶそうです。
ちなみに、amazonの画像の場合、通常のamazonはhttpのサイトなので、画像のURLもhttpなのですが、マイページの商品画像のURLはhttpsになっています。なのでマイページの商品画像URLを使うとhttpsで画像を呼び出すことが可能です。画像のURLの「https://images-na.ssl-images-amazon.com」の部分を「https://images-na.ssl-images-amazon.com」に置換すると良いですよ。
ですが、A8.netなどのアフィリエイトのリンクはhttpsに対応していなくて、どうしてもmixed contentsになってしまいます。今のところは諦めるしか無いですけど、各業者さんも早く対応してくれると嬉しいです(Googleアドセンスやnendは大丈夫)。
HTTPS化はSEOにほんの少しだけ影響していて、同じぐらいの評価だとHTTPSのサイトが上位にくるそうです。サッカーに例えると、予選リーグで勝点も得失点差も総得点も同じだった時の順位を決めるぐらいの影響かもしれないけど、少しはアクセス数増えるといいなと思います。
HTTPS化のメリットとデメリットをまとめると、こんな感じになりますね。
- メリット・・・暗号化によるセキュリティの向上、spdyやhttp2で表示速度が速くなる、SEOの向上
- デメリット・・・外部サイトやアフィリエイトのパーツ(画像、JavaScript、CSSなど)がhttpsに対応していないと、警告が出る。場合によっては表示もされなくなる
終わりに
今回、GMOクラウドのVPS
共用レンタルサーバでもWordPressの管理は面倒ですが、VPSだとさらに大変になります。はてなブログPro+独自ドメインにするのが、記事の文章を書くことに専念できて、バズやSEO的にも良いのかなと思ったりもします。。。