【AWS】EC2上にWordpress作成

## はじめに
　今回は、AWSハンズオンの中で誰もが一度はやってみたかった、EC2上にWordpress構築の操作手順のご説明を書いていきます。
 私もAWS経験はない状態で作成しており、誰もが躓くような部分の説明も組み込んでますので、安心してこの記事を参考に最後まで構築を終えることが出来ると思います！
 少し、長くなると思いますが丁寧に説明していきます。

## 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/a8a78189-5812-e280-f7b0-216a953d3172.png)

## 構築に必要なAWSリソース
・EC2×２
・VPC
・サブネット（パブリック×２、プライベート×２）
・InternetGateway（以降はIGWと表記）
・RDS
・SecurityGroup×２（EC2用、RDS用）（以降はSGと表記）
・RouteTable×２（パブリック用、プライベート用）

## 構築順序
### 1. VPCの作成　![こちらの記事を参照](https://qiita.com/Hiro_tech/items/7b63e3f7899e75d9845f)　
### 2. サブネット作成　![こちらの記事を参照](https://qiita.com/Hiro_tech/items/7b63e3f7899e75d9845f)
### 3. IGW作成（Pubにて）![こちらの記事を参照](https://qiita.com/Hiro_tech/items/7b63e3f7899e75d9845f)
### 4. EC2（AmazonLinux2）![こちらの記事を参照](https://qiita.com/Hiro_tech/items/7b63e3f7899e75d9845f)、EC2のSG作成（インバウンドにSSH、HTTPを設定）
### 5. ルートテーブル編集
### 6. RDSの作成
### 7. EC2にwordpressをインストール
### 8. WebブラウザからEC2のIPへアクセス
### 9. wordpressの初期設定
### 10. EC2を停止して、AMI作成　～　AMIから別のサブネットへEC2起動

10個の構築順序があり、とても長いと思いますので、既に理解しているよ～という方は、その手順を省略して進めていってください。

## 構築
### 1~4の項番に関しては、以前投稿した記事がありますのでそちらを参照してください。
![こちらの記事を参照](https://qiita.com/Hiro_tech/items/7b63e3f7899e75d9845f)　

### 4. EC2のSG作成
➀１つ目のインバウンドルール：「タイプ：SSH」、「送信元：0.0.0.0/0」
➁2つ目のインバウンドルール：「タイプ：HTTP」、「送信元：0.0.0.0/0」
➂「ルールを保存」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/5b19fe89-a7bf-918d-c158-d809a9814473.png)

### 5. ルートテーブル編集
5-1. パブリックサブネット用のルートテーブル
➀画面左の「ルートテーブル」押下

➁画面右の「ルートを編集」押下

➂「送信先：0.0.0.0/0」「ターゲット：作成したIGW」を追加設定、２行目の「local」は、デフォルトで設定されているため、変更する必要はない。
※なお、「ルート編集」押下後の操作は、以前投稿した記事がありますのでそちらを参照してください。
![こちらの記事を参照](https://qiita.com/Hiro_tech/items/fc328ba00885adef9654)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/b0aa0927-f401-7239-9725-ca04f62c9f13.png)

5-2. プライベートサブネット用のルートテーブル
作成時のデフォルト設定（「local」のみ）のままで良いため、手順は省略する。

### 6. RDSの作成
6-1.サブネットグループの作成
➀RDSコンソール画面にて、「サブネットグループ」押下

➁「DBサブネットグループを作成」押下

➂名前の欄に任意の名前を入力

➃自身の作成したVPCを選択

➄作成したサブネットが所属するAZを２つ指定

➅作成したプライベートサブネットを２つ指定

➆「作成」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/d7d02ff1-6e08-511d-1b10-b71c4b7db5b1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/a6dd094f-6c2e-ea71-97eb-77876132cb4a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/0bbca483-b129-2103-278d-6177622e4314.png)

6-2.RDS作成
➀「データベース作成」押下後、「標準作成」を選択

➁「MySQL」を選択

➂「開発/テスト」を選択

➃「マルチAZ DBインスタンス」を選択

➄「マスターユーザ名」：任意の名前を入力

➅「セルフマネージド」を選択

➆「マスターパスワード」：任意の名前を入力

➇「インスタンスの設定」にて、「バースト可能クラス」選択後、「dbt3.micro」を選択
　理由：一番安価なインスタンスのため

➈「ストレージ割り当て」：20とする。

➉「EC2コンピューティングリソースに接続しない」を選択

⑪自身の作成したVPCを選択

⑫自身の作成したサブネットグループを選択

⑬「パブリックアクセス」は、「なし」を選択

⑭「VPCセキュリティグループ」は、「新規作成」を選択

⑮「パスワード認証」を選択

⑯「拡張モニタリングの有効化」のチェックを外す

