ELB(Elastic Load Balancing)を調べて使ってみた。

2021.06.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本日はAWSのELB(Elastic Load Balancing)について整理し、その中のALBを実際に使ってみてALBが実際に起動しているのか確認もしてみましょう。

アジェンダ

  1. ELB(Elastic Load Balancing)とは?
  2. ELB(Elastic Load Balancing)の4種類
  3. ALBを使ってみた
  4. まとめ

ELB(Elastic Load Balancing)とは?

ELB(Elastic Load Balancing)

高拡張性、高可用性の完全管理型サービスで、ロードバランシングは名前の通りロード(=負荷)をバランシングするサービスを言います。 正確にはトラフィックを複数のターゲットに自動的に分散する機能です。 ここで複数のターゲットはAmazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数、仮想アプライアンスなどがあります。

ELBの長所

  • 高可用性
    • 多数のAZに配布したEC2インスタンスなどにトラフィックを分散するので、一つのAZがダウンしてもユーザーのアプリケーションは問題なく使える。
  • 統合性
    • ELBはいろんなAWSサービスと一緒に使用できる。
      • Auto Scaling:拡張性管理及びワークロード分散業務を効率的に可能。
      • Route 53:一緒に使うことでDNS失敗に対応できる。
      • など、、
  • 安全性
    • 統合認証管理、SSL復号化、ポートフォワーディングなど多数のセキュリティ機能を提供。
    • ELB用セキュリティグループを生成して流入·流出するトラフィックを効果的にコントロール可能。
  • 安価
    • 安価でコスト効率的。 ロードバランシング作業を自動化することで多くのコストを削減し、管理者の時間と労力も大きく減らせる。

ELBの用語

  • リスナー
    • リスナーは設定したプロトコルとポートを使用して接続リクエストをチェックするプロセス。
    • 最小1個のリスナーが必要になり、最大10個のリスナーまで設定できる。
  • ターゲットとターゲットグループ
    • ターゲット:トラフィックを分散するところを言うこと。
      • ターゲットはAmazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数、仮想アプライアンスなどがある。
    • ターゲットグループ:トラフィックを分散する複数のターゲットを含んでグループ化したこと。
  • ルール
    • 定義したルールは、ロードバランサーが 1 つ以上のターゲットグループ内のターゲットにリクエストをルーティングする方法を決定する。
    • 各ルールごと優先度·1 つ以上のアクション· 1 つ以上の条件で構成される。
    • 各リスナーにはデフォルトのルールがあり、追加でルールを定義できる。
  • ヘルスチェック
    • ターゲットとターゲットグループが問題なく起動できるように、定義された周期別にターゲットとターゲットグループの状態を確認する動作。

ALBを使ってみた

ELBの中でALB(Application Load Balancer)を実際に使ってみたいと思います。 ALBを使うためには複数のターゲットが必要になるので、ここではAmazon EC2 インスタンスを二つを立て、そこにトラフィックを分散します。


やってみる構成図

VPC, EC2の構築

まず、ALBを使用するためにはターゲットが必要になるので、ターゲットに使うEC2(及びVPC)を構築します。


作ったEC2

ALBの生成

1. ロードバランサー種類選択 (ALB)

2. ロードバランサー設定


ロードバランサーの名前及びリスナーを設定します。 リスナーは通信する * ロードバランサーのプロトコル:HTTP * ロードバランサーのポート:80

で設定します。


ターゲットのEC2があるAZ及びVPCサブネットを設定します。

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


既存のセキュリティグループで設定します。 セキュリティグループのインバウンドルールは80が追加されています。

4. ターゲットグループとターゲットの設定


設定したターゲットグループがないなら、新しいターゲットグループを作ります。 ターゲットグループの名前とターゲット種類、プロトコル、ポートを設定します。


ターゲットも追加します。


ロードバランサーの生成が終わったら、問題なく起動できるようにターゲットグループでヘルスチェックができたのか確認します。

ALBの動作確認

実行したALBが動作しているのか確認するためにターゲットグループに含んだ二つのEC2サーバにApacheサーバーを設置した後、トラフィックが上手に分散できる確認してみましょう。 分散を確認するため、二つのサーバのinedx.htmlの内容とイメージの大きさを違くしました。


1目のサーバー


2目のサーバー

ELBのDNS名に接続してみたら、二つのページが交互に表示される結果が出るので、成功的にロードバランシングできることがわかります。

まとめ

ELBを整理し、実際にやってみました。実際に手で動かしてみたら動作原理がよく理解できるようです。 また、同じ画面に見えても、違うサーバーかもしれない点が面白いと思いました。