ALBの作成・リスナーの変更【AWS】

docker-blog-alb

次にALBを作成します。

この記事ではALBの作成手順を紹介します。

なぜ作成するのか

ALBのはアプリケーションロードバランサーと呼びます。

ロードバランサーとは、例えば複数台のサーバーに処理を分散させたり、A/Bテストに用いられたり、

場合によってはフェールオーバーに使用されたりもします。

ただ、今回の場合サーバーが1つしかないのに、なぜALBが必要なのでしょうか。

理由は単純で「SSL化を実装するため」です。

SSL化通信(https)を実装するには、前回の章で取得した「証明書」をサーバーに登録する必要があるのですが、EC2に証明書を登録しインターネットを介してSSL化通信はできません。

そこで、インターネットとEC2の間にALBを作成し、インターネットとALB間をSSL化(https)通信を行いALBとEC2で通常の通信(http)を行います。

ALB_EC2_SSL通信

上記構成にすることで、SSL化通信を実装できます。

ちなみに、証明書を持たせれればALBではなくともCloudFrontでも大丈夫です。

今回は利用ケースが多いということでALBで実装しました。

ALBの作成手順

ではロードバランサーの作成方法について、手順を紹介します。

AWSの検索ペインから、「EC2」と入力し、EC2ダッシュボードへ行きます。

EC2ダッシュボード

左のスクロールメニューバーを下にスクロールすると「ロードバランサー」がありますので、

ロードバランサーを選択し、「Create load balancer」を選択してください。

ロードバランサーダッシュボード

Application Load Balancerの「create」を選択

ApplicationLoadbalancerのクリエイト

下記画像の通り入力、名前は任意で構いません。

ロードバランサー設定画面1

ここのネットワークマッピングに関して不明な場合は、EC2のダッシュボードからインスタンスを選択し概要に情報が記載されてありますので、そちらからお調べください。

※empty-subnet-cにはインターネットゲートウェイと繋がってないので、warningが表示されます。

インターネットゲートウェイが繋がっていないサブネットをALBの向き先に選ぶと接続がものすごく重くなる事象が発生しますので、

後ほど、サブネット作成方法とサブネットにインターネットゲートウェイを設定する方法を紹介します。

すでに何かしらのインターネットゲートウェイがあるサブネットがある方はそちらを選択いただいて問題ありません。

セキュリティグループはEC2の時に作成したものでも良いですが、ALB個別にということで新たに作りました。

securitygroup作成画面

ALBのセキュリティグループは下記を設定してください。

ALBセキュリティグループ

次はリスナーの登録です。ターゲットグループは新しく作りますので、ロードバランサーターゲットグループ作成を参照してください。

また、HTTPSを設定するとACMの登録が求められますので、取得した証明書を設定しましょう。(赤枠内)

ドッカーロードバランサー作成画面2

そのほかの設定は以下の通り

ロードバランサー設定画面4

「Create load balancer」をクリック

ロードバランサー設定画面4

作成が完了しました。

ロードバランサーリスナーの変更

このままではhttp通信をした場合でも、EC2に届いてしまいますので、httpで接続してきた場合はhttps通信にリダイレクトするように設定します。

EC2のロードバランサーダッシュボードから、HTTP:80にチェックを入れ「Action」→「Edit listener」を選択します。

リスナー変更画面

それぞれの設定は以下の通りです。

HTTPでアクセスした場合、https:8080に送る設定です。

ロードバランサーリスナーhttpで通信した場合にhttpsでリダイレクトする方法

以上です。リスナーの変更をせずとも通信はできますが、セキュリティ上https通信に絞った方が堅牢のセキュリティを築けるのでおすすめします。

ALBの作成は以上です。

«