GMOクラウドVPSからAWSへのWordPress移行

元のサーバー

GMOクラウドVPSの4GBプラン。メモリ4GB・CPU4コア・ディスク200GB。ディスク容量のために4GBプランを契約してたようだけど25GBも使ってなくて無駄な様子だった。httpsは未対応。ドメインはお名前.com。

CentOS 6.9/Apache/PHP5.6/MySQL5.6。WordPress4つな割にメモリもCPU使用率も高め。たまに高負荷で落ちこともある状態。画像では問題なさそうなのは対策後だから。最初の状態では鍵認証にも変更してないしPHPも5.3だしでテンプレのようなまともに管理されてないWordPress。これが特別ひどいわけではなく引き継いだWPはほとんどこのレベル。前任が個人でも法人でも。

移行作業

いつものようにgit+composerの形式に。いつも通りなので省略。

今回はアップロードファイル移行の話がメイン。

VPSなのでaws cliが使える。AWS Command Line Interface での高レベルの S3 コマンドの使用。レンタルサーバーだと一度ローカルにダウンロードしてからS3にアップするような無駄な手間がかかる。

旧WordPressからS3へのコピー。旧WordPressのuploadsで aws s3 cp . s3://bucket/app/uploads --recursive

S3プラグインを使えば本来は新WordPressへ自動でコピーされるはずだけど上手く動作しないこともあるのでS3から新WordPressへも一応コピー。新WordPressのuploadsで aws s3 cp s3://bucket/app/uploads/ . --recursive

これで移行完了。uploadsにはプラグインが作ったファイルがあったりするので不要なら削除。

その他、RDSはなしでメール送信はSES。SESの制限解除が土曜なのに数時間で返事返ってきてびっくり…。前はもう少し時間かかったような。

移行後のサーバー

ここと同じサーバー設定なので分かってはいたけど負荷も減って表示速度も速い。画像が多い割に4秒なら十分。もちろんhttps対応もしている。

S3+CloudFrontまで使ってテーマも色々修正すれば3秒まで改善できた。宣伝だけはすごい有名テーマでも遠慮なく書けば素人が作ってるような中身なのでいくらでも修正箇所はある。

コスト

AWSは新アカウントなので1年分の無料期間あり。なくてもEC2はt2.microで十分で容量も15GB程度なのでS3やRoute53の料金を含めたとしてもVPSより安くなる計算。

VPSの契約期間がまだかなり残ってるのでこの後はVPSを全部消して設定し直して残り期間のみサーバー2台構成での運用にする。こういうこともできるのでVPSの契約期間が残ってるからAWSに移行できないとか考える必要はない。無料期間はこのためでもあるのかも。

一週間後

httpsに変えたことでGoogle botが大量に再クロールに来ていた。これでサーバーの負荷が増大。いきなり数十倍ではどうしようもない。一応Search Consoleでクロール頻度の制限はできるけど。仕方ないのでt2.smallに上げて落ち着くのを待つ。後でt2.microに戻す。AWSは柔軟な対応できるのが良い所。

Google bot以外にもスクレイピングで大量アクセスが来る可能性があるサイトではあるのでそういうのは自動でブロックするだけ。