<Hazm Blog />

AWS LightSailで低コストHTTPS対応Wordpress構築

Cover Image for AWS LightSailで低コストHTTPS対応Wordpress構築
Hazm
Hazm

このブログをAWS LightSailを使用して構築してみたところ (現在提供しているサイトはNuxtで構築されたWebサイトです) 、低コストかつ手間なく高速にWordPressブログを立ち上げることができました。今回はこのLightSailについて紹介します。

今どきWordpress?と思う方もいらっしゃるとは思いますが、技術は適材適所だと思います。世の中には多様なニーズが存在し、今WordPressを選択する場合も多々あることでしょう。例えば、ウェブサービスのヘルプページを提供する場合、非エンジニアが加筆編集できるCMSは求められていますし、企業のホームページなどでは未だ多くのニーズがあります。

なぜLightSailを選択したか

今回、ブログの立ち上げに際し、最低限満たしたい要件は以下でした。

  • 低コストで運用できること(1000円/月以下)
  • 独自ドメインを使用できること
  • HTTPS通信ができること

これらの用件を満たすために、当初ConohaVPS等を利用し、証明書を別途契約し、Nginx + php-fpm / MariaDB の構成で運用していくことを考えていましたが、TwitterでLightSailについての呟きを見かけたことをきっかけに調べてみたところ、上記全ての用件を満たせた上で、VPSのようにroot権限が提供されていて自由にサーバーを操作できることと、HTTPSの設定が無料でできることに魅力を感じ、LightSailでの構築を試してみました。

LightSailでやったこと

大まかには下記の通りです。

  1. WordPressイメージでインスタンスを立ち上げる
  2. ドメインを使用してアクセスできるようにする
  3. SSHでログインし、初期設定を行う
  4. Let'sEncryptの自動設定ツールを起動し、HTTPSの設定を行う

上記の操作は、ほぼLightSail画面上と、SSHシェルで実施することができます。Route53やEC2など複数のサービスを横断して操作する必要がないのも魅力の一つです。

構築手順

早速構築を始めましょう。(所要時間30分)

1. WordPressイメージでインスタンスを立ち上げる

LightSail管理画面を開き、インスタンスタブから、「インスタンスの作成」をクリックします。

プラットフォームの選択:Linux
設計図の選択:(アプリ+OS)WordPress 5.4.2
インスタンスプランの選択:$3.5

SSHで接続したい場合は、"SSH キーペアマネージャー"の項目からデフォルトのキーをダウンロードしておきましょう。なお、Web上でコンソールを立ち上げることができるためオプションです。

最後に、インスタンスの作成ボタンをクリックすると、インスタンスが作成されます。

2. ドメインを使用してアクセスできるようにする

独自ドメインでアクセスできるよう設定します。やるべきことは下記の通りです。

  • 静的IPアドレスの作成(LightSail)
  • DNZゾーンの作成(LightSail)
  • ドメインのネームサーバー変更(お名前.com)
  • DNSレコード設定(LightSail)

立ち上げたばかりのインスタンスにはIPアドレスが割り当てられていないため、外部からアクセスができません。まずは静的IPアドレスの作成を行います。 IPアドレスを割り当てるには、LightSail「ネットワーキング」タブの「静的IPの作成」をクリックします。 インスタンスへのアタッチの項目では、先ほど作成したインスタンスを選択します。その後、「作成する」ボタンをクリックします。

次に、DNSゾーンの作成を行います。LightSail「ネットワーキング」タブの「DNSゾーンの作成」をクリックします。登録済みドメインの入力の蘭には、自分で管理している独自ドメイン名を入力します。今回は、hazm.jpを設定しました。

「DNSゾーンの作成」ボタンをタップすると、「ネットワーク」タブの「グローバル」にゾーンが作成されますので、ここをクリックします。 画面下部にネームサーバーが表示されていますので、ドメインのネームサーバー設定でこちらを設定します。

今回、私はお名前.comで契約しているので、そちらの管理画面で設定しました。お名前.com管理画面「ドメイン>ドメイン設定>ネームサーバー設定」で設定を行いました。

