先日よりWEB業界およびブロガー界隈で話題になっていた、Google の MFI(モバイルファーストインデックス) および スピードアップデート。

これらに対応していくために、当サイトも高速化を図っていくことにしました。
下記の記事の通り、テーマ変更は序の口。
本命はインフラ変更。
レンタルサーバーからVPSへの移行
この記事は、それによって得られた効果や設定の記録となります。
どなたかのお役に立てれば幸いです。
WordPressをConoha VPSに移行した結果は?
まずは移行結果をご紹介したいと思います。
Google Analytics 計測結果
VPS移行前の結果はこちら。
VPS移行後の結果はこちら。
日によってブレはあるはずですが、この平均値はなかなか優秀なのではないでしょうか。
Google AdSense などの広告も有効にした状態を考えれば、かなり高速化できてると言えます。
GTmetrix 計測結果
2018年7月現在もっともアクセス数の多いページについて、GTmetrix で計測してみたのはこちら。
VPSに移行するとこうなりました。
チューニング直後としては、満足のいく結果となりました。
ただ、こちらはAdblockオプションを有効にしてるので、必ずしも実態を現してるとは言い難いです。
また、実行する毎に時間のブレが大きいので、3回以上試行してみた中で最も速い結果を選んでます。
これは接続元が日本にないので、距離の影響を受けてしまうので、仕方ないと考えます。
また、ブログを運営しつづければちょこちょこ変わるので、この数字を維持するのは至難の技とも理解してます。
そのため、あくまで今回の成果のみとして考え、過信してはいけないと思っています。継続は難しい…
なお、PageSpeedで見るのも良いとは思うのですが、お作法チェックであって実態を現していないように感じるので、基準とするのは辞めました。
あと、これはVPS移行だけでなく、先に触れたテーマ変更と併せたチューニングの賜物である点は正直にお伝えします。
あらかじめご了承下さい。
今回は高速化だけのために移行したわけではありません。
WordPressをVPSに移した理由
理由1. パフォーマンスアップ
先にも書いた通り、次の2つが動機の7割を占めます。
スピードアップデート対策
大量アクセス対策
お陰様で、当サイトも月間20万PVが目前に控え、PVの伸びが加速してまいりました。
そうなると、高速化に加え、すぐにスケールアップできる仕組みを用意しておきたいという気持ちが芽生えたわけです。
理由2. 作業時間の短縮
レンタルサーバーのリソース原因のせいか、WordPress管理画が遅く感じていました。
これは変更系の処理なので、WordPressをチューニングしても高速化が望めなさそうでした。
WordPress管理画面の遅さは、ブログの執筆&管理にかかる時間に直結します。
ただでさえ、時間の無いサラリーマンですから、1秒でも作業時間は減らしたい!というわけです。
理由3. セキュリティ向上
匠は、腐ってもセキュリティ屋のはしくれ。
手の届く範囲でセキュリティを施したいです。
WordPress上で様々なセキュリティプラグインが提供されていますが、やはりインフラで守る方が効率が良いと感じます。


上の記事をインフラで実践したかった、というのも理由の1つです。
理由4. 費用対効果
ロリポップ をはじめとするレンタルサーバーは安いです。
しかし、その費用が適切かはわかりません。
実はインフラの余力があるのか無いのか、費用分の効果をキチンと知りたいと考えました。
結果としては、ConoHaやロリポップ 、エックスサーバーはなかなか投資対効果の良いサーバーなんだと知ることができました。
理由5. サービスや技術の習得
下記のようなOSSを勉強したいと考えました。
また、下記のようなサービスがあることも知りました。
これらを技術的興味から、いろいろ実践してみたいと考えました。
いずれも理解するために、WordPress サーバーをVPSに移行して試すことは、恰好の素材だったといえます。
これらの理由から WordPress 移行に踏み切るわけですが、下記の疑問はあったわけです。
WordPressはレンサバとVPSのどっちが良い?
レンタルサーバーで運用するWordPressも悪くはなかったのですが、どうしても疑問がありました。
適切にチューニングできてる?
レンタルサーバーのインフラは、どうしてもユーザーの公約数での設定になります。
また、OS周りの設定変更することができませんし、リソース状況を見ることさえ難しいです。
しかしながら、パフォーマンスチューニングを突き詰めていくとインフラに手を出したくなります。
これは下記の記事を読み込んで、フツフツと湧いてきた技術的欲求とも言えます。
そこで、費用面の問題はあるものの、この夏に思い切って切り替えてみた次第です。
移行元のレンタルサーバー
最初に利用していたレンタルサーバーはこちら。
ちょっとパフォーマンスに不満を持って、こちらに移行しました。
さらにパフォーマンスを高めたくなって、こちらに移行しました。
正直ロリポップでは、管理画面の遅くてイライラしてましたが、ConoHaとエックスサーバーは快適でした。
ConoHa とエックスサーバーとの間で大きく差があったかというと、正直わかりませんでした。。。
しかし、今となってはロリポップでも正しくキャッシュとCDNを使えば、かなり高速になるんじゃないかなと思い始めています。投資対効果は、ロリポップが良いので。
今となってはこんな発表もありましたしね。

これはまた別の機会に試してみたいと思います。
移行先に選んだのはConoHa VPS
今回の移行先に選んだのはConoHa VPS。
選んだ理由は、Kusanagiが使えること、安い、APIが使える、という3点です。
さくらインターネットも良かったのですが、費用とAPIの面でこちらに軍配が上がりました。
WordPressをVPSで3倍速にした移行手順
今回、やった作業をまとめてみました。
以下の内容は、技術的にチューニングを重ねてWordPress を運営している人には、役立つ内容になっているとは思います。
ただ、少し専門的な内容が多い点はご了承ください。
逆に、これらの用語が分からない方には、オススメできない移行方法だということで、ご理解ください。
詳細な手順は別記事に書くことします。
移行1) 移行先WordPressの環境整備
- ConoHa VPSの最小プランで、Kusanagi インスタンスを追加する
- SSH接続して、SSHd関連のセキュリティ設定をする。
- OSをアップデートして最新にする。
- OSやネットワーク関連のセキュリティ設定を施す。
この内容については、下記の記事に記載している内容です。

移行2) データ移行
移行作業には、下記で毎日バックアップしていたので、めちゃくちゃ簡単でした。

- (当ブログでは毎日)移行元WordPressのUpdraftPlus WordPress Backup Plugin で、Dropboxにフルバックアップする。
- 移行先WordPressにUpdraftPlus WordPress Backup Plugin をインストールする
- 移行先WordPressのUpdraftPlus WordPress Backup Plugin をDropbox に接続し、バックアップデータを復元する。
- 復元が完了すると、移行先WordPressに接続しようとする。
この時点では、IPアドレスを指定して移行先WordPressに接続しようとしても、移行元WordPressに接続されるようになります。
これは移行先WordPressが、自分のホスト名が正規のホスト名になっていると思って転送するわけですが、まだDNSが切り替わってないために移行元WordPressに接続されてしまうわけです。
つまり、DNSが切り替わるまで、普通には接続できない状態。
移行3) DNS切替前の環境整備
WP−CLI は Kusanagi に標準導入されてますので、それを使えばホスト名の変更作業も簡単です。ただ、今回はDNSさえ切り替えれば済むので、この作業はしません。
代わりに、下記ページのように、操作するPCだけ移行先WordPressに接続できるようにします。

