Amazon Lightsail で WordPress を構築する(スナップショット・ファイアウォール・静的IPアドレス・独自ドメイン設定)

AWS
AWS
この記事は約9分で読めます。

WordPress を構築するにあたり、一番多いのはレンタルサーバーを借りて構築する方法だと思います。

多くのレンタルサーバー会社で、すぐに WordPress を始められるような機能が用意されています。

このブログを始めるにあたりその方法でもよかったのですが、私が業務で AWS を使っていることもあり、勉強も兼ねて Amazon Lightsail を使ってみることにしました。

Amazon Lightsail とは

月額固定でウェブサイトやアプリケーションを作成できる AWS のサービスです。従量課金制がほとんどである AWS の中で、数少ない月額制のサービスです(ただし、バックアップなどの料金は別途かかります)。

EC2 のように VPC やサブネットなどの設定は必要なく、簡単な設定で WordPress インストール済みのサーバーを作成できます。

Amazon Lightsail(月額3.5ドル〜の仮想プライベートサーバー:VPS)| AWS
Amazon Lightsail は、コンテナなどのクラウドリソースを予測可能な低価格で簡単に管理できる、使いやすい仮想プライベートサーバー (VPS) です。

構築してみた

インスタンスを作成する

AWS にサインインし、Amazon Lightsail のコンソールに移動、インスタンスを作成します。

作成するリージョン・アベイラビリティーゾーンを選択。

オプションを選択。

起動スクリプトは、初回起動時に実行が必要なものはないので不要。

SSHキーペアは、使用者が 1 人であり、SSH 接続の際はブラウザ上からの SSH 接続を使用することにするので、デフォルトのものを選択しました。

ブラウザ上からのSSH接続は、AWSアカウントに不正ログイン(シークレットアクセスキー漏洩含む)されたら攻撃者に利用される可能性がありますが、MFA有効化やIPアドレス制限をしているため問題ないと判断しました。

SSH接続については以下のドキュメントに記載されています。

キーペアと Amazon Lightsail 内のインスタンスへの接続 | Lightsail ドキュメント

自動スナップショットは有効化しますが、別料金がかかります。1月1GBあたり 0.05 USD です。今回の場合ストレージが 40GB なので、最低月 2 ドルはかかる見込みです。複数スナップショットを保持している場合、スナップショットの差分のサイズに対して課金されます。なお、スナップショット取得時のインスタンスに対する負荷に関する記載はドキュメントからは見当たりませんでした。しかし、スナップショット取得時の CPU メトリクスに変化はなかったため、インスタンスに対する負荷があったとしてもほとんど影響のない程度と思われます。

料金 - Amazon Lightsail | AWS
Amazon Lightsail は、予想可能な低価格の使いやすいクラウドプラットフォームです。Lightsail では、バンドルされたリソースと無料利用枠のオプションをご利用になれます。

Q: Lightsail のスナップショットにかかるコストはどれくらいですか?

Lightsail のスナップショットには、インスタンスのスナップショットでもディスクのスナップショットでも、月額 0.05 USD/GB が適用されます。つまり、30 GB SSD インスタンスのスナップショットを作成して 1 か月間保管した場合、月末に 1.50 USD をお支払いいただきます。

同じインスタンスに対して複数の連続的なスナップショットを作成すると、スナップショットのコストは Lightsail によって自動的に最適化されます。新しいスナップショットが作成されるたび、インスタンスの変更された部分に対してのみ課金されます。上記の例では、インスタンスで 2 GB 分のみ変更された場合、2 番目のインスタンスのスナップショットにかかる料金は 1 か月あたり 0.10 USD のみです。

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

次に、インスタンスプランを選択します。私は 5 ドルのプランにしました。3.5 ドルのプランだと、メモリやストレージサイズに不安があったからです。インスタンスプランは後から変更可能です。

最後にインスタンス名を入力して、必要に応じてタグを入力し、インスタンスを作成します。

インスタンスの作成が完了しました。

ファイアウォールの設定

現在の設定だと、SSH 接続や WordPress の管理画面に誰でも接続可能な状態で危険です(管理画面はパスワードを入力する必要がありますが。)。WordPress の管理画面はセキュリティ強化予定ですが、急いで設定したくないのでアクセスできる人を一時的に自分だけにする設定をファイアウォールで行います。

なお、ファイアウォールは EC2 でいうセキュリティグループにあたり、設定できるのはインバウンドのみなどの違いがあります。

