AWSシンプル構成でWordPressサイトを構築してみた。

##作成イメージ
![イメージ図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/e897bfed-def4-1c35-9f23-e133285b6513.png)

#ネットワークの作成
##VPCの作成
名前タグ：wp-vpc
IPv4 CIDRブロック：10.0.0.0/21
![VPCの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/ea4be04f-a8e1-7b60-994f-74907d764d66.png)

##サブネットの作成
###パブリックサブネットの作成
VPC ID：wp-vpc
サブネット名：wp-public-subnet-1
アベイラビリティーゾーン：ap-northeast-1a
IPv4 CIDR ブロック：10.0.0.0/24
![パブリックサブネット1作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/56e2abf8-5719-0a1f-1c7d-f88914438bcd.png)

###プライベートサブネットの作成
VPC ID：wp-vpc
サブネット名：wp-private-subnet-1
アベイラビリティーゾーン：ap-northeast-1a
IPv4 CIDR ブロック：10.0.2.0/24
![プライベートサブネット1作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/1ae17208-9496-834b-18c5-5a81f809153b.png)

#WEBサーバの作成
##EC2インスタンスの作成
###ステップ１:Amazonマシンイメージ(AMI)
Amazon Linux 2 AMI を選択
![EC2インスタンス作成step1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/9aa6e15f-8d16-daad-7138-634d3de9b9f2.png)
###ステップ２:インスタンスタイプの選択
t2.microを選択
![EC2インスタンス作成step2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/ace81fc5-bebb-4cd6-bc2f-490d380c5001.png)
###ステップ３:インスタンスの詳細の設定
ネットワーク：wp-vpc
サブネット：wp-public-subnet-1
自動割り当てパブリックIP：有効
![EC2インスタンス作成step3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/2a5d4401-75ca-2074-5e63-8f626a5eb869.png)
###ステップ４:ストレージの追加
そのまま
![EC2インスタンス作成step4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/bbf18ef3-2b6d-4e27-9660-69431f98b036.png)
###ステップ５:タグの追加
キー:Name
値:wp-webserver1
![EC2インスタンス作成step5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/dddfb890-e739-dd52-2079-1fdd16c983a7.png)
###ステップ６:セキュリティグループの設定
セキュリティグループ:wp-web-SG-1
説明:wp-web-SG-1
ルール:HTTPを追加(下記画像参照)
![EC2インスタンス作成step6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/e5f8397f-ab2f-a1c0-122d-1245fa966b31.png)
###ステップ７:確認
作成時に新しいキーペアを作成する。
キーペア名:wp-keypair
![EC2インスタンス作成step7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/58933504-40f3-f5e4-3c04-6000da8187ff.png)
###ステップ８:起動確認
インスタンスの状態が実行中を確認
![EC2インスタンス作成step8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/2b7e9208-30da-8188-eb2b-3009a103b7a3.png)

##インターネットゲートウェイの作成
###ステップ１:作成
名前タグ:wp-internet-GW
![インターネットゲートウェイの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/3d65dfdd-884d-7277-4ee3-ebc8e3a137c8.png)
###ステップ２:VPCにアタッチ
![インターネットゲートウェイのアタッチ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/ee2fe055-3025-823e-1a02-4f7e1c752fea.png)
###ステップ３:VPCを選択
使用可能なVPC：wp-vpcを選択してアタッチ
![インターネットゲートウェイのアタッチ2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/6367b1b7-70a8-402a-a8b4-abd7d8df53bb.png)

##パブリックサブネットへルートテーブルの作成
###ステップ１:wp-public-subnet-1ルートテーブルを選択
![パブリックサブネットへルートテーブルの作成1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/7d17171c-46ea-14f5-da71-08ffbaf27e38.png)
###ステップ２:ルートの編集
![パブリックサブネットへルートテーブルの作成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/3a73859e-2f0c-081c-f796-ec711eeeb53a.png)
###ステップ３:デフォルトルートを追加する
送信先：0.0.0.0/0
ターゲット：wp-internet-GW
![パブリックサブネットへルートテーブルの作成3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/cc5255fa-7815-83a7-dfec-836502f199ab.png)

