内容
Application Load Balancerの設定を行う。
以下のような構成を構築する。
前提
・下記構成が既に配置されていること。
・セキュリティグループの通信許可設定がされていること
・EC2にApacheがインストールされていて起動していること
# yum install -y httpd
# systemctl start httpd.service
# systemctl status httpd.service
# ps -ef | grep -v grep | grep apache
手順
各サーバにHTMLファイルを配置する
/var/www/html配下にそれぞれ以下を記載したindex.htmlを配置します。
・ap-northeast-1aにはap-northeast-1aが記載されたファイルを格納します。
・ap-northeast-1cにはap-northeast-1cが記載されたファイルを格納します。
ap-northeast-1a
# vi /var/www/html/index.html
<html><h1>ap-northeast-1a</h1></html>
# cat index.html
<html><h1>ap-northeast-1a</h1></html>
ap-northeast-1c
# vi /var/www/html/index.html
<html><h1>ap-northeast-1c</h1></html>
# cat index.html
<html><h1>ap-northeast-1c</h1></html>
表示確認
それぞれのインスタンスのIPアドレスをコピーしてブラウザに張り付けて
上記のap-northeast-1a、ap-northeast-1cが表示されることを確認します。
これでELBによる振り分けを行った時にそれぞれ1aと1cに振り分けられていることを確認できます。
ALBの作成
ログイン~作成画面まで
[AWSマネジメントコンソール]⇒[サービス]⇒[コンピューティング]⇒[EC2]を選択します。
[EC2ダッシュボード]⇒[ロードバランシング]⇒[ロードバランサー]を選択します。
ロードバランサー一覧画面より[ロードバランサーの作成]を押下します。
ALBの選択
ロードバランサーの設定
ロードバランサーの設定を行います。赤枠の部分の設定となります。
今回は外部用なのでインターネット向けでipv4を選択。
プロトコルはHTTPでポートは80を使用。ここでHTTPSを選択すると次の画面で追加設定がありますが今回はHTTP。
設定 | 値 |
---|---|
スキーム | インターネット向け |
IPアドレスタイム | ipv4 |
リスナー | HTTP:80 |
セキュリティ設定の構成
セキュリティグループの設定
HTTPの通信許可設定がされているセキュリティグループを作成するか、割り当てを行います。
ルーティングの設定
ヘルスチェックの詳細設定は今回すぐにUnHealthyを確認したいので間隔を短くしています。
ターゲットグループ
設定 | 値 |
---|---|
ターゲットの種類 | インスタンス |
プロトコル | HTTP |
ポート | 80 |
ヘルスチェック
設定 | 値 |
---|---|
プロトコル | HTTP |
パス | / |
ターゲットの登録
画面下部にターゲット登録可能な設定が表示されるので選択後[登録済みに追加]を押下します。
※Apacheを起動しておかないと表示されません。
作成完了
[ロードバランサーを正常に作成しました]と表示されればELBの作成が完了となります。
接続確認
[作成したELB]⇒[説明タブ]よりARNをコピーしてブラウザに貼り付けます。
何回か行うとap-northeast-1aとap-northeast-1cが表示され、振り分けが行われているのが分かります。
ELB+α
リスナーIDがELBのプロトコルと待ち受けポート(下の図赤枠)で、転送先が設定した振り分け先のターゲットグループ(下の図青枠)となります。
振り分け先が正常か否かはターゲットグループのターゲットタブかモニタリングタブで確認できます。
1aのApacheは停止、1cのApacheは起動している状態だと
1aのステータスはunhealthy、1cのステータスはhealthyとなります。