こんにちは。takkaaaaa(@butterfly_2100)です。このブログでは今まではロリポップ!という共用レンタルサーバを使っていたのですが、GMOクラウドのVPSに移転しました。そこで、VPSのメリットとデメリットや、今回構築したソフトウェア構成とHTTPS化について書きたいと思います。

VPSとは

WordPressでブログをやっている人は、たいていロリポップ!エックスサーバーお名前.comなどの共用レンタルサーバを借りているかと思います。共用レンタルサーバの場合、OS、データベース、Webサーバーの管理はそのサーバーの業者さんがやっていて、WordPressの中だけ自分で管理する感じですよね(正確には違うけど、ざっくりとしたイメージです)。

ですが、VPS(Virtual Private Server)の場合は、root権限を持って、仮想マシンを丸ごと自分で管理することになります。インストールするOSのバージョンも選べますし、その中にインストールするデータベース、Webサーバ、PHPなどのソフトウェアも自分でインストールします。

なので、共用レンタルサーバと比較すると、サーバー管理の手間やスキルが必要になってきて、色々と大変なのですがメリットもありますよ。

VPSのメリット

まず、一番のメリットは、性能の割にサーバー代が安いことです。

共用レンタルサーバはピンからキリまでありますが、評判のいいエックスサーバーのような良いサーバを借りると少なくとも月1000円ぐらいはしますよね。それでも他のたくさんのユーザーとサーバーを共用することになります。

私が今回借りたGMOクラウドのVPSの1GBプランは月780円と安いですが、メモリを1GB、CPUを仮想2コアを専有できてしまいます。ディスクにSSDも選べるさくらインターネットのVPSと迷ったのですが、GMOクラウドの方が月額料金が安くて、さらに半年ごとの株主優待で5000円引きになり、1年間で780×1.08(消費税)×12-5000×2=109円だけ払えばいいので、GMOクラウドにしました。

まあ、GMOクラウドの株は買った時より値下がりしてしまったので、株主優待以上に含み損があるんですけどね。。。笑

性能についてですが、ブログのトップページの読み込み時間をpingdomで測定したところ、移転前は4秒以上かかっていたのですが、移転後のVPSでは2.1~2.5秒ぐらいになりました。そして、GoogleのPageSpeed Insightsではなんと、モバイルは88点、PCでは92点にもなりました!
PageSpeedInsights

サーバーの性能を速くして、ユーザーが読みやすいサイトにすることにより、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の一番安い1GBプランを借りてみたわけですが、性能もなかなか出てますし、私のようなそんなにアクセス数の多くない個人ブログで使う分には十分ですね。サーバーの構築と運用は非常に難しいですが、IT系に興味のある方だとむしろ面白いと思うかもしれませんよ?

共用レンタルサーバでもWordPressの管理は面倒ですが、VPSだとさらに大変になります。はてなブログPro+独自ドメインにするのが、記事の文章を書くことに専念できて、バズやSEO的にも良いのかなと思ったりもします。。。