【AWS ELB】httpアクセスをロードバランシング

##目標
ELBを作成し、httpアクセスをロードバランシングすること

###1. バックエンドインスタンス（EC2）の作成（注意手順以外は省略）

①**httpd自動起動用ユーザデータ（※）を設定する**
![tempsnip1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/837d83e5-44f9-e725-8749-75b2fd490697.png)

※　内容は以下

```bash

#!/bin/bash
yum update -y
amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2
yum install -y httpd mariadb-server
systemctl start httpd
systemctl enable httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;
find /var/www -type f -exec chmod 0664 {} \;
echo `hostname` > /var/www/html/index.html
```


②**80番ポートのセキュリティグループを空ける**
![tempsnip2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/d410efc6-2502-500c-28d7-6151222d689e.png)

③**インスタンス作成を実行する（ロードバランシング検証のため複数インスタンス作成する、同一VPC内に作成すること）**

④**ブラウザから作成したインスタンスのパブリックIPアドレスを入力し、httpアクセスを検証する（※）**
<img width="960" alt="キャプチャ.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/a0e0919c-f145-aaf7-707f-dc8a77e4bc0a.png">
※パブリックDNS名がブラウザ上に表示されればOK

⑤**作成したインスタンス詳細画面より、VPCID及びサブネットID、セキュリティグループ名を確認する（ELB作成時に利用）**


###2. ELBの作成
①**ロードバランサーの作成をクリック**
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/8740a067-ead3-2382-51ea-531c8b83c4fc.png)

②**ALBを利用する**
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/8bdf1938-afed-901d-9164-cc36e9e1478c.png)

③**ロードバランサの詳細設定（※）を行う**
※設定情報は以下
名前：　**任意**
スキーム：　**インターネット向け**
IPアドレスタイプ：　**ipv4**
リスナー：　**HTTPプロトコル80番ポート**
VPC：　**バックエンドインスタンスのVPCID**
アベイラビリティゾーン：　**バックエンドインスタンスのサブネットID**

<img width="960" alt="キャプチャ1.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/fdab1b4c-2ff4-3b18-669c-f2a208eb9f48.png">
<img width="960" alt="キャプチャ2.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/1680f51d-f9eb-dab2-6841-e1746fd82d68.png">

③**ELBのセキュリティグループを設定する（※）**
※バックエンドインスタンスにアタッチした既存セキュリティグループを利用
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/a29240b0-31cf-1af7-18cc-6d5e459674c4.png)

④**ターゲットグループ作成、ヘルスチェック設定（※）**
※今回はターゲットグループ名のみ入力で他はデフォルト設定のままとした
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/ecdeab67-4a8d-361f-ffdb-352cd8cbbcb4.png)
<img width="959" alt="キャプチャ2.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/ac602701-403e-03bc-862e-dbf8a51397c1.png">

⑤**ターゲットの登録**
ELBバックエンドインスタンスを登録する
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/2802ada9-b9fb-818f-7fc8-bd7801cf9563.png)

⑥**設定内容確認後、ELB作成実施**

⑦**作成したELBのステータスが「active」になっていることを確認**
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/095a78ff-4a37-7058-be42-da7f5a765509.png)

⑧**ターゲットグループ内インスタンスへのヘルスチェックが正常であることを確認**
![tempsnip2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/df656676-7529-0ff3-0141-8593bfc0ac5c.png)

###3. 疎通検証
①**ELB詳細画面からDNS名を取得**
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/867229be-8caa-f510-046a-2aa11a414f33.png)

②**取得したDNS名を利用してブラウザアクセス**
⇒アクセス毎に異なるバックエンドインタンスへ接続されることを確認出来たらOK（キャッシュアクセスを防ぐため一方のアクセスにはブラウザシークレットモードを利用する）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/b0bb3435-63bf-1a35-ee27-1d4c8a0d626f.png)