さくらのVPSを長年使っていたのですが、全然更新されないWordPressのためだけにそれなりに課金するのもアレだったので、断捨離がてらAmazon Lightsailへ移行しました。その備忘録。

Lightsailの登録とWordPressの立ち上げ

こちらのQiitaの記事通りに進めれば基本的にOKでした。「独自ドメイン」の手前まで進めたら、まず旧サイトからのデータインポートをやってまた戻ってきます。つまり新サイトはまだIPアドレス直打ちでアクセスする状態です。

word press export

旧サイトからWordPressデータをエクスポート

特に何も気にせず、ダッシュボードからツール→エクスポートと進み、すべてのコンテンツをエクスポートを選んでXMLファイルを出力すればOK。

このXMLファイルには画像などのメディアデータは含まれていないのですが、インポートのタイミングで上手いことやってくれるので、インポートが終わるまでは旧サイトを立ち上げた状態にしておくのが良さそうです。

新サイトにWordPressデータをインポート

新たなサイトで同様にダッシュボードに入り、ツール→インポートと進み、WordPressのインポーターを「今すぐインストール」します。その後インポーターの実行をクリックすると、上記のXMLファイルのアップロードを求められます。

その後右の画面が表示されてインポートを実行しますが、「添付ファイルをダウンロードしてインポートする」をクリックしてから実行すると、旧サイトからメディアデータなどを引っ張ってきてくれます。

DNSの設定とLet’s EncryptによるHTTPS化

Lightsailのインスタンスに割り当てた静的IPを、自身のドメインを管理するDNSサーバで設定し、名前解決ができるようにします。

その後、上記QiitaのLet’s EncryptによるSSL化から再開し、HTTPSでのアクセスを強制するようにします。Qiitaの記事ではletsencryptのGitHubからコードをcloneしていますが、自分は apt -y install certbot でパッケージをインストールしました。

$ ./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d example.com

このように書かれているところを、

$ certbot certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d example.com

コマンドだけ入れ替えればOK。また、「証明書更新のシェルを準備してCron実行を仕掛ける」の

sudo /usr/local/certbot/certbot-auto --email="user@example.com" --domains="www.example.com" renew

の部分は、

certbot renew

だけにしています。ドメインを複数持つ人で個別に更新したい人は上記オプションが必要なのかもしれません。また、このスクリプトはもともとsudoが付いてますが、root権限でcronで動かすためsudoも不要でいけるはずです。

「Authorization ヘッダーがありません」の解消

ダッシュボードからサイトヘルスステータスの画面に飛ぶと、Authorizationヘッダーがありませんという改善ポイントが出てきます。

そのままでも大丈夫、という記事もありましたが、少し調べてみると同じBitnami WordPressの構成での対処案が見つかりました。これに従ってhttpd-app.confを修正すると、メッセージが消えました。

その他の設定

メールの設定などはまだなので、ちょっとずつ設定していきます。とりあえずこれで、$3.5/month な生活になるはず。