AWSのELBを検証してみた

スポンサーリンク

はじめに

ELB(Elastic Load Balancing)を使用してWebサーバを冗長化します。

環境

手順

大きな流れは以下の5つになります。順番に設定していきましょう。

  1. VPCの作成
  2. サブネットの作成
  3. インターネットゲートウェイの設定
  4. ルートテーブルの編集
  5. EC2インスタンスの作成
  6. ロードバランサーの設定

VPCの作成

AWSマネジメントコンソールからVPCサービスにアクセスします。
左サイドバーから「VPC」をクリックします。「VPCを作成」ボタンをクリックします。
以下の通り入力します。
名前タグ:VPC-Test
IPv4 CIDR ブロック:10.0.0.0/16
IPv6 CIDR ブロック:IPv6 CIDR ブロックなし
テナンシー:デフォルト
「VPCを作成」ボタンをクリックします。

サブネットの作成

左サイドバーから「サブネット」をクリックします。「サブネットを作成」ボタンをクリックします。
以下の通り入力します。
VPC ID:VPC-Test
サブネット名:Subnet-01
アベイラビリティゾーン:アジアパシフィック(大阪)/ap-northeast-3a
IPv4 CIDR ブロック:10.0.1.0/24

「新しいサブネットを追加」ボタンをクリックします。
サブネット名:Subnet-02
アベイラビリティゾーン:アジアパシフィック(大阪)/ap-northeast-3b
IPv4 CIDR ブロック:10.0.2.0/24
「サブネットを作成」ボタンをクリックします。

インターネットゲートウェイの設定

左サイドバーから「インターネットゲートウェイ」をクリックします。「インターネットゲートウェイの作成」ボタンをクリックします。
以下の通り入力します。
名前タグ:InternetGateway-Test
「インターネットゲートウェイの作成」ボタンをクリックします。
「アクション」ボタンから「VPCにアタッチ」をクリックします。
使用可能な VPCは、「VPC-Test」を選択します。
「インターネットゲートウェイのアタッチ」ボタンをクリックします。

ルートテーブルの設定

左サイドバーから「ルートテーブル」をクリックします。VPCに「VPC-Test」が入っている項目を選択します。
「ルート」タブをクリックします。
「ルートの編集」ボタンをクリックします。
「ルートの追加」ボタンをクリックします。
以下の通り入力します。
送信先:0.0.0.0/0
ターゲット:InternetGateway(InternetGateway-Test)
「変更を保存」ボタンをクリックします。

「サブネットの関連付け」タブをクリックします。
「サブネットの関連付けを編集」ボタンをクリックします。
「subnet-01」と「subnet-02」にチェックを入れて「関連付けを保存」ボタンをクリックします。
「閉じる」ボタンをクリックします。

EC2インスタンスの作成

EC2サービスにアクセスします。まずは1台目を作成します。
「インスタンスを起動」ボタンから「インスタンスを起動」をクリックします。

インスタンスタイプと詳細設定

「Amazon Linux 2 AMI (HVM), SSD Volume Type」の「64 ビット (x86)」にチェックを入れます。「選択」ボタンをクリックします。
タイプは「t2.micro」にチェックが入っていることを確認し「次のステップ:インスタンスの詳細の設定」ボタンをクリックします。
以下の通り入力します。
・ネットワーク:VPC-Test
・サブネット:Subnet-01
・自動割り当てパブリック IP:有効
高度な詳細の中にある「ユーザーデータ」は以下をコピペして下さい。

#!/bin/bash
#ホスト名の変更
sudo hostnamectl set-hostname Web-Server01

#タイムゾーンの変更
timedatectl set-timezone Asia/Tokyo

#ロケールの設定
localectl set-locale LANG=ja_JP.UTF-8

#Apacheのインストール
sudo yum update -y
sudo yum install httpd -y
sudo systemctl enable --now httpd

#index.htmlの作成
echo "<html><h1>Web-Server01</h1></html>" > /var/www/html/index.html

ストレージの追加

「次のステップ:ストレージの追加」ボタンをクリックします。

タグの追加

「次のステップ:タグの追加」ボタンをクリックします。
以下の通り入力します。
・キー:Name
・値:Web-Server01

セキュリティグループの設定