⑰「最初のデータベース名」：任意の名前を入力

⑱「自動バックアップを有効にします」のチェックを外す

⑲「データベースの作成」を押下

※「マスターユーザ名」と「マスターパスワード」は、どこかにメモしておく。後で使用するため。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/470a7750-10a5-26c9-0efd-3125b4d1d0e7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/b3671ecf-5f9a-afe5-a446-ffcd39ddbe63.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/a8c4da7f-2d37-0faf-b3b1-656ec366920c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/e432c7ac-a45b-30a7-8412-8e0e8ee8ee79.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/58de5bb1-0a34-c71d-5d88-3f7587ed967d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/50b90d56-01ec-ef0d-0df6-4dfd46e3d9ae.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/0366dad5-787c-bc25-885e-59125ca3ad1a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/da9e679c-da61-0b97-590b-5614c38f240f.png)

6-3.RDS用SGの作成
➀SG名を押下

➁「インバウンドルールの編集」にて、EC2のSGを指定し、「ルールを保存」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/045ee410-f366-8e93-f8c6-839895d72a3a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/10c5af70-c8fd-9b73-d1fc-d102b0a1c8a2.png)

### 7. EC2にwordpressをインストール
前提：teratermもしくは、AWSコンソール上のターミナルソフトからEC2への接続が完了している。
![こちらの記事を参照](https://qiita.com/Hiro_tech/items/23c07f5f1497402315a9)

ここからは、下記のコマンドをひたすら実行

・root権限に変更
``` 
sudo su -
```
・インストールパッケージの最新化
```
yum -y update
```
・wordpressに必要な資材のインストール
```
amazon-linux-extras install php7.2 -y
```
```
yum -y install mysql httpd php-mbstring php-xml gd php-gd
```
```
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
```
・httpdの起動設定
```
systemctl enable httpd.service
```
```
systemctl start httpd.service
```

### 8. WebブラウザからEC2のIPへアクセス
➀EC2のパブリックIPをコピー

➁Webブラウザの検索バーにて、➀でコピーしたIPを貼り付けて、検索するとwordpressの初期設定画面が表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/8c8fe740-ecf6-69f2-f615-9ad3a3f89fe7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/8813ed74-bd5d-e8aa-ffcc-2d5dba43c5d7.png)

### 9. wordpressの初期設定
➀RDSのエンドポイントをコピー

➁「データベース名」にRDS作成時のデータベース名を入力

➂「ユーザ名」にRDS作成時のマスターユーザ名を入力

➃「パスワード」にRDS作成時のマスターパスワードを入力

➄「データベースのホスト名」に➀でコピーしたRDSのエンドポイント名を入力

➅～➈は、任意の値を入力

➉「ログイン」押下

⑪➆と➇で入力した値を入力して、ログイン

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/5c9477ea-341e-2bbb-5e9a-738251aa3f4f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/a3b0edfc-d9f5-30cd-3b98-22148e40c19c.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/b262a605-386e-fa0d-e3f8-386e906dff18.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/1cce1653-d83f-8111-b6b8-06e615700d35.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/d1ae33ff-e9c9-dca9-da66-68bf0ce594d8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/6d9318fe-18ad-f9c8-a2b6-41d2e02283b8.png)

### 10. EC2を停止して、AMI作成
前提：EC2インスタンスを停止

➀「アクション」押下

➁「イメージとテンプレート」押下

➂「イメージを作成」押下

➃「イメージ名」：任意の値を入力

➄「イメージを作成」押下

➅作成したAMIのチェックボックスにチェックを入れる。

➆「AMIからインスタンスを起動」押下

➇「名前」：任意の値を入力

➈「キーペア名」：EC2作成時に作成したものを選択

➉自身の作成したVPCを選択

⑪EC2を作成していない方のパブリックサブネットを選択

⑫「パブリックIP自動割り当て」を「有効化」

⑬「ファイアーウォール（セキュリティグループ）」の「既存のセキュリティグループを選択する」を選択

⑭EC2作成時のSGを選択

⑮「インスタンスを起動」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/d3765993-9b89-fea0-21e8-e32a974a7417.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/65de68cc-bf3a-0f25-d1af-74fd11fe53d9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/950019d8-9b0d-2794-a8b0-5f6099c30136.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/cb8ba862-ef59-f4b8-7e58-9720fd7d2659.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/b5f0267a-4eb2-eab3-d615-7b0ed624ead7.png)


## 構築を終えての感想
　とても説明が長くなって、ここまで読み終えた方は、大変ご苦労様でした（笑）
 私は、cloudtechの永久会員となり、未経験ながらこのようなハンズオンの習得ができるようになりました。
 なので、AWSを本気で学びたいと考えてる方は、ぜひ一緒に学んでみませんか？