LoginSignup
6
5

More than 3 years have passed since last update.

ELBの設定とトラフィック検証

Posted at

はじめに

AWS試験勉強の備忘録です。

ELB(Elastic Load Balancing)とは

マネージド型のロードバランシングサービスです。
複数のサーバーによる冗長化構成を構築し、それらのサーバーに対して負荷分散を行います。
マネージドサービスなのでELBが稼働しているサーバー自体の管理はいりません。

特徴

  • ヘルスチェック
  • 負荷分散
  • SSL/TLSサポート
  • スティッキーセッション
  • Connection Draining
  • アクセスログの記録

ELBの種類

以下の3つのタイプが存在する。

  • CLB(Classic Load Balancer)

  • ALB(Application Load Balancer )

  • NLB(Network Load Balancer)

それぞれの違いについてはこちらを参考にしてください。

CLBとALBの違い

大きな違いはALBのみコンテントベースルーティングがあることです。
どんな機能かというとURLに含まれるURI文字列によって判定を行い、
事前に設定された振り分け先にルーティングします。

ALBはパスルーティングによりCLBより容易にバランシング構成が可能ということです。

CLBだと

2つのURLにわけた場合にELBが2つ必要になリます。
image.png

ALBだと

パスルーティングにより1つのELBでバランシングが可能になります。
image.png

ELBの検証

マルチAZ構成で2つのwebサーバーにELBを使用して
実際にどのようなトラフィックになるのか検証してみたいと思います。
image.png

手順

1.VPC、パブリックサブネットの作成

VPCダッシュボード画面から[VPCの作成]をクリックします。
image.png

下記を選択します。
image.png

任意のVPC名を付けます。
AZはap-northeast-1aを選択しています。
image.png
これで[VPCの作成]をクリックします。

完成するとパブリックサブネットが一つ作成されていることが確認できます。
今度は先程とは違うAZにパブリックサブネットをもう1つ追加していきます。

コンソールのサブネット画面から[サブネットの作成]をクリックします。
image.png

作成したVPCを選択して、
AZを今度はap-northeast-1cにします。
image.png

ルートテーブルにインターネットゲートウェイを付与していきます。
[ルートテーブルの関連付けの編集]をクリックして、
インターネットゲートウェイがあるルートテーブルIDにして保存します。

image.png

これで2つのパブリックサブネットが完成しました。

2.インスタンスの構築

それぞれのパブリックサブネットにEC2インスタンスを構築していきます。

インスタンスのコンソール画面から
[インスタンスの作成]ボタンをクリックします。
image.png

AMIは一番上のを選択します。

image.png

インスタンスタイプはデフォルトのままにします。
image.png

インスタンスの詳細の設定ではVPCは作成したものにし、
サブネットに関しては、最初にAZがap-northeast-1aのものを選択します。

自動割り当てパブリックIPも有効にしておきます。
それ以外はデフォルトのまま次に進みます。
image.png

ストレージの追加はデフォルトのまま進み
タグは任意でnameなどを付けてください。
image.png

セキュリティグループの設定画面では
新しいセキュリティグループを作成してください。
タイプの方ではHTTPHTTPSを選択しました。
image.png

この状態でインスタンスを作成します。

作成されたことを確認したら
今度はAZがap-northeast-1cの所に上記の流れでインスタンスを作成します。
変更箇所は以下になります。

  • サブネットをap-northeast-1cで作成したものにすること
  • セキュリティグループは上で作成したものを使用すること

以上でそれぞれのAZに1つずつインスタンスが構築されました。
image.png

3.WEBサーバーに設定

作成したインスタンスをWEBサーバーに設定していきます。

まずはweb-1aにsshします。
インスタンスの説明からパブリックIPをコピーしていき、
macならターミナル、windowsならteratermを使用して接続してみて下さい。

sshできたら
まず管理者権限に移動します

$ sudo su -

次にファイルのアップデート状況を確認します。

# yum update -y

アパッチのソフトウェアをインストールして
WEBサーバーにしていきます。

# yum install httpd -y

インストールが完了したら
以下のコマンドでアパッチソフトウェアを起動します。

# service httpd start

htmlファイルを作成していきます。
以下のディレクトリまで移動します。

# cd /var/www/html

lsコマンドで中身を見てみると何もないことが確認できます。
ここにhtmlファイルを作成します。
今回はvimを使用します。

vim index.html
index.html
<html><h1>hello A!!</h1></html>

入力が完了したら:wqで保存します。
保存できたらリスタートさせます。

# service httpd restart

これで完了しました。

確認のためインスタンスの画面から対象インスタンスのパブリックIPをコピーして
WEBのURLに貼り付けてみて下さい。
image.png
htmlで作成した文字が表示されました。

これをもう一つのインスタンスにも同じ流れで、
作業してWEBサーバーとして設定していきます。

一応違いを表すためにhtmlファイルを下記の内容にしておきます。

index.html
<html><h1>hello C!!</h1></html>

インスタンスのパブリックIPから
下記の内容で表示されました。
image.png

4.ELBの作成

インスタンス画面の左にロードバランサーの項目があるので、
そこをクリックします。
image.png

[ロードバランサーの作成]をクリックします。

image.png

ALB、NLB、CLBの3つがあります。
今回はALBを選択します。

image.png

名前を入力します。
そのまま下のアベイラビリティーまで進みます。
image.png

作成したVPC、AZを選択します。
タグ任意で名前などを付けてください。

image.png

セキュリティグループの設定まで進み、セキュリティグループは
インスタンスの作成時に利用したものを選択してください。

ルーティングの設定でターゲットをインスタンスにして、
プロトコルもHTTPにして作成します。
image.png

ターゲット登録画面で
作成した2つのインスタンスにチェックを付けて
[登録済みに追加]をクリックします。
image.png
これで作成します。

5.トラフィック検証

ELBの画面から
作成したELBのDNS名をコピーします。
image.png

それをURLに貼り付けると
WEBサーバーの設定で確認した画面が出てくると思います。

このサイトにアクセスできませんというエラーが出た場合は
少し時間を置いてから実行してみてください。
image.png

何回か更新すると表記が変わってくると思います。
今回だとhello A!!hello C!!のようになります。

試しにhello A!!を表示させるインスタンスを
停止させてみたいと思います。
image.png

この状態でELBのDNS名でアクセスすると
hello C!!しか表示されないことがわかりました。
image.png

まとめ

以上のことからELBがターゲット内のインスタンスの状況を
配慮してトラフィックの制御をしていることが確認できました。

6
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5