ELBの設定とトラフィック検証
はじめに
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だと
ALBだと
パスルーティングにより1つのELBでバランシングが可能になります。
ELBの検証
マルチAZ構成で2つのwebサーバーにELBを使用して
実際にどのようなトラフィックになるのか検証してみたいと思います。
手順
1.VPC、パブリックサブネットの作成
VPCダッシュボード画面から[VPCの作成]をクリックします。
任意のVPC名を付けます。
AZはap-northeast-1a
を選択しています。
これで[VPCの作成]をクリックします。
完成するとパブリックサブネットが一つ作成されていることが確認できます。
今度は先程とは違うAZにパブリックサブネットをもう1つ追加していきます。
コンソールのサブネット画面から[サブネットの作成]をクリックします。
作成したVPCを選択して、
AZを今度はap-northeast-1c
にします。
ルートテーブルにインターネットゲートウェイを付与していきます。
[ルートテーブルの関連付けの編集]をクリックして、
インターネットゲートウェイがあるルートテーブルIDにして保存します。
これで2つのパブリックサブネットが完成しました。
2.インスタンスの構築
それぞれのパブリックサブネットにEC2インスタンスを構築していきます。
インスタンスのコンソール画面から
[インスタンスの作成]ボタンをクリックします。
AMIは一番上のを選択します。
インスタンスの詳細の設定ではVPCは作成したものにし、
サブネットに関しては、最初にAZがap-northeast-1a
のものを選択します。
自動割り当てパブリックIPも有効にしておきます。
それ以外はデフォルトのまま次に進みます。
ストレージの追加はデフォルトのまま進み
タグは任意でnameなどを付けてください。
セキュリティグループの設定画面では
新しいセキュリティグループを作成してください。
タイプの方ではHTTP
とHTTPS
を選択しました。
この状態でインスタンスを作成します。
作成されたことを確認したら
今度はAZがap-northeast-1c
の所に上記の流れでインスタンスを作成します。
変更箇所は以下になります。
- サブネットを
ap-northeast-1c
で作成したものにすること - セキュリティグループは上で作成したものを使用すること
以上でそれぞれのAZに1つずつインスタンスが構築されました。
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
<html><h1>hello A!!</h1></html>
入力が完了したら:wq
で保存します。
保存できたらリスタートさせます。
# service httpd restart
これで完了しました。
確認のためインスタンスの画面から対象インスタンスのパブリックIPをコピーして
WEBのURLに貼り付けてみて下さい。
htmlで作成した文字が表示されました。
これをもう一つのインスタンスにも同じ流れで、
作業してWEBサーバーとして設定していきます。
一応違いを表すためにhtmlファイルを下記の内容にしておきます。
<html><h1>hello C!!</h1></html>
インスタンスのパブリックIPから
下記の内容で表示されました。
4.ELBの作成
インスタンス画面の左にロードバランサーの項目があるので、
そこをクリックします。
[ロードバランサーの作成]をクリックします。
ALB、NLB、CLBの3つがあります。
今回はALBを選択します。
名前を入力します。
そのまま下のアベイラビリティーまで進みます。
作成したVPC、AZを選択します。
タグ任意で名前などを付けてください。
セキュリティグループの設定まで進み、セキュリティグループは
インスタンスの作成時に利用したものを選択してください。
ルーティングの設定でターゲットをインスタンスにして、
プロトコルもHTTPにして作成します。
ターゲット登録画面で
作成した2つのインスタンスにチェックを付けて
[登録済みに追加]をクリックします。
これで作成します。
5.トラフィック検証
それをURLに貼り付けると
WEBサーバーの設定で確認した画面が出てくると思います。
このサイトにアクセスできません
というエラーが出た場合は
少し時間を置いてから実行してみてください。
何回か更新すると表記が変わってくると思います。
今回だとhello A!!
とhello C!!
のようになります。
試しにhello A!!
を表示させるインスタンスを
停止させてみたいと思います。
この状態でELBのDNS名でアクセスすると
hello C!!
しか表示されないことがわかりました。
まとめ
以上のことからELBがターゲット内のインスタンスの状況を
配慮してトラフィックの制御をしていることが確認できました。
Author And Source
この問題について(ELBの設定とトラフィック検証), 我々は、より多くの情報をここで見つけました https://qiita.com/aj2727/items/31a974a5f16d31a0198a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .