WordPressをレンタルサーバからVPSに移行してみた

一年半弱くらい使っていたレンタルサーバに満足できなくなり,半年くらい悩んだ末に VPS (CentOS7) に移行することにしました.

使っていたホスティングサービス

レンタルサーバも VPS も借りてるサーバに変わりはありません.レンタルサーバのようなサービスを一般的にホスティングサービスというので,以下ではそう呼びます.

使っていたのは,安さで有名な GMO のロリポップ (スタンダードコース) で,WordPress が使える,このコースはモジュール版 WordPress なのでより高速,ということで 2015 年 10 月辺りに契約.

当然,それまで使っていた各種ブログサービスと比べれば雲泥の差.とても便利でした.

ホスティングサービスの弱点

データは他のユーザーと同じサーバにあるので,誰かに接続が集中すると皆落ちます.VPS も専有ではないのですが,なんか落ちにくいらしい.

ロリポップの弱点?

最近しょっちゅう Jetpack からブログが読み込めないというメールが.サーバが落ちすぎて萎えました.年末辺りから急に増加し,1 月から 3 月末まで 50 回以上,2, 3 日に一度はダウンしていました.障害情報を見るからに,DoS 攻撃受けているのかな?

WordPress 自体も攻撃されやすく,私のブログもこれまでに一万回弱の攻撃を受けています...

VPS の選定

前置きが長くなりましたが,他にもいろいろ考えた結果ホスティングサービスから VPS にすることに.契約先は比較サイトなどを参考に絞りました.

サービス名運営企業
お名前.com VPSGMO インターネット
ConoHaGMO インターネット
さくらの VPSさくらインターネット
ServersMan@VPSDTI
ABLENETケイアンドケイコーポレーション

そんなに評判が悪くなく,安価なところだとこんな感じです.他に重視したいのは操作性とか,安定性とか,拡張性とか.大量のアクセスが予想されるなら転送量とか転送速度も考えた方がいいでしょうけど...

最終的に ConoHa とさくらの VPS が残ってましたが,プラン変更によるスペックの拡張ができる点で ConoHa が優勢.しかし,3 月中旬にさくらの VPS も拡張可能になったので,より安定性の高いさくらにしました.

VPS セットアップ

CentOS7 のインストール

クレジットカード決済のため,お試し期間 2 週間を使ってセットアップします.仮契約後,メールで IP アドレス,ユーザ名,初期パスワードを教えてもらえるので,それを使って SSH でログイン.

しますが,その前に.デフォルトは CentOS6 なので,CentOS7 にしておきます.ブラウザでさくらの VPS コントロールパネルを開き,各種設定の OS インストールから選ぶことができます.WordPress 爆速と噂の KUSANAGI もありますね.

SSH で接続

OS インストールは数分で終わるので,再起動したことを確認したら SSH で接続します.Windows を使っているので SSH 接続には TeraTerm や RLogin を利用しています.Mac はターミナルでできるようです.

以下は RLogin で新規接続するときの設定例です.OK を押せば接続できます.

rlogin-1.jpg

接続したら,最初にアップデートします.(古いファイルがあれば.)

terminal
# yum update

* # は root ユーザによる操作の意

ユーザの追加とセキュリティ

アップデートが終わったら,普段ログインするユーザを追加します.常に root ユーザでログインしていてパスワードが流出したら,一巻の終わりだからです.

terminal
# adduser <USER>
# passwd <USER>

* <USER> 部分は任意のユーザ名

このように一般ユーザを追加し,パスワードを設定します.次からは今決めたユーザ名とパスワードで SSH ログインします.

更に防御力を高めるため,root でのログインは拒否するようにします.sshd_config ファイルの編集は内蔵の Vim を使って行います.

terminal
# vim /etc/ssh/sshd_config

ファイルの編集をミスると死ぬので,念のためコピーするといいかもしれません.

terminal
# cd /etc/ssh
# cp sshd_config sshd_config.old

* sshd_config をコピーした内容を sshd_config.old として保存

sshd_config
#Port 22

#PermitRootLogin yes

* Vim での # はコメントアウトの意

上記の 2 行を以下のように編集します.

sshd_config
Port 22

PermitRootLogin no

ここで Port 22 の設定をし忘れると SSH 接続ができなくなり,VPS に接続できなくなります.(ここでハマって OS 再インストールした.)

terminal
# systemctl restart sshd.service

もしくは

terminal
# systemctl restart sshd

で再起動します.違いはよくわからないですが,上の書き方が CentOS7, 下の書き方がそれ以前という認識です...

再起動したら root では入れなくなっているはずなので,次回からは一般ユーザのほうでログインします.

前半のまとめ

長くなりそうなので,VPS の使い方とか,Apache, PHP, MySQL, WordPress 辺りのインストールとかは次回.