AWS ELB でロードバランシングをセットアップする

AWS ELB でロードバランシングをセットアップします。
前回の投稿内容を準備とすれば、AWS Certificate Manager (ACM) でサーバ証明書を発行し、Webサーバの手前でSSLを受け持って、負荷分散と冗長化をサイトに追加できます。

それではWordPressによるWebサイトをEC2インスタンスで稼働しているとして、これをロードバランシングするためのセットアップをしていきます。

 

バランシングのためのサブネットを作成

 

まず、ロードバランシングするためのサブネットを新たに追加するために、VPCを選択します。

「サブネット」→「サブネットを作成」をクリック

「サブネット」→「サブネットを作成」をクリック

 

  • 名前タグを既存サブネット名を参考に設定
  • VPCは「1個のパブリックを持つVPC」で作成しているので、既存VPCを設定し、同じCIDRにする
  • ロードバランシングのためのサブネットなので、既存VPCとは異なったアベイラビリティゾーンを指定
  • バランシングするので、追加サブネットは、既存サブネットとは別のネットアドレスを持つCIDRを設定

「作成」をクリック

 

サブネットが追加された

サブネットが追加された

  • 作成したサブネットを、既存ルートテーブルに関係付けします。
  • 「ルートテーブル」の「サブネットの関係付け」で、「編集」をクリック

追加サブネットに関係付けのチェックを入れて「保存」

追加サブネットに関係付けのチェックを入れて「保存」

両方のサブネットとも、ルートテーブルに関係付けられた

両方のサブネットとも、ルートテーブルに関係付けられた

「ロードバランサー」をクリック

「ロードバランサー」をクリック

「ロードバランサーの作成」をクリック

「ロードバランサーの作成」をクリック

今回はHTTP および HTTPS トラフィックを使用するウェブアプリケーション用ということで、Application Load Balancerの「作成」をクイック

 

ステップ1:ロードバランサーの設定

 

 

  • ステップ1で、まず名前を適当に入力。(アンダーバーはダメ、登録時に怒られる
  • スキーマは「インターネット向け」を選択し、IPアドレスタイプは「ipv4」を選択。
  • リスナーでは「HTTP」の80番ポートと「リスナーの追加」で「HTTPS」の443番ポートをあけておく。
    (「リスナーの追加」をクリックすると、入力エリアが追加されるので、「https」を選択すると[443]が表示される)
  • アベイラビリティーゾーンでは、2つ以上選択しなくてはいけないが、ロードバランサーと自分のサーバーを接続できるよう同じVPCを指定。
  • 「セキュリティ設定の構成」をクリック。

 

ステップ 2: セキュリティ設定の構成

 

  • ステップ2で、説明書タイプでは「ACMから説明書を選択する」をクリックすると、「証明書の名前」にACMで発行したものが表示される
  • セキュリティポリシーは自動生成されたポリシーをそのままの状態にしておく
  • 「セキュリティグループの設定」をクリック

 

ステップ 3: セキュリティグループの設定

 

 

  • ステップ3では、「新しいセキュリティグループを選択する」からセキュリティグループを設定
    (もし、既存でELBでも使えるものがあるならばそれでも構わない)
  • 最低限、22番(SSH)と80番(HTTP)と443番(HTTPS)ポートを開ける

 

手順4.ルーティングの設定

 

注意!! 「ヘルスチェック」の「パス」は、上記イメージは「/」ですが、WordPress は index.html がないので、/index.php を設定する

 

ステップ5:ターゲットの登録

 

  • 登録済みターゲットに、ポート=80 と 443 を設定します。
  • 初めに、起動中インスタンスを選択し、ポート=80の状態で、「登録済みに追加」をクリック
    (この操作で、上の一覧リストにリストされます)
 

  • 更に、ポート=443にして、「登録済みに追加」 をクリック
  • 一覧リストに追加でリストされ、ポート = 80 と 443 と2つ並びます
  • 登録済みターゲットに、ポート=80 と 443 が追加されたら「次の手順:確認」をクリック

 

ステップ6:確認

 

内容確認したら、「作成」をクリック

内容確認したら、「作成」をクリック

 

リダイレクト(http→https)の設定

 

「ロードバランサー」をクリック

「ロードバランサー」をクリック

「リスナー」タブで「ルールの表示・編集」クリック

「リスナー」タブで「ルールの表示/編集」クリック

「+」をクリック

「+」をクリック

「ルールの挿入」をクリック

「ルールの挿入」をクリック

「+条件の追加」をクリック

「+条件の追加」をクリック

「パス…」をクリック

「パス…」をクリック

全ての通信をhttpsにリダイレクトさせるので、「*」を入力→「✔」をクリック

「アクションの追加」をクリック

「アクションの追加」をクリック

「リダイレクト先…」をクリック

「リダイレクト先…」をクリック

https(443)を入力し、「保存」をクリック

https(443)を入力し、「保存」をクリック

 

注意!!!
ロードバランシングしているEC2を作成し直した時には、同期を合わせるため、ロードバランサーは削除してから生成し直す。
また、Route53もホストゾーンの正引き、逆引きともAレコードでELBを設定し直す必要がある。
(ただし、証明書を再作成することはない)

実はこれだけでは、うまくWordPressサイトは動きません。
Route53でAレコードの変更と、WordPressのSSLリダイレクト対応が必要です。
ですが、だいぶ長くなったので、次回に回します!!

To be continued・・・                  AWS TIPS はこちら!