AWS Lightsail の WordPress を Bitnami から Lightsail ブループリントへ移行した話

はじめに

AWS Lightsail で WordPress を運用していたところ、こんなメールが届きました。

件名: [対応が必要な場合があります] Amazon Lightsail の Bitnami ブループリントの変更

メールに記載されていたドキュメントはこちら:

https://docs.aws.amazon.com/ja_jp/lightsail/latest/userguide/migrate-from-bitnami-to-lightsail-blueprints.html

要するに「Bitnami ブループリントから Lightsail ブループリントに移行してね」という内容です。


そもそも Bitnami とは?

Bitnami は、WordPress や各種アプリケーションをパッケージ化して簡単にデプロイできる仕組みを提供するサービスです。Lightsail の WordPress インスタンスも、以前は Bitnami のイメージをベースに構成されていました。

ところが、最近 Bitnami を取り巻く状況が変わってきました。Docker イメージの無償公開も終了になったと聞いて調べてみると、Broadcom が Bitnami Secure Images という新しい商用サービスを発表し、それに伴って従来の無償 Bitnami イメージが整理されているようです。

参考: Qiita – Bitnami イメージの変化について


Bitnami 版と Lightsail 版の違い

Bitnami 版と Lightsail ネイティブブループリントでは、ディレクトリ構成が大きく異なります。

Bitnami 版Lightsail ブループリント版
アプリの配置場所/opt/bitnami/ 以下通常の Linux 構成
WordPress のルート/var/www/html/bitnami/wordpress//var/www/html/

Bitnami 版はすべてが /opt/bitnami 以下にまとまっている一方、Lightsail ブループリント版はよりシンプルでプレーンな Linux 構成になっています。


移行作業

1. 現在の WordPress をバックアップ

まず既存環境(WordPress 7.x 系)のバックアップを取ります。バックアッププラグイン BackWPup を使って手動でバックアップを実行し、ファイルをダウンロードしました。バックアップファイルはおよそ 2GB ほどありました。

2. 新しい Lightsail インスタンスを作成

新しいインスタンスを作成したら、まず http:// でアクセスして初期ユーザー / パスワードでログインします(詳細は AWS の公式ガイドを参照)。

デフォルトの WordPress バージョンがバックアップと合わない場合があるので、バージョンを合わせてからリストアに進みます。

3. BackWPup でリストア

BackWPup プラグインをインストールし、ダウンロードしておいたバックアップファイルを指定してリストアします。

記事データもメディアのレコード(DB)も問題なく復元できました。


ハマったポイント:メディアファイルが表示されない

リストア後、記事は表示されるのに 画像が軒並み表示されない という問題が発生しました。

原因

Bitnami 版の WordPress では、メディアファイルが以下のパスに格納されていました。

/var/www/html/bitnami/wordpress/wp-content/uploads/

BackWPup は /var/www/html 以下を圧縮するため、バックアップにはこのパスのファイルが含まれています。しかし Lightsail ブループリント版では WordPress のルートが /var/www/html/ に直接あるため、WordPress が期待するアップロードパスは以下になります。

/var/www/html/wp-content/uploads/

DB には正しい URL が記録されているのに、実ファイルが存在しない状態になっていたのが原因でした。

解決方法

Bitnami ディレクトリ内のアップロードファイルを、正しいパスにコピーするだけでOKです。

🌾 これはイメージとしてのコマンドです。バックアップファイルをサーバで展開して当該のファイルをコピーしてください

cp -r /var/www/html/bitnami/wordpress/wp-content/uploads/20* /var/www/html/wp-content/uploads/

テーマも同様

テーマファイルでも同じ問題が起きることがあります。その場合はテーマディレクトリも同様にコピーすれば解決します。


まとめ

AWS Lightsail の WordPress を Bitnami から Lightsail ブループリントに移行する際、BackWPup のバックアップをそのままリストアするとメディアファイルが表示されないことがあります。

原因は Bitnami 版のディレクトリ構成の違いで、/var/www/html/bitnami/wordpress/wp-content/uploads/ に実ファイルがあるためです。該当ファイルを /var/www/html/wp-content/uploads/ にコピーすることで解決できます。


次回予告: SSL 周りの設定でかなりハマりました…そちらは別記事で詳しくまとめる予定です。