##SSH接続確認
###ステップ１:キーペアを確認
コマンドプロンプトを起動してキーペアの保存先へ移動しキーペアファイル確認

```
cd C:\Users\tomsh\Download
dir wp-keypair.pem
```
![EC2インスタンス作成step9-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/1df01ba9-0863-c217-298c-df59a3b7898f.png)
###ステップ２:SSH接続
```
ssh -i wp-keypair.pem ec2-user@[EC2インスタンスのパブリックIP]
```
![接続確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/94f60e04-0f7e-b1b9-8678-2a05a7125279.png)
接続できました。

#RDSの作成
##DBサブネットグループの作成
DBサブネットグループを作成するために、別のアベイラビリティゾーンにパブリック・プライベートサブネットを１つずつ追加します。
###パブリックサブネット２の作成
VPC ID：wp-vpc
サブネット名：wp-public-subnet-2
アベイラビリティーゾーン：ap-northeast-1c
IPv4 CIDR ブロック：10.0.1.0/24
![サブネット追加1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/c66871ad-0e04-f103-4998-e91901d248b6.png)

###プライベートサブネット２の作成
VPC ID：wp-vpc
サブネット名：wp-private-subnet-2
アベイラビリティーゾーン：ap-northeast-1c
IPv4 CIDR ブロック：10.0.3.0/24
![サブネット追加2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/767f0fd9-253b-6288-cbb3-546f0766e1dd.png)

###DBサブネットグループ作成
名前：wp-subnet-group
説明：wp-subnet-group
VPC：wp-vpc
アベイラビリティゾーン：ap-northeast-1a, ap-northeast-1c
サブネット：10.0.2.0/24, 10.0.3.0/24
![DBサブネットグループを作成1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/e971e881-c247-2f9d-c23c-c753b613e0d7.png)
![DBサブネットグループを作成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/b9668b7b-7ec6-a038-64e1-3c109e3a5a7d.png)

##MySQLの作成
###データベース作成方法を選択、エンジンのオプション
標準作成のMySQLを選択
![データベース作成1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/0dbe477d-e57c-6b01-ded7-61d936a70ddc.png)
###テンプレート
開発/テストを選択
![データベース作成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/80a355df-28c7-665f-eef6-7941bc543907.png)
###設定
マスターユーザー名：wordpress
マスターパスワード：任意（後で使います）
パスワードを確認：マスターパスワードと同じ
![データベース作成3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/f3a7650e-d16d-f783-9766-b19ffad89f59.png)
###DBインスタンスサイズ
バースト可能クラスを選択し、db.t3.microを選択。（費用に余裕のある方は別のサイズを選んでもOK）
![データベース作成4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/ea5c84d2-344f-a1c9-7e8b-8fa293aaf5d2.png)
###ストレージ
そのまま
![データベース作成5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/2fd305f7-849b-be2d-3e3f-31b37a4b2b4b.png)
###可用性と耐久性
そのまま
![データベース作成6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/684ce9fe-2171-d60f-86c5-8001b5be55f9.png)
###接続
Virtual Private Cloud(VPC)：wp-vpc
サブネットグループ：wp-subnet-group
VPCセキュリティグループ：新規作成
新しいVPCセキュリティグループ名：wp-RDS-SG-1
アベイラビリティゾーン：ap-northeast-1a
![データベース作成7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/c1c629ef-1116-3fab-c094-9fa25c45e147.png)
![データベース作成8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/01ed56b6-73ee-195e-838f-76b671c73d0d.png)
###データベース認証
そのまま
![データベース作成9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/2cf79c8d-10d6-8c00-5dd2-f9c9997ea53c.png)
###追加設定
最初のデータベース名：wordpress
他はそのまま
![データベース作成10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/201c2055-f030-427b-2166-155cb22dd3fd.png)
###起動確認
起動までに少し時間がかかります。
ステータスが利用可能になったらOK
![データベース作成11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/337e8ec9-2316-8e36-0f7b-c93509ca92ab.png)
###セキュリティグループの編集
RDSへのアクセスをWEBサーバのみ受け付けるように変更を行う。
RDSのセキュリティグループのインバウンドルールを編集
![データベース作成12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/8111fc67-952a-beff-1dbe-c77efdb49d09.png)
###デフォルトソースを削除
デフォルトソースを削除する。
![データベース作成13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/a89d56f1-62e7-e22e-3b89-c210e6133fb8.png)
###ソースを追加
ソースへWEBサーバのセキュリティグループを追加する。
![データベース作成14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/b9a37465-7413-c3d2-387d-c78d403b4253.png)
###ルールを保存
保存する。
![データベース作成15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/38bd2a88-3b8d-f66f-b730-057759de05fc.png)
###変更内容確認
インバウンドルールのソースがwp-web-SG-1になっていることを確認する。
![データベース作成16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/17ef88f0-e9e1-5db0-6b29-169826b64cd6.png)

