CloudFront+ELB+EC2+RDSのスケーラブルなシステム構成構築 – 3.ELB構築編

以下の記事の続きです。

ELB導入のメリット

今回はELB構築について記載します。

ELB(ロードバランサー)とは負荷分散機能で、トラフィックを配下の各インスタンスへ分散し、多くのアクセス数を捌けるようにします。
また、メンテナンス等においても、片側のインスタンスのサービスを止めて、片側を稼働させることで全体のサービスを停止することなくメンテナンス作業が可能になります。

また、現状は1台のインスタンスで充分なアクセス数でも、ELB配下で稼働させることで将来的にスケールアウトを可能にするスケーラブルなシステム構成となります。

ELBの作成

EC2のコンソールより「ロードバランサー」メニューを開き、「ロードバランサーの作成」をクリックします。
「Application Load balancer」と「標準ロードバランサー」を選択する画面が開きますので、今回は「Application Load balancer」を選びます。

ロードバランサーの設定

作成するロードバランサーに名前をつけ、スキーマは「インターネット向け」を選択。IPアドレスは「ipv4」を選択します。
リスナーは、外部からは HTTPS のみでアクセスされることを想定しているので、HTTPS のみ選択します。

アベイラビリティゾーンの設定

ロードバランサーにぶら下げるインスタンスを設置するサブネットを指定します。
各アベイラビリティゾーンごとに1つだけサブネットを指定できます。先に作成していたELB用パブリックサブネットをそれぞれ指定します。

SSL証明書の作成

ここで、以下の記事に記載の手順でACMにてSSL証明書を作成しておきます。
作成するのはELBと同じ東京リージョンで、今回は Cloud Front を前段に置きますが、Cloud Front で Host ヘッダーを通しますので、証明書は、www.ドメイン名.com、ドメイン名.com のようにユーザーがアクセスするドメインで取得します。
ELB側(東京リージョン)と、CloudFront側(バージニア北部リージョン)で2つの同じドメインのSSL証明書を取得しておきます。

SSL証明書の設定

ACMで作成したSSL証明書をロードバランサーに設定します。
「AWS証明書マネージャー(ACM)から、既存の証明書を選択する」を選び、「証明書の名前」のプルダウンから該当の証明書を選択します。

セキュリティーポリシーは、AWSで推奨している「ELBSecurityPolicy-2016-08」 ポリシーを選択します。

セキュリティグループの選択

先に作成していた、ELB用のセキュリティグループを適用します。

ルーティングの設定

ALBで新たに「ターゲットグループ」という概念が追加されました。
このターゲットグループには復数のインスタンスが割り当てることができます。このターゲットグループをALBに設定することで、ターゲットグループ内のインスタンスに対してALBへのリクエストが分散して送信されるようになります。

ヘルスチェックのパスについては、簡易なHTMLファイルを作成してそれを指定する方法と、/ だけでトップページでチェックする方法とあるようですが、今回はトップページを指定します。

インスタンスをターゲットグループへ登録

ターゲットグループに配置するインスタンスを選択し「登録済に追加」ボタンを押します。

登録済インスタンス一覧にインスタンスが表示されます。

確認画面で「作成」ボタンを押して、ALBを作成します。

ロードバランサーが作成されました。

ホストベースのルーティング

URLのパスに応じて、アクセス先インスタンスを変えたいような場合は、EC2のコンソール画面で「ターゲットグループ」メニューからターゲットグループの作成を行ない、パスパターンに別のインスタンスに振り分けたいパスを設定し、当該インスタンスを新規作成したターゲットグループに登録します。以下の記事に手順を記載しています。


環境構築は以下の記事に続きます。

コメントを残す

コメントは当サイト運営者の承認後に反映されます。
お名前はニックネームでも結構です。

Comments are allowed only in Japanese. / 日本語が含まれない投稿は無視されますのでご注意ください。