よくわかるAWS・クラウド

  • AWS入門
  • AWS

【AWS入門】AWSのELBとは?ロードバランサーの種類、特徴、料金を紹介

Amazon Web Service(AWS)には、サーバー負荷(load)を低減させるために、外部からのリクエストを複数のサーバーに振り分け負荷分散するロードバランサーのサービスがあります。これはELB(Elastic Load Balancing)と呼ばれており、大きく分けて四種のサービスがあります。ここでは、それらの概要と特徴を紹介します。

ELB、ALB、NLB、GLB、CLBとは何か?

AWSのELBは、アプリケーションへの負荷やCPUの稼働状況をリアルタイムにモニタリングできるロードバランサーです。これによってシステムのボトルネックを見つけて解消したり、アクセスを自動的に分散できます。サーバーがダウンしたら、そのサーバーへのアクセスを止めて、他に割り振ることも可能です。またヘルスチェック機能があり、ロードバランサーの内側にあるそれぞれのサービスの状態をモニタリングできます。

ELBは、2009年にリリースされました。当時はロードバランシングのサービスは1つしかなく、AWSのロードバランサーと言えば「Amazon ELB」でした。その後、システムのニーズに合わせたサービスとして、2016年にWebサービスに発生する負荷を分散するALB(Aplication Load Balancer)が、2017年に高パフォーマンスが必要な環境の負荷を分散するNLB(Network Load Balancer)が登場しました。このとき従来のELBは、CLB(Classic Load Balancer)と名前を変えて残りました。現在、AWSでは、なるべくALBやNLBを利用するように推奨しています。

また2021年には、GLB(Gateway Load Balancer)が発表されました。これはフルマネージドのネットワークゲートウェイおよびロードバランサーです。ファイアウォールなどの、サードパーティの仮想アプライアンスをクラウドに展開、拡張、管理できます。

AWSのロードバランサーは現在4種あり、構築するシステムに合わせて適したものを選択するようになっています。

AWSを活用した障害への対処法

アクセス集中でのサービス停止を回避
“AWSを活用した障害への対処法”
Webサーバーへのアクセス集中に効果的に対応するにはどのサービスを利用するのがよいのでしょうか?
ELBなどAWSサービスを例にご紹介します。

ロードバランシングの目的は、負荷分散

ロードバランシングの目的は、負荷分散

新製品や大きなニュースが発表されると、Webサイトにアクセスが集中することがあります。そのときサーバーに処理能力以上のアクセスがあると、サーバーの反応が低下(遅い)し、最悪のケースではサーバーがダウンしてしまいます。対策としては、サーバーの数を増やして処理能力を増やす方法がありますが、それぞれのサーバーの処理能力を有効に活用するには、負荷であるアクセスが集中しないように振り分ける必要があります。この負荷分散の役目をロードラバンシングと呼び、それを行うのがロードバランサーです。

ELBは、ロードランサーの機能をクラウド上で行うもので、負荷を効率よく分散するために、サーバー上で動作しているアプリケーションの稼働状況を常に監視しています。そしてあるサーバーの能力が限界に近づくと、他のサーバーに負荷を割り振ります。

マンガでわかるAWS運用代行サービス
システムの過負荷に備えたオートスケーリングなどAWSのベストプラクティスに則って自動化と効率化を踏まえた設計も行う「AWS運用代行サービス」についてマンガで解説します。

HTTP、HTTPSに対応するロードバランサー「ALB(Application Load Balancer)」

ALBは、HTTP・HTTPSプロトコルのレイヤー7(アプリケーション層)に対応する単一ロードバランサーです。Webアプリケーション用には、よく利用されています。特徴は以下の通りです。

複数のAZ(アベイラビリティゾーン)をまたいだインスタンスに対応することができて、高い耐障害性の実現が可能です。キャパシティの自動増減機能が備わっているので、可用性がたいへん優れています。サーバーに対するリクエストを、異なるURLごとに振り分けることができます。状態監視サービスのAmazon CloudWatchと連携し、メトリクスという時系列データを使って、システムが正しく動作しているかの確認ができます。SSL証明書をインストールすることができるので、通信のHTTPS(SSL)化を容易に行えます。そのためサーバーが1台しかなくても、通信をSSL化するために利用することもできます。

低遅延で大量アクセスを分散する「NLB(Network Load Balancer)」

NLBは、TCPやUDPのレイヤー4(トランスポート層)で動作して、リクエストの内容に基づいてターゲットにルーティングします。パケットというデータの断片しか確認しないので、ALBのように細かい振り分けはできませんが、その代わり超低遅延で高スループットを維持でき、秒間何百万ものリクエストをさばけるロードバランサーです。予測される負荷を事前に申請する「暖機申請」が不要なので、負荷が急に増えるような大量のアクセスが想定されるサーバーに向いています。

アクセスを振り分けるときに、静的IPアドレスを設定できます。アクセスしてきたクライアント側のIPアドレスを、そのままサーバーに伝える設定ができます。ファイアウォールの制約でNLBのIPアドレスを固定する必要がある場合に、すでに持っているElastic IP(AWS内で使える固定IPアドレス。IPアドレスの指定はできないが、取得したIPアドレスは専有できる)を割り当てることができます。

