AWSのサーバはクラウドサーバのEC2とVPSサーバのLightsailがあります。
大雑把に言うと自由自在で従量課金のEC2と安定して安い月額のLightsailです。
コストダウンのためにWordPressブログの移行をしたのでそのメモ。
移行の理由
元々ブログのようなものはVPSサーバを使った方が安くて良いです。
サーバを乱立して実験したり、クローラー用途でほとんどの時間止まってたり、日によってアクセス数が大きく変わるような特殊なものだとクラウドサーバーは便利ですが、通常はVPSサーバのほうが安くなります。
ブログ開始時はまだVPSサービスがなく、さくらサーバを借りるか悩んでました。
しかしAWS熱が強く他サービス(S3,Lambdaなど)と連携できるEC2にしました。
1年無料だったのも大きい理由です。
待望のVPSサービスができてからも面倒で手を出してなかったのですが、今回移行することにしました。
大まかにいうとサーバ立ててWordpress移行してドメイン変更するだけです。
WordPressマイグレーション
とりあえずAWSコンソールからLightSailを作成します。
この辺は何も考えずにできますが一応キーペア(pem)をダウンロードします。
ブラウザ上からssh出来ますが、それだけで十分というわけでもないです。
箱が用意できたので移行元のWordPress管理画面に行きます。
All in One WP Migrationというプラグインを使っていきます。
インストール&有効化したらファイル形式でダウンロード(他は有料)。
ここで500MB以下なら移行先でインポートして終わりです。
大体はメディアだけで500MBいくので、メディアは別の方法で移行します。
移行先のワードプレスはブラウザsshから
cat /home/bitnami/bitnami_application_password
でパスワードがわかります。
ログイン先は http://パブリックIP/wp-login.php です。
ログイン後は同じようにプラグインを入れてインポートします。
インポート後はパスワードも移行元のものになるので要再ログイン。
メディア移行
ftpが面倒みたいなのでscpですませました。ここでpem使います。
scp -i xxx.pem -r user@ec2-x-x-x-x...com:apps/wordpress/htdocs/wp-content/uploads wp/
scp -i yyy.pem -r wp/uploads/* user@y.y.y.y:apps/wordpress/htdocs/wp-content/uploads
エラー
All in One WP Migration is not able to create /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/all-in-one-wp-migration/storage folder. You will need to create this folder and grant it read/write/execute permissions (0777) for the All in One WP Migration plugin to function properly.
これは権限の問題なので一時的に777にしました。
chmod 777 /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/all-in-one-wp-migration
DNS変更
ここまでやって移行先のブログに問題がないようならドメインの割当先を変更します。AWSの場合はRoute53です。
もちろんLightSailのインスタンスには静的IPをアタッチしておきます。
変更後しばらくかかると思います。
所感
このブログが更新されれば、とりあえず移行完了です。
思ったよりも簡単でした。
あとはJenkinsでS3と連携とかもしてたのでLightSailでもできるか確かめます。
改めて見直してみたけどEC2は高い。自由度は高いけどほとんど活かせてなかった。
これで月額請求1/3ぐらいになるはず。
なにも問題ありませんように。
2019/09追記
All-in-One WP Migrationの分割アップロードがなくなり、移行ファイルサイズがサーバのファイル送信制限に依存するようになっていた。
上限を上げる方法はこちらにある通り。
512MBに戻すには以下のプラグインをZIPでダウンロードし、Upload Pluginする。
https://import.wp-migration.com/