ELB(ALB)の設定・接続・確認

# 内容
Application Load Balancerの設定を行う。
以下のような構成を構築する。
![ALB.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/32bb95b7-50e7-1536-fc0f-44e9c838d548.jpeg)


# 前提
・下記構成が既に配置されていること。
・セキュリティグループの通信許可設定がされていること
・EC2にApacheがインストールされていて起動していること

```
# yum install -y httpd
# systemctl start httpd.service
# systemctl status httpd.service
# ps -ef | grep -v grep | grep apache
```
![ALB2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/50427889-b3b2-b94a-4919-97d2b439ae51.jpeg)

# 手順
## 各サーバにHTMLファイルを配置する
/var/www/html配下にそれぞれ以下を記載したindex.htmlを配置します。
・ap-northeast-1aには**ap-northeast-1a**が記載されたファイルを格納します。
・ap-northeast-1cには**ap-northeast-1c**が記載されたファイルを格納します。

### ap-northeast-1a
```
# vi /var/www/html/index.html
<html><h1>ap-northeast-1a</h1></html>

# cat index.html
<html><h1>ap-northeast-1a</h1></html>
```

### ap-northeast-1c
```
# vi /var/www/html/index.html
<html><h1>ap-northeast-1c</h1></html>

# cat index.html
<html><h1>ap-northeast-1c</h1></html>
```

### 表示確認
それぞれのインスタンスのIPアドレスをコピーしてブラウザに張り付けて
上記のap-northeast-1a、ap-northeast-1cが表示されることを確認します。
これでELBによる振り分けを行った時にそれぞれ1aと1cに振り分けられていることを確認できます。

![ss_000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/fdf0c1f3-ce59-6f87-067e-adb45d201ee3.jpeg)
![ss_001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/6aa75ad2-72da-d7e3-1216-f14f53db6048.jpeg)


## ALBの作成
### ログイン～作成画面まで
[AWSマネジメントコンソール]⇒[サービス]⇒[コンピューティング]⇒[EC2]を選択します。
![ss_002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/f0648d03-2bcd-b7b9-d288-601f0081db5d.jpeg)

[EC2ダッシュボード]⇒[ロードバランシング]⇒[ロードバランサー]を選択します。
![ss_003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/6f8a20ce-ca42-5408-20a7-be3322f90a02.jpeg)

ロードバランサー一覧画面より[ロードバランサーの作成]を押下します。
![ss_004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/fd603570-ef77-3d32-3f85-606e159417db.jpeg)

### ALBの選択
ALB、NLB、CLBの3種類の中からALBを選択します。
![ss_006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/56c91c04-7208-5a56-7ccf-56dc3aabf50d.jpeg)

### ロードバランサーの設定
ロードバランサーの設定を行います。赤枠の部分の設定となります。
![ELB2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/732675ac-6599-3197-2bd0-a7aeb4ca8653.jpeg)


今回は外部用なのでインターネット向けでipv4を選択。
プロトコルはHTTPでポートは80を使用。ここでHTTPSを選択すると次の画面で追加設定がありますが今回はHTTP。

| 設定  | 値 |
|:-----------------|------------------:|
|  スキーム | インターネット向け |
| IPアドレスタイム  | ipv4 |
| リスナー | HTTP:80 |

![ss_007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/0a11cbf5-7c36-2ce2-2516-42667f026f3f.jpeg)

### セキュリティ設定の構成
今回は特に設定する必要はないです。
![ss_008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/e54ba1b9-e79e-e236-cd8d-0ffe0ac25a89.jpeg)

### セキュリティグループの設定
HTTPの通信許可設定がされているセキュリティグループを作成するか、割り当てを行います。
![ss_009.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/28743ddc-860a-10ea-c1cf-c79241aba031.jpeg)

### ルーティングの設定
ここから振り分け先の設定を行います。赤枠の部分となります。
![ELB3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/4a161c45-c1d2-5d66-af45-45292ab0799a.jpeg)


ヘルスチェックの詳細設定は今回すぐにUnHealthyを確認したいので間隔を短くしています。

**ターゲットグループ**

| 設定  | 値 |
|:-----------------|------------------:|
| ターゲットの種類 | インスタンス |
| プロトコル  | HTTP |
| ポート | 80 |

**ヘルスチェック**

| 設定  | 値 |
|:-----------------|------------------:|
| プロトコル  | HTTP |
| パス | / |

![ss_011.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/84f68761-f010-59ca-f932-47234970e8cb.jpeg)

### ターゲットの登録
画面下部にターゲット登録可能な設定が表示されるので選択後[登録済みに追加]を押下します。
※Apacheを起動しておかないと表示されません。

![ss_014.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/9bdf1b16-7759-8a30-4091-3822e0a09cd3.jpeg)

### 作成完了
[ロードバランサーを正常に作成しました]と表示されればELBの作成が完了となります。
![ss_016.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/f16e54a1-b4fc-74a7-e0b5-fe233ac8238b.jpeg)


## 接続確認
[作成したELB]⇒[説明タブ]よりARNをコピーしてブラウザに貼り付けます。
何回か行うと**ap-northeast-1a**と**ap-northeast-1c**が表示され、振り分けが行われているのが分かります。

![ss_028.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/f682cd97-92f9-dc91-ae22-11a868566b96.jpeg)


# ELB+α
リスナーIDがELBのプロトコルと待ち受けポート(下の図赤枠)で、転送先が設定した振り分け先のターゲットグループ(下の図青枠)となります。
![ss_017.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/1032162b-ea74-d85f-5a23-b2f29c0ea447.jpeg)

![ELB4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/4fd92eae-36db-91ec-ddb2-82efbfe6a9e6.jpeg)

振り分け先が正常か否かはターゲットグループのターゲットタブかモニタリングタブで確認できます。
1aのApacheは停止、1cのApacheは起動している状態だと
1aのステータスはunhealthy、1cのステータスはhealthyとなります。
![ELB5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/23692e0c-c9fd-fe88-e7a1-dfa11b8c08d7.jpeg)


![ss_029.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510919/658ed29a-5aba-e836-f408-4173aead0ae0.jpeg)

# 終わり