メインコンテンツへスキップ
【Amazon ELB(Elastic Load Balancing)とは】AWSをわかりやすく
  1. Posts/

【Amazon ELB(Elastic Load Balancing)とは】AWSをわかりやすく

AWS クラウドコンピューティング インフラ設計 AWS Amazon ELB Elastic Load Balancing ロードバランサー ALB NLB CLB トラフィック分散 EC2 負荷分散 クラウドインフラ
目次

ELB(Elastic Load Balancer)とは、AWSの運用するロードバランサで負荷分散やヘルスチェックとかで使われるくらいに考えていました。

それ以外にも多くの便利な機能があり、図解を用いてELBをわかりやすく解説できればと思います。

主にソリューション アーキテクト向けで勉強した内容をまとめています。

ELB(Elastic Load Balancing)とは
#

Alt text
ELBはElastic Load Balancerと呼ばれている 負荷分散、ヘルスチェック機能を備えたAWSの展開するサービスの一つ。

  • ELBは現在(2019年時点)以下3種類が利用可能
  1. ALB(Applicartion Load Balancer)
  2. NLB(Network Load Balancer)
  3. CLB(Classic Load Balancer)
  • CLBは2013/12/4以前に提供されていたEC2-classicを利用している場合のみ採用される
  • 単一リージョン内の複数AZに対して負荷分散が可能。

※複数リージョンレベルでの負荷分散を行う場合にはRoute53を利用したリージョンレベルでの負荷分散が必要

詳しくは別記事route53とはawsをわかりやすくをご参照ください。

ALBとは
#

Alt text

awsが提供する アプリケーション層(第7階層)ロードバランサ

  • コンテンツベース(例:IPアドレス別、ファイルパス別)でルーティングできる
  • 対応プロトコルは以下の通り
  1. フロント&ALB間 :HTTP/HTTPS
  2. ALB&バック間 : HTTP/HTTPS
  • リクエスト情報(IPアドレス等)を確認する場合はX-Forwarded-For-Headerの値を見る
  • IAMやAWS certificate manager(ACM)でSSL証明書の管理・自動更新が可能
  • SNI(Server Name Indicator)を利用し複数のウェブサイトのSSL証明書の管理が可能
  • Sticky Sessionにより同じユーザのリクエストを同じインスタンスへルーティングが可能
  • Cross zone balancingはデフォルトで有効
  • 少なくとも2つ以上のサブネットがアタッチされる必要がある

NLBとは
#

awsが提供する トランスポート層(第4階層)ロードバランサ

  • IPプロトコル別でルーティングできる(例:TCP)
  • プロトコル:フロント側-> NLB:TCP/TCP_UDP NLB-> バック側:TCP/TLS/TCP_UDP/UDP
  • 高パフォーマンス、低レイテンシが要求される際にNLBが採用される
  • 少なくとも1つ以上のサブネットがアタッチされる必要がある。

CLBとは
#

awsが提供する アプリケーション層/トランスポート層ロードバランサ

ELBの役割(負荷分散、ヘルスチェック)
#

ELBの利用用途は主に以下二つ。

【負荷分散】 主にバックエンドで稼働するEC2インスタンスへのリクエストを分散させることで、インスタンスが死ぬことを防ぐ役割を持つ。

以下の図では本来100%で受けるリクエストがELBによって別々のAZ内のEC2へ50%ずつに分散される。

Alt text

【ヘルスチェック】 ELBがEC2インスタンスの健康状態を確認し、CloudwatchにEC2の健康状態を報告する。

以下がELBヘルスチェックの実行フロー。

  1. ELBがEC2インスタンスに対してリクエストを送る(デフォルト:30秒間隔)
  2. EC2がELBに対して健康ですよーと返答する(デフォルトタイムアウト:5秒)
  3. ELBがCloudwatchに対してEC2の健康状態を報告する

Alt text

ヘルスチェックでEC2がUnhealthyと判断された場合
#

  • もしも EC2がELBに対して時間内に応答しない場合には、EC2はUnhealthyとなり、新しいリクエストはそのEC2には送られなくなる
  • その後、Unhealthyとなったインスタンスは終了(terminate)される
  • まずはUnhealthyと診断されたインスタンスを終了してからAuto-Scailingが始まり新しいインスタンスが生成される

関連記事

【region、az(availability zone)、edge locationとは】awsをわかりやすく
AWS クラウド基礎 インフラ チュートリアル 初心者向け AWS リージョン AZ アベイラビリティゾーン Edge Location クラウド AWS基礎 クラウドインフラ 分散システム クラウドサービス AWS入門
【Amazon EBS(Elastic Block Store)とは】AWSをわかりやすく
AWS クラウドコンピューティング AWS Amazon EBS Elastic Block Store EBS ボリューム EC2 ストレージ クラウドストレージ インフラ設計 初心者向け IT基礎
【Amazon Route53とは】awsをわかりやすく
AWS クラウドサービス ネットワーク インフラ チュートリアル AWS Route53 DNS クラウド ドメイン管理 AWS入門 クラウドサービス ネットワーク インフラ DNS管理 Amazon Web Services