前回までの記事
【AWS VPC入門】0.概要
【AWS VPC入門】1.VPC/Subnet
【AWS VPC入門】2.EC2/Internet Gateway/Route Table
今回のゴール
- VPC上にELBを配置する。
- HTTPアクセスをELB経由で
EC2インスタンス(Web)に振り分ける。 - SGを編集し
EC2インスタンス(Web)へのHTTPアクセスをELB経由からのみ許可する。
ELB/ALB/NLB
現在AWSでは3つのロードラバランサを選択できます。
大まかな特徴は以下です。
-
ELB (Classic Load Balancer)
- 旧型の汎用LB
- L4/L7レイヤーをサポート
-
ALB (Application Load Balancer)
- CLBよりも高性能でAWS WAFやターゲットグループ等が使用できる
- L7レイヤーをサポート
-
NLB(Network Load Balancer)
- 大量トラフィック用のELB
- L4レイヤーをサポート
今回はELB (Classic Load Balancer)を使用します。
ELBの作成
EC2のダッシュボードから「ロードバランサーの作成」を選択し、「Classic Load Balancer」を選択します。
「基本的な設定」を以下内容で設定します。
| ロードバランサー名 | ロードバランサーを作成する場所|
|---|---|---|
| SampleELB |SampleVPC |
対象とするサブネットとしてEC2インスタンス(Web) が存在する SamplePrivateSubnet を選択します。

ELBのセキュリティグループを新規作成します。
インターネットからのアクセスを許可するため、すべてのHTTPアクセスを許可します。

続いてヘルスチェックの設定を行います。
今回はNginxのWelcomeページがヘルスチェックの対象となるため、pingパスを / に変更します。

最後に振り分け対象とするインスタンスを選択します。
前回の章で立てたEC2 SampleWebを対象とします。

作成後はELBのステータスを確認します。
該当のELBを選択し、インスタンスタブからステータスを確認します。
初回のヘルスチェックが実行されるまで若干時間がかかります。
「OutOfService」から「InService」になれば準備完了です。

SGの変更
現状の EC2インスタンス(Web)はELBを経由しないHTTPアクセスも可能になっていますが、ELBができたのでELBを経由しないアクセスを禁止したいと思います。
EC2のダッシュボードから SampleWebインスタンスを選択し、セキュリティグループから SampleWebSGを選択します。

SamplePrivateSubnet(19.9.193.0/26) からの HTTP を受け付けるようにインバウンドのルールを変更します。

変更完了後、動作確認のため SampleELB に設定されたDNS名を取得し、ブラウザからアクセスしてみます。

前回と同様に Welcome to nginx on Amazon Linux! と書かれたNGINXのWelcomeページが表示されていれば成功です。
