AWS ELB でロードバランサーを導入する

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

ロードバランサー向け EC2 用

ここの HTTP の設定がすごく大事。

ロードバランサー用に作成したセキュリティグループからのアクセスと、
22番(SSH)のアクセスを受け付けて、
80番と443番(HTTP、HTTPS)のアクセスは遮断する。

  • 「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」→「セキュリティグループを作成」クリック
    • セキュリティグループ名
      • 適当
    • 説明
      • 適当
    • VPC
      • 作ってなかったら作成
    • インバウンドルール
      • その1
        • タイプ:HTTP
        • ポート範囲:80
        • ソース:カスタム ロードバランサー用に作成したセキュリティグループを選択
      • その2
        • タイプ:SSH
        • ポート範囲:22
        • ソース:Anywhere-IPv4 0.0.0.0/0

EC2 インスタンスの作成

ターゲットグループの作成

ユーザーからの80番や443番のアクセスはロードバランサーで受け付けて、
ロードバランサーから EC2 へのアクセスは80番で受け付けるようにする。
のでターゲットグループでは80番でアクセスするように設定する。

  • 「EC2」→「ロードバランシング」→「ターゲットグループ」→「ターゲットグループの作成」クリック
  • グループの詳細の指定(ステップ1)
    • 基本的な設定
    • ヘルスチェック
      • 特に変更点なし
    • 「次へ」クリック
  • ターゲットを登録(ステップ2)
    • 使用可能なインスタンス
      • 選択したい EC2 インスタンスがなければ作成。作成したのに表示されてなければ VPC 確認。後で編集できるのでスルーしててもいい。
      • 選択したインスタンスのポート:80
      • 「保留中として以下を含める」クリック
    • 「ターゲットグループの作成」クリック

サブネットの作成

ルートテーブルの編集

  • 「VPC」→「ルートテーブル」→ パブリック用のルートテーブルを選択 →「アクション」→「サブネットの関連付けを編集」クリック
  • サブネットの関連付けを編集
    • 利用可能なサブネット:作成したサブネットを選択
    • 「関連付けを保存」クリック

ロードバランサーの作成

  • 「EC2」→「ロードバランシング」→「ロードバランサー」→「ロードバランサーの作成」クリック
  • ロードバランサータイプの比較と選択
    • ロードバランサータイプ:Application Load Balancer
    • 「作成」クリック
  • Application Load Balancer を作成
    • 基本的な設定
      • ロードバランサー名:適当
      • スキーム:インターネット向け
      • ロードバランサーの IP アドレスタイプ:IPv4
    • ネットワークマッピング
      • VPC:作ってなかったら作成
      • アベイラビリティーゾーン(2つ以上選択)
        • サブネット:事前に作成したものを選択
    • セキュリティグループ
      • セキュリティグループ:事前に作成したものを選択
    • リスナーとルーティング
      • プロトコル:HTTP
      • ポート:80
      • デフォルトアクション:事前に作成したターゲットグループを選択
    • 「ロードバランサーの作成」クリック

Route53 の設定

  • 「Route 53」→「ホストゾーン」→ 該当のドメインを選択 →「レコードを作成」クリック
  • レコードを作成
    • レコードをクイック作成
      • レコード名:適当
      • レコードタイプ:A
      • エイリアス:チェックを入れる
      • トラフィックのルーティング先
        • エンドポイントを選択:Application Load Balancer と Classic Load Balancer へのエイリアス
        • リージョンを選択:適当。ここではアジアパシフィック(東京)
        • ロードバランサーを選択;作成したロードバランサーを選択

うまく動かなくて編集したい時

レコードを編集するより、一度削除して、
もう一度レコードを作成し直した方が確実。

その他