メインコンテンツへスキップ
Amazon ELBとは?AWSの負荷分散を図解でわかりやすく解説【ALB/NLB/CLBの違い】
  1. Posts/

Amazon ELBとは?AWSの負荷分散を図解でわかりやすく解説【ALB/NLB/CLBの違い】

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

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

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

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

Amazon ELB(Elastic Load Balancing)とは?仕組みと基本機能を解説
#

Amazon ELBとは?AWSの負荷分散を図解でわかりやすく解説【ALB/NLB/CLBの違い】
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(Application Load Balancer)とは?特徴と仕組みを初心者向けに解説
#

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(Network Load Balancer)とは?高速・低レイテンシ通信を実現する仕組み
#

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

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

CLB(Classic Load Balancer)とは?旧世代ELBの役割と利用シーン
#

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

Amazon 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

ELBヘルスチェックの結果がUnhealthyになったときの動作と対処法
#

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

よくある質問(FAQ)
#

Q1. Amazon ELBとは何ですか?
#

Amazon ELB(Elastic Load Balancing)は、AWSが提供する負荷分散サービスです。複数のEC2インスタンスにトラフィックを自動的に分散し、システムの可用性とスケーラビリティを向上させます。


Q2. ELBにはどんな種類がありますか?
#

ELBには主に以下の3種類があります。

  • ALB(Application Load Balancer):アプリケーション層(第7層)で動作。HTTP/HTTPSリクエストをコンテンツベースで振り分けます。
  • NLB(Network Load Balancer):ネットワーク層(第4層)で動作。高速・低レイテンシ通信が必要な場合に適しています。
  • CLB(Classic Load Balancer):旧世代のロードバランサーで、EC2-Classic環境向けに提供されています。

Q3. ALBとNLBの違いは何ですか?
#

ALBはHTTP/HTTPSのようなアプリケーション層のリクエストをルーティングするのに対し、NLBはTCP/UDPなどのネットワーク層トラフィックを高速処理することに特化しています。
WebアプリにはALB、リアルタイム通信やゲームサーバにはNLBが向いています。


Q4. ELBのヘルスチェックとは何ですか?
#

ヘルスチェックとは、ELBが登録されたEC2インスタンスに対して定期的にリクエストを送り、正常に応答するかどうかを確認する仕組みです。
応答がなければそのインスタンスを「Unhealthy」と判定し、トラフィックを自動的に他の正常なインスタンスに切り替えます。


Q5. ELBはどんなメリットがありますか?
#

主なメリットは以下の通りです:

  • トラフィックの自動分散による高可用性
  • ヘルスチェックによる自動フェイルオーバー
  • SSL証明書やHTTPSのセキュア通信サポート
  • AWS Auto Scalingとの自動連携

Q6. Route53とELBはどのように使い分けますか?
#

Route53はDNSレベルでの負荷分散を担当し、複数リージョン間でのトラフィック制御が可能です。
一方、ELBはリージョン内でのEC2インスタンス間のトラフィック分散を担当します。
そのため、Route53+ELBを組み合わせることで、より強力なマルチリージョン構成を実現できます。


Q7. ALBやNLBの料金はどのように発生しますか?
#

ELBの料金は主に以下の2つの要素で構成されます:

  1. 稼働時間(ロードバランサーが有効な時間)
  2. 転送データ量(処理されたトラフィック量)
    詳細な料金体系はAWS公式のElastic Load Balancing 料金ページをご参照ください。

関連記事

【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