AWS ELB(Application Load Balancer)を利用して、
ロードバランサーを導入した時のメモ。
使用する AWS アプリケーション
- AWS ELB
- AWS EC2
- AWS Route53
セキュリティグループの作成
2つ作成する。
ロードバランサー用
ロードバランサーが直接ユーザーのアクセスを受け付けるので、
22番(SSH)を除く、80番と443番(HTTP、HTTPS)のアクセスを受け付ける。
- 「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」→「セキュリティグループを作成」クリック
- セキュリティグループ名
- 適当
- 説明
- 適当
- VPC
- 作ってなかったら作成
- インバウンドルール
- その1
- タイプ:HTTP
- ポート範囲:80
- ソース:Anywhere-IPv4 0.0.0.0/0
- その2
- タイプ:HTTPS
- ポート範囲:443
- ソース:Anywhere-IPv4 0.0.0.0/0
- その1
- セキュリティグループ名
ロードバランサー向け EC2 用
ここの HTTP の設定がすごく大事。
ロードバランサー用に作成したセキュリティグループからのアクセスと、
22番(SSH)のアクセスを受け付けて、
80番と443番(HTTP、HTTPS)のアクセスは遮断する。
- 「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」→「セキュリティグループを作成」クリック
- セキュリティグループ名
- 適当
- 説明
- 適当
- VPC
- 作ってなかったら作成
- インバウンドルール
- その1
- タイプ:HTTP
- ポート範囲:80
- ソース:カスタム ロードバランサー用に作成したセキュリティグループを選択
- その2
- タイプ:SSH
- ポート範囲:22
- ソース:Anywhere-IPv4 0.0.0.0/0
- その1
- セキュリティグループ名
EC2 インスタンスの作成
- AWS EC2 + Amazon Linux 2023 でアプリケーションを公開するための準備
- サブネットはパブリック用を選択
ターゲットグループの作成
ユーザーからの80番や443番のアクセスはロードバランサーで受け付けて、
ロードバランサーから EC2 へのアクセスは80番で受け付けるようにする。
のでターゲットグループでは80番でアクセスするように設定する。
- 「EC2」→「ロードバランシング」→「ターゲットグループ」→「ターゲットグループの作成」クリック
- グループの詳細の指定(ステップ1)
- 基本的な設定
- ターゲットタイプの選択:インスタンス
- ターゲットグループ名:適当
- プロトコル : ポート:HTTP 80
- IP アドレスタイプ:一旦 IPv4
- VPC:作ってなかったら作成
- プロトコルバージョン:HTTP1
- ヘルスチェック
- 特に変更点なし
- 「次へ」クリック
- 基本的な設定
- ターゲットを登録(ステップ2)
- 使用可能なインスタンス
- 選択したい EC2 インスタンスがなければ作成。作成したのに表示されてなければ VPC 確認。後で編集できるのでスルーしててもいい。
- 選択したインスタンスのポート:80
- 「保留中として以下を含める」クリック
- 「ターゲットグループの作成」クリック
- 使用可能なインスタンス
サブネットの作成
- 「VPC」→「仮想プライベートクラウド」→「サブネット」
- ALB 用のパブリック2つ。なければ作成
ルートテーブルの編集
- 「VPC」→「ルートテーブル」→ パブリック用のルートテーブルを選択 →「アクション」→「サブネットの関連付けを編集」クリック
- サブネットの関連付けを編集
- 利用可能なサブネット:作成したサブネットを選択
- 「関連付けを保存」クリック
ロードバランサーの作成
- 「EC2」→「ロードバランシング」→「ロードバランサー」→「ロードバランサーの作成」クリック
- ロードバランサータイプの比較と選択
- ロードバランサータイプ:Application Load Balancer
- 「作成」クリック
- Application Load Balancer を作成
- 基本的な設定
- ロードバランサー名:適当
- スキーム:インターネット向け
- ロードバランサーの IP アドレスタイプ:IPv4
- ネットワークマッピング
- VPC:作ってなかったら作成
- アベイラビリティーゾーン(2つ以上選択)
- サブネット:事前に作成したものを選択
- セキュリティグループ
- セキュリティグループ:事前に作成したものを選択
- リスナーとルーティング
- プロトコル:HTTP
- ポート:80
- デフォルトアクション:事前に作成したターゲットグループを選択
- 「ロードバランサーの作成」クリック
- 基本的な設定
Route53 の設定
- 「Route 53」→「ホストゾーン」→ 該当のドメインを選択 →「レコードを作成」クリック
- レコードを作成
- レコードをクイック作成
- レコード名:適当
- レコードタイプ:A
- エイリアス:チェックを入れる
- トラフィックのルーティング先
- エンドポイントを選択:Application Load Balancer と Classic Load Balancer へのエイリアス
- リージョンを選択:適当。ここではアジアパシフィック(東京)
- ロードバランサーを選択;作成したロードバランサーを選択
- レコードをクイック作成
うまく動かなくて編集したい時
レコードを編集するより、一度削除して、
もう一度レコードを作成し直した方が確実。