こんにちは、テクマトリックスの長久保です。
Amazon Lightsail(以下、Lightsail)でWordPressを立ち上げる機会があったので記載します。

Amazon Lightsailとは何か

サクッと様々な環境を構築することができるAWSのサービスです。

選択画面

OSのみの起動もできますが、メインの用途としてはサービスを利用するために使うことが多いと思います。今回はWordPressの構築に用いましたが、LAMP環境やGitLab CE、Redmine等も構築が可能です。必要になったタイミングですぐにサービスを起動し、使わなくなったら破棄できるのは魅力かと思います。構築するインスタンスのスペックにもよりますが、月に$3.5や$5といった価格帯から構築が可能です。

詳しくは公式サイトをご確認ください。また、「Amazon Lightsailに関するよくある質問」にも詳しくまとまっています。

Q: Amazon Lightsail とは何ですか?
Amazon Lightsail は仮想プライベートサーバー (VPS) プロバイダーであり、クラウドにアプリケーションを構築およびホストするためのソリューションを必要とするデベロッパー、スモールビジネス、学生、その他のユーザーが AWS の利用を開始するための最も簡単な方法です。Lightsail には、デベロッパーがウェブサイトやウェブアプリケーションをクラウドにデプロイし、管理するのに必要なコンピューティング性能、ストレージ容量、ネットワーキング機能が用意されています。Lightsail には、仮想マシン、コンテナ、データベース、CDN、ロードバランサー、DNS 管理など、プロジェクトを迅速に立ち上げるために必要なすべてのものが、予測可能な低料金で含まれています。

https://aws.amazon.com/jp/lightsail/faq/


WordPressを立ち上げるまで

公式のドキュメント「チュートリアル: Amazon Lightsail で WordPress インスタンスを起動して設定する」に従って、に実施すれば問題なく起動できます。

このようにWordPressを選択し、起動するとデフォルトユーザーを作成しすぐに利用可能な状態で構築してくれます。レンタルサーバーでの構築の場合データベースとの関連付けなど若干対応が必要な場合もありますが、そういったことなしに構築が完了します。とても簡単でした。

構築した際の初期設定など

FIrewallの設定

22番ポートには外部からアクセスできる必要が無いので制限しましょう。Networkingタブから設定できます。

SSL化

様々な設定方法があると思いますが、今回はBitnami HTTPS 設定ツール (bncert)を利用してSSL化を行いました。証明書はLet’s Encryptを利用します。LightsailのコンソールからWordPressにアクセスし、下記のコマンドを実行します。

証明書の知識が無くても色々とコンソールに出力されます。手順通りに実施すれば自動更新を含め設定が完了します。

詳細な手順についてはこちらのドキュメントをご確認ください。

構築時にハマったこと

ログインページの変更

WordPressのデフォルトのログインページは特定できてしまいますのでセキュリティ的によくありません。ログインページを変更するにあたり、SiteGuard WP Pluginを利用して変更することが多いと思いますが、Lightsailで構築した場合「エラー: .htaccessの更新に失敗しました。」と表示されログインページの変更ができません。また、更新できた場合でも「404 NOT FOUND」に飛ばされログインページにアクセスできなくなりました。

これはLightsailでWordPressを構築する際に利用しているBitnamiのポリシーが影響しているようです。

One of our main goals is to configure Bitnami applications in the most secure way. For this reason, the configuration in the .htaccess files has been moved to the main application configuration files and set the AllowOverride option to None by default, if supported by the application.

https://docs.bitnami.com/aws/infrastructure/lamp/administration/use-htaccess/

/opt/bitnami/apps/wordpress/conf/httpd-app.confを確認すると次の様になっています。

この設定を変更して.htaccessを有効にしても問題の解消はできると思いますが、今回はWPS Hide Loginを用いてログインページのURLを変更しました。

実施してみての感想

多少ハマった部分もあるものの、構築自体は思った以上に簡単でした。WordPressを構築する場合エックスサーバーさくらのレンタルサーバといったレンタルサーバーを借りて構築することが多いように思いますが、Lightsailも同じくらい簡単に構築ができます。Lightsail上でもマルチサイトの構築も可能ですし、これは私の主観ですが同じ価格帯のレンタルサーバーよりも高速に動作しているように感じます。

マルチサイトにする場合、インスタンス作成時にWordPress Multisiteを選択します。

また、定期バックアップの仕組みがあるのも良い点だと思います。レンタルサーバーでもバックアップは可能かと思いますが、LightsailはSnapshotとして環境をまとめてバックアップすることができます。今回の構築でSSL化する際に設定ファイルを変更した際に誤ってしまいサーバーが起動しなくなってしまいましたが、Snapshotから復元し事なきを得ました。

ただ、1つのインスタンスに対して複数ドメインを関連付けて稼働させるには少し複雑なように感じましたので(参考ドキュメント)、複数ドメインを利用して複数WordPressのサイトを運用する場合、素直に複数インスタンスを起動するかレンタルサーバーを借りて運用した方が良いと思います。

最初の3カ月は無料で利用もできますので、ぜひ皆さんも試してみて下さい!

By nagakubo

主にCI環境構築をメインで担当しています。 Certified CloudBees Jenkins Engineer (CCJE)