AWSにWordPressを構築してみた

# はじめに
日々の作業を記録しておきたい衝動にかられたのでWordPressを構築してブログとして使っていくことにした。
とりあえずAWSに構築して動作確認までをやってみる。

# 構築
チャッチャと作っていく。

### AWSにインスタンスを構築する
ちょっと調べたらどうやらAWSでWordPressが最初から構築されているAMI(Amazon Machine Image)が用意されているとのこと。
やったぜぇぇぇ！
今回は**「ami-6cd9050a」**と言うAMIを使ってインスタンスを作成してみた。
ストレージは15GBとりあえず割り当てた。
![スクリーンショット 2020-01-09 15.39.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563625/9ca9b7bb-cefd-e8d9-a9a4-73ea5892c8f5.png)

パブリックIPが変わらないように静的パブリックIPを取得して作ったインスタンスに割り当てておく。
![1F4RIhV0DQiaGUe1578552948_1578552975.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563625/d23c8db1-033a-adee-2a60-bced20427335.png)

アクセスしてみる
![スクリーンショット 2020-01-09 16.19.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563625/a382d285-0a9f-c996-1c3c-a8da1c3dc8bd.png)

もうできとるやんけ！
ってことで初期設定していく。
DB設定はユーザー名は「admin」。それ以外は適当に。
![yS3wRTNB6t5SoMb1578554860_1578554876.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563625/63dbfe48-b698-306e-9c5c-df3adf7872cf.png)

サイト設定も適当に入力してインストール開始！
そして再度アクセス。
![スクリーンショット 2020-01-09 16.26.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563625/14ed7e10-9240-a8ce-1bed-74ed52043cb7.png)

できてますねぇ・・・

### サーバーサイドの初期設定
とりあえずセキュリティのためにやっておかないといけないサーバ設定を今のうちにやっておく。

- パッケージの更新
- パッケージ自動更新設定追加
- タイムゾーン変更
- 文字コード変更
- ユーザー作成
- 初期ユーザー削除

ってことでさくっと。
#### サーバーログイン
AWSにインスタンスを作成した時にダウンロードしたpemファイルの直下で作業。

```
# 鍵ファイルの権限を変更
$ chmod 400 olaf_system.pem

# 初期ユーザーでログイン
$ ssh -i "olaf_system.pem" ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
Last login: Tue Oct 10 10:26:09 2017 from xxx.xxx.xxx.xxx

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/
29 package(s) needed for security, out of 85 available
Run "sudo yum update" to apply all updates.
Amazon Linux version 2018.03 is available.
```

#### パッケージの自動更新
```
$ sudo yum update -y
```

#### パッケージ自動更新設定追加
```
# インストール
$ sudo yum install yum-cron -y

# 有効化確認
$ sudo chkconfig --list yum-cron

# 有効化
$ sudo chkconfig yum-cron on

# 自動更新設定
$ sudo sed -i "s/^apply_updates.*$/apply_updates = yes/g" /etc/yum/yum-cron.conf

# 起動
$ sudo service yum-cron start

# 起動確認
$ sudo service yum-cron status
```

#### タイムゾーン変更
```
# 現在の設定がUTCなのを確認
$ date

# ローカルタイムを【Japan】に変更
$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# ハードウェアクロックを【Japan】に変更
$ sudo sed -i "s/\"UTC\"/\"Japan\"/g" /etc/sysconfig/clock

# システム再起動
$ sudo reboot

# 現在の設定がJSTなのを確認
$ date
```

#### 文字コード変更
```
sudo sed -i "s/en_US\.UTF-8/ja_JP\.UTF-8/g" /etc/sysconfig/i18n
```

#### ユーザー作成
```
# newuserを追加
$ sudo adduser newuser

# sudoersファイルの編集
$ sudo visudo
## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
+ %newuser       ALL=(ALL)       NOPASSWD: ALL

# newuserへ切り替え
$ sudo su - newuser
```

#### 公開鍵の設定
公開鍵・秘密鍵の作成方法は割愛。

```
# newuserのホームディレクトリに.sshディレクトリを作成
$ mkdir .ssh

# ファイルパーミッションを700（所有者のみ、読み取り、書き込み、削除が可能）に変更
$ chmod 700 .ssh

# authorized_keysを作成
$ touch .ssh/authorized_keys

# ファイルパーミッションを600（所有者のみ、読み取りおよび書き込みが可能）に変更
$ chmod 600 .ssh/authorized_keys

# 自分の公開鍵を登録
$ vi .ssh/authorized_keys
```

#### 初期ユーザー削除
```
# 新規ユーザーでログインし直す
$ ssh -i ~/.ssh/id_rsa_newuser newuser@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
Last login: Thu Jan  9 16:51:06 2020

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/

# ec2-userとそのホームディレクトリの削除
$ sudo userdel -r ec2-user
```

長くなったのでドメイン周りの設定は別途書くことにした。
続きはこちら->「[AWSに構築したWordPressに独自ドメインを割り当ててみた](https://qiita.com/olaf_system/items/46723a020456120ffd65)」