Amazon Lightsailを用いてWordPressを一瞬で公開する

Amazon Lightsailを用いてWordPressを公開した。
細かい設定など特に何もしなかったら公開するまで5分程度でできたので、メモしておく。

# 前提
- awsアカウントを持っている
- お名前ドットコムなどで取得したドメインを持っている

# やってみる

## Amazon lightsail でインスタンスの作成

- https://lightsail.aws.amazon.com/ に接続する

<img width="1415" alt="スクリーンショット 2018-05-20 16.37.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/142359/90264aa2-f1f5-e4fc-6662-4edab77ff218.png">

- インスタンスを作成を押す

![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/960431db-2776-339f-c14d-148507c6fa63.png)

- プラットフォームをLinux、アプリ+OSをWordPressを選択
- 国内のユーザー向けのサイトなら、東京リージョンを選択


![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/5790fc38-d622-a351-e71e-679120d5985e.png)

- SSH キーペアが必要な方はダウンロードする
- 適切なインスタンスプランを選択する（※）
- 適当な名前を設定して作成する

- （※）作成後にインスタンスプランを変更するには、スナップショットを取ってAWS CLIを利用して再生成して切り替えるイメージとなります
    - 参考）https://dev.classmethod.jp/cloud/aws/amazon-lightsail-scaleup/

![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/35e377e1-b4a8-17e5-2974-1c145570626c.png)

- 保留中となる
- 1分ほどでこれが起動中になる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/3072bd68-817b-ace4-8a3d-e640e8cc1107.png)


- クリックするとパブリックIPが確認できる
 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/37f14cea-de73-d3d8-bb67-1ba3dda89b10.png)

- パブリックIPに接続するとWordPressがすでに世の中に公開されていることが確認できる！早い！
- SSHを使用して接続、を押すと、ブラウザ上からコマンドが入力できるようになる
    - SSHで接続する環境を持っていなくても気軽に確認できます

## WordPressの設定

- SSHで接続したら、`bitnami_application_password` というファイルがあるのでそこに書かれている内容は記録しておく
- `http://(パブリックアドレス)/wp-admin` に接続して管理画面にアクセスする
- ユーザー名はuser、パスワードは先ほど`bitnami_application_password`に書かれていた内容を入力
- 管理画面にログイン完了！
- 必要に応じて自分なりの設定をしていこう！

## 独自ドメインの設定
### 固定IPの取得
- 先ほどPublic IPでアクセスしたが、このIPは固定されていないため、定期的に変わる。
- そのため独自ドメインを設定するには静的IPを作り設定しておくことが必要。
- ネットワークから静的 IPの作成をする、適当に名前をつけてアタッチするとすぐに静的IPが取得できます
 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/e41894ec-a036-38c9-c268-7507eea54a51.png)

### LightsailのDNSゾーンを設定する
- DNSゾーンの作成を選択する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/c8f5b8d9-8f80-6f81-99bf-f98b09c3b083.png)

- お名前ドットコムやRoute53などで取得したドメインを入力して作成する

### DNSゾーンのレコード設定をする
- DNSゾーンが作成できるとネームサーバーが表示されるので、それをプロバイダ側（お名前ドットコムなど）に登録する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/142359/dcbe9b4d-05c0-51b4-dfe4-26f55097a370.png)

## ちなみに(memo)
- SettingのGeneralからSite Languageを「日本語」とすると日本語になる
- デフォルトでは画面の右下にBitnamiの バナーが表示されるので、以下のコマンドを入力して削除する

```
sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
sudo /opt/bitnami/ctlscript.sh restart apache
```

- 無料 SSL/TLS 証明書を使ってhttps化する

```
cd /tmp
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto
./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d ドメイン名
sudo cp /etc/letsencrypt/live/ドメイン名/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo cp /etc/letsencrypt/live/ドメイン名/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo /opt/bitnami/ctlscript.sh restart apache
```
Let's Encrypt についてはこちらを参考　[Let's Encrypt 総合ポータル](https://letsencrypt.jp/)

追記：Let's Encryptは3ヶ月で証明書が切れるので、1ヶ月おきに証明書を新しくするcroneが必要らしい。以下毎月25日の4時に更新するcron

```
$ sudo crontab -e
1 4 25 * * /tmp/letsencrypt/letsencrypt-auto renew
2 4 25 * * cp /etc/letsencrypt/live/<ドメイン名>/privkey.pem /opt/bitnami/apache2/conf/server.key
3 4 25 * * cp /etc/letsencrypt/live/<ドメイン名>/fullchain.pem /opt/bitnami/apache2/conf/server.crt
4 4 25 * * /opt/bitnami/ctlscript.sh restart apache
```

- クライアントからssh接続するときは、ダウンロードしたキーペアの権限を変更して接続する

```
chmod 600 秘密鍵のパス.pem
ssh -i 秘密鍵のパス.pem bitnami@静的IP
```

- 最低限の作業はこれで終了。ここから色々設定していこう