前回までの記事
【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ページが表示されていれば成功です。