- 操作するPCのhostsファイルに、移行先WordPressのIPアドレスでブログのドメインを登録する。(iPadやスマホでは無理)
- 操作するPCからブログのドメインに接続して、移行先WordPressに接続できることを確認する。併せて、移行元WordPressが正常稼働していることも確認しておくこと。
- 移行先WordPressで、ページが表示できることや管理操作が一通り行えることを確認する。
- SSLなうで、Let‘s encrypt のSSL証明書を取得する。
- 取得したSSL証明書を、移行先WordPressのWEBサーバーが使っているSSL証明書と差し替える
- 操作PCからブログのドメインにHTTPS接続できることを確認する。
この作業の注意すべき点は以下の2つ。
本来DNSを切り替えまで取得できないはずのLet‘s encrypt のSSL証明書を下記サービスで先に取ること。
SSLなう → 今はサービスを閉じてしまっているようです。残念。。。
失敗すると、後述するCDNの切り替え時にトラブルになって可能性があるので要注意です。
もう一つは、この時の操作はGoogle AnalyticsやGoogle Adsenseに記録されてしまうので、最小限にすること。
多少のことではBANされたりしませんが、分析に影響を及ぼしたり、悪用してると誤認されない程度にしましょう。
移行4) DNS切替と稼働確認
一番注意を払うべき工程です。
失敗すると、即アクセス不能になります。
ちなみに、当ブロクはCDNにCloudflareを利用してる点で、DNSの浸透を待つことなく、切り替えは短時間で完了できたのが良かったです。
- ConoHa VPSのDNSにブログのドメインを登録する。
- エックスサーバーのDNSに登録しているブログのドメインについて、移行先WordPressのIPアドレスに変更する。
- CloudflareのDNSについて、ブログのドメインを移行先WordPressのIPアドレスに変更する。
- 切り替わるのをひたすら待つ。(実際はすぐに切り替わった)
- 移行先WordPressで表示されないページや画像がないことを一通り確認する
- Let‘s encrypt 証明書を更新する(念のため)
ここまでやったら、とりあえずは移行作業としては終わりです。
作業ステップは多いんですが、1時間強。
たぶん、慣れもあるとは思いますし、事前にいくつか手順を試していたせいでスムーズに行きました。
もし初めてやられる方は、一度どこかで予行演習をすることをオススメしますね。
さて、ここからはチューニングという領域になっていきます。
移行5) 高速化
Kusanagiは、初期状態でもかなりチューニングしてありますが、いくつか設定を施してあげる必要がありました。

- Kusanagi のキャッシュ有効化(bcacheとfcacheをon)
- Kusanagi の翻訳アクセラレーターを有効化、翻訳キャッシュのプラグイン無効化
- メモリ利用状況の調査(=スワップ発生の確認)
- MySQLのパラメータチューニング
- メモリ追加(インスタンスのリソースアップ)
いずれも設定する度に、ガンガン早くなっていく感じがしました。
ただ、一つ誤算だったのは50〜60%ものスワップが発生していたことです。
移行前のサーバーよりもメモリは倍増させていたことは分かったのですが、それでも足りず。
調べてみると、このスワップはMySQLが原因でした。
ここからMySQLのパラメータチューニングを繰り返しましたが、どんなにチューニングしても、パフォーマンスを落とさず、スワップの発生を減らすことは両立しないことがわかりました。
つまり、完全なリソース不足と判明したわけです。
そりゃ、もうレンタルサーバーじゃ速くならんわ(汗
そのため、最小プランから1つ上のプランに変更することにました。
- CPU:1コア → 2コア
- メモリ:512MB → 1GB
その結果、スイスイ動作するようになりました。
これはVPSにしなきゃ分からなかったな、と思うわけです。良かった良かった。
ランニングコストは、VPS移行前と同じになってしまいましたが。。。
ここまでチューニングした結果が、この記事の最初に紹介した計測結果となるわけです。
WordPressのConoHa VPSは成功か?
結論から言えば、大成功!です。
- 移行理由1. パフォーマンスアップ
→ 3倍以上の高速&短時間のスケールアップが可能に! - 移行理由2. 作業時間の短縮
→ 管理画面が大幅に高速化! - 移行理由3. セキュリティ向上
→ OSレベルで保護が可能に! - 移行理由4. 費用対効果
→ 変更なし - 移行理由5. サービスや技術の習得
→ 各OSSに詳しくなった!
ご覧の通り、4勝1分けは大成功と言っても良いのではないでしようか。
結論としては、少し技術的なことが分かる方であれば、レンタルサーバーからVPSに移行するメリットはあると言えます。
今後は、この状態を維持しつつ、少しでも高速化できるように研究を重ねていきたいと思います。