Skip to content

Lightsailを使ってWordPressブログをつくってみた

学んだことのアウトプットの場として、何かないかなと探していたものの、どうせならAWSを使って自前でブログを作ってしまおうということで、今まで使ったことのなかったLightsailを使用してみた。 独自ドメインも使えるしね。

要はこのブログがLightsailで作成したそれなのだが、以下簡単に構築時のメモを置いておく。

Lightsailインスタンスの構築

  1. AWS管理コンソールから「Lightsail」へ移動
  2. 「Create instance」をクリック
  3. Instance locationはTokyo、AZはap-northeast-1aを選択
  4. 「Pick your instance image」は、Platformとして「Linux/Unix」、「Apps + OS」として「WordPress 5.6.1-1」を選択
  5. プランは最も安い3.5USD/月を選択
  6. SSH key pair、タグは適切に設定

Elastic IPの割り当て

EC2インスタンスを起動するときの、「自動割り当てパブリック IP」を有効にしたときと同様のパブリックIPアドレスの割り当てとなる模様で、以下の手順で、Elastic IPを適用。

  1. 起動したインスタンスの詳細画面に入り「Networking」タブへ移動
  2. 「PUBLIC IP」欄の「Create static IP」をクリックする
  3. 起動しているリージョンのAZが既に選択され、アタッチするインスタンスも自動で反映した状態でElastic IPの割り当てがされている状態になるので、そのまま「Create」をクリックする このとき払い出されるIPアドレスに固有の名前が付く。

DNS設定

ここは少しはまった。

当初、AWS管理コンソール側のRoute53でAレコードを書いていたのだが、以下のLet’s EncryptによるSSL化の手順の際に、「_acme-challenge.$DOMAIN」のレコード追加で複数の値が登録できなかったため、やりなおし。

チュートリアルなどを見ると、「Networking」のタブを選択するとDNSメニューがあると書いているが、LIghtsailで構築したインスタンス側の「Networking」タブを見ていたところがハマりポイント。

正しくは、Lightsailの自体のHOMEにある「Networking」タブが正解。

この画面内にある「Create DNS zone」からサブドメイン用のDNSゾーンを設定し、AWS管理コンソール側のRoute53には、サブドメイン用のNSレコードを設定することで対応した。

上記を対応後、Aレコードに、Elastic IPの割り当てで発行したElastic IPをブログのFQDNとして設定したいレコードを設定する。

Let’s EncryptによるSSL化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
sudo apt update
sudo apt install software-properties-common
sudo apt install certbot -y
DOMAIN=blog.kazzpapa3.com
WILDCARD=.$DOMAIN
sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly

# 手順中2度 _acme-challenge.$DOMAIN にTXTレコードを入れる場面があるため
# 指定の通りの文字列をTXTレコードに設定する

sudo /opt/bitnami/ctlscript.sh stop
sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh start
sudo chmod 666 /opt/bitnami/apps/wordpress/htdocs/wp-config.php && sudo chmod 666 /opt/bitnami/apps/wordpress/conf/htaccess.conf

※あとは、自動更新を行うようなスクリプトの設定が必要。(これは後日対応する。)

今回理解したこと

  • blueprintでWordPressを選択して立ち上げるとDebianで起動したこと。(起動当時のバージョンは10.10だった)
  • Lightsailは独自でVPC、DNSを持っていること。