AWSの新しいELB(AWS Application Load Balancer)を試してみた

AWSのブログ, [New – AWS Application Load Balancer](https://aws.amazon.com/jp/blogs/aws/new-aws-application-load-balancer/)で, 新しいELB(AWS Application Load Balancer)について発表されました.

｢L7のルーティング｣, ｢HTTP2対応｣, ｢WebSocketのサポート｣など, これまで｢ELBにあったら...!｣という機能が多数追加されていて, 非常にワクワクする内容になっています.

というわけで, 簡単ではありますが東京リージョンで｢新しいELBの作り方｣を試してみました.

# 新しいELBの作成

![スクリーンショット_2016-08-12_1_52_59.png](https://qiita-image-store.s3.amazonaws.com/0/737/9d99a4b4-4bc0-ac9f-15f9-46046e7979e3.png)

いつもどおりに｢ロードバランサー｣をクリックして...

![スクリーンショット_2016-08-12_1_54_34.png](https://qiita-image-store.s3.amazonaws.com/0/737/d2097039-c6d8-9850-9c90-cecdb1b4bef7.png)

｢ロードバランサーの作成｣をクリックします. すると...

## 作成するロードバランサーの選択

![スクリーンショット 2016-08-12 1.18.39.png](https://qiita-image-store.s3.amazonaws.com/0/737/2a83c1a9-84af-fe93-8e2b-8bc9647bdfbd.png)

このように, これまでのELB(標準ロードバランサー)と, 新しいELB(アプリケーションロードバランサー)のどちらを作成するかを選択する画面になります.

今回は, 新しいELB... アプリケーションロードバランサー(ALB)を試したいので, 左を選びます.

## ステップ1: 基本的な設定, リスナー, アベイラビリティゾーン, タグ

![スクリーンショット_2016-08-12_1_44_30.png](https://qiita-image-store.s3.amazonaws.com/0/737/f8314bd5-ddb6-75e6-c3bc-4769d16a3f17.png)

まずは, ALBの基本的な設定とリスナー, そしてアベイラビリティーゾーンの選択を行います.

- 基本的な設定
    - 名前: ALBの名前です
    - スキーム: ちょっとわかりにくいですが, ｢インターネット向け｣を選べば外部向けの, ｢社内｣を選べば内部向けの(internalな)ALBを作成できます
- リスナー
    - ロードバランサーで利用するプロトコルと, そのポートを指定します. ｢HTTP｣と｢HTTPS(セキュアHTTP)｣のいずれかまたは両方を選ぶことができます
- アベイラビリティゾーン
    - ELBと同じく, ALBを配置するアベイラビリティゾーンを選択します
    - VPCを選ぶと, そこに存在するサブネットが表示されますので, ELBと同様に異なるアベイラビリティゾーンから2つ以上のサブネットを選びましょう

また, このステップでは, ロードバランサーにタグを設定することもできます.

## ステップ2: セキュリティ設定の構成

![スクリーンショット 2016-08-12 1.44.39.png](https://qiita-image-store.s3.amazonaws.com/0/737/833429f7-e05c-a957-4f4e-7d718347aaef.png)

続いて, ｢セキュリティ設定の構成｣です. 今回はHTTPのみ対応したALBを作るので, 特段設定することはありませんが, HTTPSに対応したALBを作る場合, ELBと同様にここでSSL証明書などの設定を行うようです.

## ステップ3: セキュリティグループの設定

![スクリーンショット_2016-08-12_1_44_46.png](https://qiita-image-store.s3.amazonaws.com/0/737/234a66f4-52b6-8049-8d81-b4067a6343d8.png)

ALBにセキュリティグループを割り当てることができます, 先の｢ステップ2: セキュリティ設定の構成｣と同様, このあたりは従来のELBを設定する時とほとんど変わりません.

## ステップ4: ルーティングの設定

![スクリーンショット 2016-08-12 1.45.03.png](https://qiita-image-store.s3.amazonaws.com/0/737/4d026c83-5913-8255-a0d8-11262b1d9586.png)

ALBの導入にあたり, ｢ターゲットグループ｣という概念が追加されており, このターゲットグループには複数のインスタンスを割り当てることができるようです.

そして, このターゲットグループをALBに割り当てることで, ALBへのリクエストが, 割り当てられたターゲットグループ内のインスタンスに対して分散して送られる, という感じになっているようです.

![スクリーンショット 2016-08-12 2.08.19.png](https://qiita-image-store.s3.amazonaws.com/0/737/1204968b-58b8-68b4-2334-244889412a71.png)

今回はターゲットグループも新しく作成しますが, 後述するようにターゲットグループのみを作成することもできるので, 既にターゲットグループが用意できている場合は, ｢既存のターゲットグループ｣を選ぶことで設定することができます.

## ステップ5: ターゲットの登録

｢ターゲットグループ｣を新しく作成する場合, ここでそのターゲットグループに割り当てる｢ターゲット｣を設定することができます.

![スクリーンショット_2016-08-12_1_46_13.png](https://qiita-image-store.s3.amazonaws.com/0/737/61f3aae9-8c7d-e878-ebe2-f9d8a34708a2.png)

このように, 稼働中のインスタンスが表示されるので, いくつか選択して｢登録済みに追加｣をクリックすると, ターゲットグループに, 選択したインスタンスが｢ターゲット｣として追加されます.

# ターゲットグループの確認と紐づくインスタンスの変更

![スクリーンショット_2016-08-12_1_52_59.png](https://qiita-image-store.s3.amazonaws.com/0/737/04e3bea3-d92d-5a39-d620-9c9dcee2b967.png)

メニューから, ｢ターゲットグループ｣を選択すると...

![スクリーンショット_2016-08-12_1_51_33.png](https://qiita-image-store.s3.amazonaws.com/0/737/ed497384-ec2f-e506-d1eb-6763ccab2682.png)

現在存在しているターゲットグループの一覧が表示されます.

![スクリーンショット_2016-08-12_2_18_05.png](https://qiita-image-store.s3.amazonaws.com/0/737/1c8fff44-76a3-47ab-8c68-5cab70a86c4c.png)

任意のターゲットグループを選ぶと, そこに紐づくインスタンスの情報や, 状態(ヘルスチェックの結果)などが表示されます.

｢ターゲット｣タブの｢編集｣をクリックすれば, ターゲットグループに対してインスタンスをひも付けたり, ひも付けを解除することもできます.

# ターゲットグループの作成

また, ｢ターゲットグループ｣の画面から, ｢ターゲットグループの作成｣をクリックすると, このように新しいターゲットグループを作成することもできます.

![スクリーンショット_2016-08-12_1_51_42.png](https://qiita-image-store.s3.amazonaws.com/0/737/c9223a5b-346d-85c5-9eee-2757e6dfaf90.png)

# まとめ

AWSが提供する新しいELB(ALB)について, その作成手順を簡単にご説明しました.
｢ターゲットグループ｣など, 新しい概念は追加されているものの, 従来のELBと同じくブラウザ上から簡単に作成できることがおわかりいただけたのではないでしょうか.

先程もご紹介したように, ALBではWebSocketのサポートやHTTP2対応など, 様々な魅力的な機能が追加されていますので, この記事を読んで, ｢あ, 簡単に試せそう!｣と思っていただいて, いろいろと試して頂ければ幸いです.