#WordPressのインストール
##webサーバへ接続
```
ssh -i wp-keypair.pem ec2-user@[EC2インスタンスのパブリックIP]
```

##rootユーザへ切り替え
```
sudo su -
```

##EC2内のパッケージを更新
終わるまで少し待ちます。
```
yum -y update
```

##PHP7.4のインストール
```
amazon-linux-extras install php7.4 -y
```

##必要ソフトのインストール
```
yum -y install mysql httpd php-mbstring php-xml gd php-gd
```

##Apacheの起動
```
systemctl start httpd.service
```

##Apacheの起動設定
```
systemctl enable httpd.service
```

##WordPressをダウンロード、解凍、コピー、権限変更
```
wget http://ja.wordpress.org/latest-ja.tar.gz ~/
tar zxvf ~/latest-ja.tar.gz
cp -r ~/wordpress/* /var/www/html/
chown apache:apache -R /var/www/html
```

##WEBサーバのパブリックIPを確認
![WEBサーバのパブリックIPを確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/8483115e-8c9e-e37f-73f0-8bf8fe9b58b9.png)

##ブラウザで確認したIPアドレスへアクセス
IPアドレスだけでアクセスするとhttpsでアクセスする為、http://を記述すること。
```
http://確認したIPアドレス
```

##WordPressインストール画面
![WordPress初期画面1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/2a273de8-3f65-0c86-e131-c77003a35cbe.png)

##進める前にRDSエンドポイントを確認
![RDSエンドポイント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/0dd70192-64f5-001d-7e4c-78900bfd46b7.png)

##WordPress初期設定入力
データベース名：RDS作成時に設定したデータベース名
ユーザー名：RDS作成時に設定したユーザー名
パスワード：RDS作成時に設定したパスワード
データベースのホスト名：RDSエンドポイント
![WordPress初期画面2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/59085e89-af3c-5702-12fc-4e1103b6a2ad.png)

##WordPress初期設定確認
初期設定入力が正しければインストール実行画面が表示されるのでインストール実行をクリック
表示されない場合は値が間違っているので見直してください。
![WordPress初期画面3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/fbfe3296-faec-ff33-ea7e-4581d008802b.png)

##WordPressのサイト情報を設定
サイトのタイトル：AWSブログ（なんでもOK）
ユーザー名：wordpress（なんでもOK。WordPress管理画面へログインする際に利用します。）
パスワード：なんでもOK。WordPress管理画面へログインする際に利用します。
メールアドレス：管理用のメールアドレスを設定
![WordPress初期画面4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/677d353d-191c-311f-6197-df975d8332ba.png)

##WordPress初期設定完了
成功画面が表示されればOK
![WordPress初期画面5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/7641a439-de31-ddb3-9d4b-a8038ca56f67.png)

##WordPressへアクセス
再度WebサーバへアクセスするとWordPressで作成したブログが表示されます。

```
http://WebサーバのパブリックIP
```
![WordPress.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/453678/7f1085db-350b-4554-8784-cb86f1f84eef.png)

これでWordPressの構築完了です。

AWSまだまだ勉強中なのでコメントいただけると嬉しいです。

AWS Cloud Techにて勉強中。興味のある方はお試しを。
https://aws-cloud-tech.com/

以上。