ネットワーキングから設定を行います。デフォルトではSSH・HTTP・HTTPSが全て開かれているため、SSHは「IPアドレスに制限する」と「LightsailブラウザのSSHを許可する」をチェックしてIPアドレスを指定しないことで、LightsailブラウザからのSSHのみを許可します。

Lightsail ブラウザからSSH接続をしない方は、「LightsailブラウザのSSHを許可する」のチェックを外して、自宅のグローバルIPアドレスを指定すればいいでしょう。

HTTP、HTTPSは通常はデフォルトのままフルオープンで構いませんが、私は管理画面のセキュリティを実装するまでは自宅のグローバルIPアドレスを指定します。自宅のIPアドレスについては、こちらのサイトなどで確認できます。

HTTP・HTTPSのアクセス制限は、WordPressログイン時のMFA適用や、ログインURLの変更を終えてから解除する予定です。

静的IPアドレスの設定

現在、インスタンスのIPアドレスは動的なため、静的なIPアドレスに変更します。静的IPアドレスに設定することで、独自ドメインを利用できます。動的IPアドレスだと、確実なドメインとIPアドレスの紐付けができないからです(動的だとIPアドレスが変わるので、変わる都度ドメインとIPアドレスの紐付けをするのは現実的ではありません。)。

「ネットワーキング」から、静的IPアドレスを作成します。

作成完了後の画面が以下です。

作成した静的IPアドレスを、既存のインスタンスにアタッチするだけで完了です。

独自ドメインの設定

独自ドメインの取得は完了している前提で続けます。Route53 でドメインを取得する方法は以下記事で記載しています。

「ネットワーキング」から、DNSゾーンを作成します。Route53 のホストゾーンから設定することもできますが、同一のコンソール画面で管理したいので DNS ゾーンから作成します。

DNSゾーンで使用できるレコードには制限があるので、注意が必要です。詳細はドキュメントをご確認ください。

Amazon Lightsail での DNS | Lightsail ドキュメント

登録済みのドメインを入力し、必要に応じてタグも入力します。

DNS ゾーンの作成が完了しました。

DNSレコードを編集し、Aレコードを編集します。

「@」は Apexドメインを表し、 www.exampl.com の場合、サブドメインを含まない example.com です。「@」ではなく、サブドメインを入力することもできます。解決先は、example.com と関連づける静的IPアドレスを選択します。

次に、ネームサーバーをドメインプロバイダ側で設定します。私は Route53 でドメインを取得したので、Route 53 の登録済みドメインからネームサーバの追加/編集をクリックし、Lightsail の DNS ゾーン記載のネームサーバーに上書きします。

余談ですが、私は当初上記の方法ではなく該当ドメインのホストゾーンの NS レコードからネームサーバーを上書きしました。その後ドキュメントを確認すると、登録済みドメインから編集するような内容が記載されていたため、登録済みドメインからネームサーバーを編集しました。

ネットを検索すると、ホストゾーンの NS レコードから変更している方法もありましたが、登録済みドメインから変更している方法が多く、ドキュメントでも登録済みドメインからの変更する方法が記載されていたので、登録済みドメインから編集する方がよさそうです。

私の場合、ドメイン名で WordPress へのアクセスを確認できたのは 1 日後でした(数時間では反映されず、翌日の時間が空いている時に確認しました。)。

ただし、今のままだとドメイン名でアクセスしても、{IPアドレス}.nip.io にリダイレクトされてしまうため、この設定を直します。

設定方法は、以下 bitnami(Lightsail の WordPress Multisite は bitnami によりパッケージされています)のドキュメントに記載されているとおりです。

Configure WordPress Multisite

インスタンスにSSH接続し、以下コマンドを実行。

sudo /opt/bitnami/configure_app_domain --domain {ドメイン名}

上記コマンドを実行することにより、WorePress とデータベースが更新されて、ドメインが認識されます。

(Google翻訳)
Prestashopなどの一部のアプリケーションでは、アプリケーションがそのドメインを「認識」し、ドメイン名がアプリケーションのURLに正しく反映されるように、追加の構成を実行する必要もあります。これは、コマンドラインツールconfigure_app_domainを使用して簡単に実行できます。このツールは、必要に応じて新しいドメインを使用するようにアプリケーション構成とデータベースを更新します。

https://docs.bitnami.com/aws/faq/configuration/configure-custom-domain/#update-application-configuration

これで、{IPアドレス}.nip.io にリダイレクトなしでドメイン名で WordPress にアクセスできます。

タイトルとURLをコピーしました