サードパーティーの仮想ネットワークを拡張できる「GLB(Gateway Load Balancer)」

GLBは、レイヤー3(ネットワーク層)で動作します。ファイアウォール、侵入検知および防止システム、ディープパケットインスペクションシステムといったサードパーティのセキュリティ製品などをAWS上で利用する場合、従来に比べシンプルかつ容易に、スケール、可用性、サービス提供のしやすさを向上させることができます。利用する場合、アプリケーションが稼働しているVPCとセキュリティ製品が稼働しているVPCとを、GLBで接続します。

ロードバランサーの機能がありますので、セキュリティ製品の死活監視やオートスケーリングにも対応しています。

EC2-Classicネットワークに対応する「CLB(Classic Load Balancer)」

CLBは、複数のAmazon EC2インスタンスに対して基本的な負荷分散を行います。EC2-Classicネットワーク内で構築したアプリケーションが対象で、レイヤー7もしくはレイヤー4のいずれかで動作します。対応可能なプロトコルが多いのが特徴で、TCP、SSL/TLS、HTTP、HTTPSなどに対応しています。

2021年7月、AWSは、同社最古のクラウドコンピューティングサービスの1つであるEC2-Classic Networking の提供終了を発表しました。2021年10月30日には、アクティブでないEC2-Classicリソースは無効にされました。2022年8月15 日までには、EC2-Classic Networking が他のクラウドに移行され、AWSアカウントにはEC2-Classicリソースが存在しないと想定されています。

“アクセス集中でのサービス停止を回避!AWSを活用した障害への対処法”
Webサイトへのアクセス集中による遅延や停止を防ぐための効果的な方法として、ELBなどAWSサービスを紹介しているホワイトペーパー

ELBの料金

AWS ELBの料金

ELBの料金は、1時間単位もしくは1時間未満のロードバランサーの使用量と、キャパシティユニット(LCU)の使用量の合算になります。LCUの要素はロードバランサーの種類により異なります。それぞれの料金もロードバランサーを使うリージョンによって異なります。以下、2021年8月のアジアパシフィックで料金を確認しています。

各ロードバランサーの料金

ALBの料金

ALBは、利用1時間(または 1 時間未満)あたり0.0243USD、LCU 時間(または 1 時間未満)あたり0.008USDです。
LCUは、以下の4つの要素のうち、1番使用量が多い要素にのみ費用がかかります。

  • 「新しい接続」1秒あたりに新たに確立された接続の数
  • 「アクティブ接続」1分あたりのアクティブな接続の数
  • 「処理タイプ」ロードバランサーによって処理された HTTP(S)リクエストと応答のバイト数(GB 単位)
  • 「ルール評価」ロードバランサーが処理したルールの数とリクエストレートの積

NLBの料金

NLBは、利用時間 (または 1 時間未満) あたり0.0243USD、NLCU時間(または 1 時間未満)あたり0.006USDです。
NLCUは、以下の3つの要素のうち、1番使用量が多い要素にのみ費用がかかります。

  • 「新しい接続またはフロー」1秒あたりの新たに確立された接続またはフローの数
  • 「アクティブな接続またはフロー」1分ごとにサンプリングされたピーク時の同時接続またはフローの数
  • 「処理バイト」ロードバランサーによって処理されたバイト数(GB 単位)

GLBの料金

GLBは、時間(または1時間未満)あたり0.0135USD、GLCU時間(または 1 時間未満)あたり0.004USDです。
GLCUは、以下の3つの要素のうち、1番使用量が多い要素にのみ費用がかかります。

  • 「新しい接続またはフロー」1秒あたり新たに確立された接続またはフローの数
  • 「アクティブな接続またはフロー」1分ごとにサンプリングされたピーク時の同時接続またはフローの数
  • 「処理バイト」ロードバランサーによって処理されたバイト数(GB 単位)

CLBの料金

CLBは、時間(または 1 時間未満)あたり0.027USD、CLBで処理したデータのGB単位あたり0.008USDの合算です。

ELBは、AWS無料利用枠を使って無料で利用することができます。サインアップ時、新規のAWSユーザーは、CLBとALBで共有した750 時間/月、CLBの15GBのデータ処理、Amazon ALBの15LCUを、無料で利用できます。

ELBの導入・構築はご相談ください

ELBにはいろいろ種類がありますが、どれも既存のクラウドリソースを効率よく、トラブルなく運用するために必須のサービスです。ただALB、NLBのどちらを使うか、どのような設定にするかは、それなりの知識と経験やノウハウがポイントになります。

いろいろトライ&エラーをするのも大切ですが、AWSプレミアコンサルティングパートナーであるNHN テコラスでは、AWSの活用を支援するさまざまなサービスを提供するAWS総合支援サービス C-ChorusからELBを効果的に活用する方法をサポートしております。自社のクラウド導入や活用で困ったことがありましたら、ぜひご相談ください。

AWSを活用した障害への対処法

アクセス集中でのサービス停止を回避
“AWSを活用した障害への対処法”
Webサーバーへのアクセス集中に効果的に対応するにはどのサービスを利用するのがよいのでしょうか?
ELBなどAWSサービスを例にご紹介します。

おすすめのサービス

おすすめの記事

おすすめのカテゴリ