「次のステップ:セキュリティグループの設定」ボタンをクリックします。
・セキュリティグループ名:Web-Server-SG
「ルールの追加」ボタンをクリックします。
・タイプ:HTTP
・プロトコル:TCP
・ポート範囲:80
・ソース:カスタム 0.0.0.0/0
「ルールの追加」ボタンをクリックします。
・タイプ:HTTPS
・プロトコル:TCP
・ポート範囲:443
・ソース:カスタム 0.0.0.0/0
「確認と作成」ボタンをクリックします。

インスタンスの起動

「起動」ボタンをクリックします。
キーペアはすでに作成済みなら既存、未作成なら新規に作成します。
「インスタンスの作成」ボタンをクリックします。

続けて2台目を作成します。

インスタンスタイプと詳細設定

「Amazon Linux 2 AMI (HVM), SSD Volume Type」の「64 ビット (x86)」にチェックを入れます。「選択」ボタンをクリックします。
タイプは「t2.micro」にチェックが入っていることを確認し「次のステップ:インスタンスの詳細の設定」ボタンをクリックします。
以下の通り入力します。
・ネットワーク:VPC-Test
・サブネット:Subnet-02
・自動割り当てパブリック IP:有効
高度な詳細の中にある「ユーザーデータ」は以下をコピペして下さい。

#!/bin/bash
#ホスト名の変更
sudo hostnamectl set-hostname Web-Server02

#タイムゾーンの変更
timedatectl set-timezone Asia/Tokyo

#ロケールの設定
localectl set-locale LANG=ja_JP.UTF-8

#Apacheのインストール
sudo yum update -y
sudo yum install httpd -y
sudo systemctl enable --now httpd

#index.htmlの作成
echo "<html><h1>Web-Server02</h1></html>" > /var/www/html/index.html

ストレージの追加

「次のステップ:ストレージの追加」ボタンをクリックします。

タグの追加

「次のステップ:タグの追加」ボタンをクリックします。
以下の通り入力します。
・キー:Name
・値:Web-Server02

セキュリティグループの設定

「次のステップ:セキュリティグループの設定」ボタンをクリックします。
・セキュリティグループの割り当て:既存のセキュリティグループを選択する
・名前:Web-Server-SGにチェックを入れる。
「確認と作成」ボタンをクリックします。

インスタンスの起動

「起動」ボタンをクリックします。
キーペアはすでに作成済みなら既存、未作成なら新規に作成します。
「インスタンスの作成」ボタンをクリックします。

ロードバランサーの設定

EC2サービスにアクセスします。左サイドバーから「ロードバランサー」をクリックします。「ロードバランサーの作成」ボタンをクリックします。
「Application Load Balancer」の「作成」ボタンをクリックします。
以下の通り入力します。
【基本的な設定】
・名前:elb-test
・スキーム:インターネット向け
・IPアドレスタイプ:ipv4
【リスナー】
・ロードバランサーのプロトコル:HTTP
・ロードバランサーのポート:80
【アベイラビリティゾーン】
・VPC:VPC-Test
・アベイラビリティゾーン:Subnet-01とSubnet-02の両方にチェックを入れる
【タグ】
・キー:Name
・値:elb-test
「次の手順:セキュリティ設定の構成」ボタンをクリックします。

「次の手順:セキュリティグループの設定」ボタンをクリックします。
・「Web-Server-SG」にチェックを入れます。

「次の手順:ルーティングの設定」ボタンをクリックします。
【ターゲットグループ】
・名前:elb-target
・ターゲットの種類:インスタンス
【ヘルスチェック】
・正常のしきい値:3
・非正常のしきい値:3
・タイムアウト:5
・間隔:10

「次の手順:ターゲットの登録」ボタンをクリックします。
インスタンス(Web-Server01とWeb-Server02)の両方にチェックを入れて「登録済みに追加」ボタンをクリックします。
「次の手順:確認」ボタンをクリックします。
「作成」ボタンをクリックします。

動作確認

DNS名をコピーしてブラウザのURL欄にペーストします。

Webページが表示されます。更新ボタンを何度かクリックすると、「Web-Server01」と「Web-Server02」が表示されます。うまくバランシングされていることが確認できます。

次にEC2インスタンス(Web-Server01)を停止します。Webページを更新すると、「Web-Server02」のみが表示されるようになります。

コメント

タイトルとURLをコピーしました