次に、DNSレコード設定を行います。ドメインがどのIPアドレスに紐付け(解決)させるかを設定します。推奨の設定は下記の通りです。@ドメイン名そのものを意味します。つまり https://hazm.jp をルーティングします。wwwは多用されるサブドメインですが、近年ではサブドメインなしへリダイレクトさせてしまうことが多いと思います。今回立ち上げるWordPressイメージでは、初回起動時にこのリダイレクト設定を行えるので、設定しておくことをお勧めします。

@.hazm.jp -> 先ほど設定した静的IP
www.hazm.jp -> 先ほど設定した静的IP

Let'sEncryptの自動設定ツールを起動し、HTTPSの設定を行う

ここからはサーバーコンソールにログインして設定を行っていきます。LightSail管理画面のアイコンをクリックすることでコンソールが立ち上がります。インスタンスを作成する際にSSHキーをダウンロードしている場合は、そのキーを使用してSSHクライアントからログインすることができます。

ログインすると表示されている文字に注目します。インスタンスイメージはbitnamiが提供しており、便利なツールを用意してくれています。その中のLet'sEncrypt設定を行います。

sudo /opt/bitnami/bnhelper-tool
Domains

Please provide a valid space-separated list of domains for which you wish to 
configure your web server.

// アクセスされるドメイン名を入力
Domain list []: hazm.jp www.hazm.jp

----------------------------------------------------------------------------
Enable/disable redirections

Please select the redirections you wish to enable or disable on your Bitnami 
installation.

// HTTPをHTTPSにリダイレクトするか?
Enable HTTP to HTTPS redirection [Y/n]: Y

// hazm.jpをwww.hazm.jpにリダイレクトするか?
Enable non-www to www redirection [Y/n]: n

// www.hazm.jpをhazm.jpにリダイレクトするか?
Enable www to non-www redirection [y/N]: y

----------------------------------------------------------------------------
Changes to perform

The following changes will be performed to your Bitnami installation:

1. Stop web server
2. Configure web server to use a free Let's Encrypt certificate for the domains: 
hazm.jp www.hazm.jp
3. Configure a cron job to automatically renew the certificate each month
4. Configure web server name to: hazm.jp
5. Enable HTTP to HTTPS redirection (example: redirect http://hazm.jp to 
https://hazm.jp)
6. Enable www to non-www redirection (example: redirect www.hazm.jp to 
hazm.jp)
7. Start web server once all changes have been performed

// Yを入力
Do you agree to these changes? [Y/n]: Y

下記のように警告が出る場合は、DNSが浸透するまで少々時間を置いて再度試してください。私の環境では30分ほどで進めるようになりました。

Warning: The domain 'hazm.jp' does not resolve, please fix its DNS entries or 
remove it.

続きまして指示通りに入力を進めます。

----------------------------------------------------------------------------
Create a free HTTPS certificate with Let's Encrypt

Please provide a valid e-mail address for which to associate your Let's Encrypt certificate.

Domain list: hazm.jp www.hazm.jp

Server name: hazm.jp

// メールアドレスを入力
E-mail address []: youremailaddress@gmail.com

----------------------------------------------------------------------------
Performing changes to your installation

The Bitnami HTTPS Configuration Tool will perform any necessary actions to your 
Bitnami installation. This may take some time, please be patient.

----------------------------------------------------------------------------
Success

wordpressのパスワードを取得します。

cat bitnami_application_password

あとは、/wp-admin からログインすることができます。

ここまでの操作でhttpsでアクセスできるwordpressを構築完了です。

今回のまとめ

AWS Lightsail を利用すると、低コストで運用可能で、HTTPS接続にも対応したWordpressサイトを高速に構築することができました。HTTPS対応も、自動設定ツールがインストールされていて、証明書を別途用意する必要なく、無料で対応することができました。

レンタルサーバーを利用するのと比べて、root権限を持ったVPSのように利用できるため、自由度の高い環境を作り上げることができます。この部分に関してメリットを感じられる場合、LightSailが選択肢に入ってくるのかなと思います。

それでは。