【AWS】EC2上にWordpress作成　～冗長構成編～

## はじめに
　前回の続きです。プラスアルファで冗長構成を組んでみましたので、参考にしてみてください。

## 構成図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/dcb109db-ddac-5f49-4dbb-d3b6c7e0382b.png)


## 今回のデモで追加したAWSリソース
・ELB（ALB）
・SecurityGroup（ELB用）（以降はSGと表記）

## 構築順序
### 1. ALB（ロードバランサー）の作成
### 2. RDSへhttp通信先の変更設定（EC2のIP→ALBのDNS名）
### 3. EC2のSG変更
### 4. EC2の冗長試験
### 5. RDSの冗長試験

## 構築

### 1. ALB（ロードバランサー）の作成
➀「ロードバランサー」画面右の「ロードバランサーの作成」→「ALBを作成」押下

➁「ロードバランサー名」：任意の名前を入力

➂「スキーマ」：「インターネット向け」を選択

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

⑤「マッピング」：AZ及びサブネットについて、前回EC2を作成したAZ及びサブネットを選択

➅「SG」：ALB用のSGを作成し、選択

➆「ターゲットグループを作成」を押下
　➇～⑬までは、「ターゲットグループ」の作成手順となる。
 
➇「ターゲットタイプの選択」：「インスタンス」を選択

➈「ターゲットグループ名」：任意の名前を入力

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

⑪「次へ」押下

⑫「使用可能なインスタンス」：２つのEC2インスタンスにチェックを入れる。
※EC2インスタンスは起動中でないと、選択候補に表示されない。

⑬「保留中として以下を含める」押下

⑭「保留中のターゲットの登録」押下

⑮「デフォルトアクション」：上記で作成したターゲットグループを選択

⑯「ロードバランサーの作成」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/14eff728-2f22-6ab1-0af1-dfe1d945d414.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/4d93c493-46d2-f060-b9fc-a87b31a76d2a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/7c190167-310f-090a-752c-2052513fe77d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/2509c877-995c-6667-497e-4b350389b544.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/06241843-966c-4aec-ac68-9940d28d8d6e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/28c91a71-c59d-15c8-4ad3-8257f47b765c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/33793ce5-27a6-497d-5998-dc58aa29def7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/567fb70a-1235-5fd6-600c-9865ae21eea0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/161b4688-98e2-bddc-0e99-9484dfc7e8e9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/e3953104-7ce7-49dd-657e-789a9956aa87.png)



### 2. RDSへhttp通信先の変更設定（EC2のIP→ALBのDNS名）
前提：２つの内、どちらかのEC2へログインする。

ここからは、下記のコマンドを実行
```
mysql -h ＜RDSエンドポイント名＞ -u ＜ユーザ名＞ -p
```
```
USE ＜DBテーブル名＞
```
```
SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
```
```
UPDATE wp_options SET option_value = 'http://＜ALBのDNS名＞' WHERE option_name IN ('siteurl', 'home');
```



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/1a233451-7860-684a-0a74-71382d40424e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/6b90d4a1-582d-1f0e-81ed-32f3994889ac.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/936d46d8-14d5-c841-285f-332c3579b42f.png)



### 3. EC2のSG変更
➀EC2のSG画面にて、インバウンドルールへELBのSGからの通信を許可するよう設定

➁「ルールを保存」押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/dd22297b-b66a-907e-2f0c-9fb0e99e79fb.png)

### 4. EC2の冗長試験

➀起動中のEC2インスタンスの内、どちらか１つにチェックを入れる。

➁「インスタンスの状態」→「インスタンスを停止」押下

➂「停止済み」確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/a70702f7-5555-d1b1-fbf4-360908604c6f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/c4491a68-7dff-a846-3321-9cb17dc25f3c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/15e99c23-251f-b03b-ae45-12e2c99e35ac.png)


### 5. RDSの冗長試験

➀RDSコンソール画面にて、「アクション」→「再起動」押下

➁「フェイルオーバーで起動しますか？」にチェックを入れる。

➂「確認」押下

➃「ログとイベント」にて、DBの再起動からマルチAZインスタンスへのフェイルオーバーが完了しているログを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/f524af5d-2de1-9621-ed6d-39e1fb5696c0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/52661966-47ec-dcaf-26bf-f2c7374b673c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/f9afb82d-ec32-93f3-b33c-e0e44dd5eb3d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3898218/c0303c78-0b52-e837-eb06-269c0495645d.png)


## 最後に
　冗長構成を作成する手順は、いつも通りCloudTechを参考にさせていただきましたが、思ったよりも簡単だったという印象でした。
 ですが、本当に冗長されているのかブラウザ上の変化がなかったので、そこの部分の細工は必要だと感じましたので、ぜひ皆さんの作成の際は、そこまで意識して構築できると良いかもしれません（笑）