0.はじめに
ELBでロードバランサーを設置して、作成したEC2を配下に登録します。
今回はEC2は1つしか作成していないですが、複数サーバーが設置されていることを想定して、ロードバランサーを作成します。
-
ELB(ロードバランサー)
Elastic Load Balancingの略。
サービスにアクセスが集中すると、サーバーの処理能力が低下して、最悪ダウンしてしまいます。
その時に、サーバーへの負荷を分散させる役割を果たすのがロードバランサーの目的です。
1.前回の記事
2.前提条件
- AWSアカウント作成済み
- リージョンはアジアパシフィック(東京) ap-northeast-1
- VPC作成済み
- セキュリティーグループ作成済み
- EC2インスタンス作成済み
- SSL証明書発行済み
3.作成手順(サマリー)
順番 | 手順 |
---|---|
1 | ターゲットグループの作成 |
2 | ELB(ロードバランサー)の作成 |
3 | リスナーの追加と編集 |
4.作成手順
1.ターゲットグループの作成
画面は英語表記です(なぜか)。
わからない場合は日本語に翻訳して操作してください
- サービスよりEC2を選択 → ターゲットグループ → [ターゲットグループを作成する]をクリックする
グループの詳細の指定
-
ターゲットタイプの選択
- インスタンスを指定
-
ターゲットグループ名
- 任意のターゲットグループ名を入力(分かりやすいものがおすすめ)
- プロトコル・ポートはHTTP : 80
-
VPC
- 対象のVPCを指定(作成したVPC)
-
プロトコルバージョン
- HTTP1
-
ヘルスチェック
- HTTP
- ヘルスチェックパス
- / を指定
- [次へ]をクリックする
- 対象のインスタンスを指定
- [保留中として以下を含める]をクリックする
- 表示されたターゲットを確認して[ターゲットグループの作成]をクリック
ターゲットグループが作成されました
2.ELB(ロードバランサー)の作成
- EC2 → ロードバランサー → [ロードバランサーの作成]をクリックする
- Application Load Balancer の[作成]を選択
-
ロードバランサー名
- 分かりやすい名前がおすすめ
-
VPC
- 対象のVPCを選択(作成したVPC)
-
マッピング
- パブリックサブネット 1a, 1cを選択
-
セキュリティーグループ
- ELB用に作成したセキュリティーグループを指定
- デフォルトのセキュリティーグループが指定されている場合は、[×]で削除しておく
-
リスナーとルーティングの設定
- プロトコル : HTTP
- ポート : 80
- デフォルトアクション : 先程作成したターゲットグループを指定
- 設定した内容を確認して[ロードバランサーの作成]をクリックする
ELBが作成が完了しました
3.リスナーの追加と編集
HTTPS化とHTTPでアクセスした際もHTTPSにリダイレクトするように設定します
リスナーの追加(HTTPS)
- EC2 → ロードバランサー → 作成したロードバランサーを選択
- [リスナー]を選択し、[リスナーの追加]をクリックする
リスナーの追加
-
プロトコル
- HTTPS : 443
-
[Add action] を選択
- Forward
-
ターゲットグループ
- 先程作成したターゲットグループを指定
-
セキュリティーポリシー
- ELBSecurityPolicy-2016-08
-
デフォルトのSSL証明書
- ACMから
- ACMで発行したSSL証明書を指定
- [追加]をクリックする
HTTPSリスナーを追加できました
HTTP → HTTPSにリダイレクトするようにリスナールールを追加する
- HTTP : 80リスナーを選択
- [修正]をクリックする
-
[Add action]を選択
- Redirect
- [Itemize URL]を選択
-
プロトコル : ポート
- HTTPS : 443
- [変更内容の保存]をクリックする
リスナールールの追加完了しました
一応ヘルスチェックの結果も見ておきます
- ターゲットグループを選択
- [Details]を選択
-
画像ではHealthyになっていますが、EC2とELB作成直後はUnhealthyだと思います。(インスタンスの/配下に何も無い状態なので)
- この後、EC2にnginxなどを導入していく過程でHealthyに変化します。
5.最後に
以上でELBの作成が完了しました。
私はこのタスク、ギブアップ寸前まで悩みまくっていました。
様々な記事や公式ドキュメントを見回したり、メンターの方にひたすら相談したり、
とにかく長い時間かけて作成しました。
まだまだ理解が浅いので、これからも学習を重ねていきたいです。
次回はRoute53でAレコードのエイリアスを作成します
次回 : 【AWS環境構築メモ⑧】Route53でAレコードのエイリアスを作成する
6.参考