🔰

【初学者向け】ロードバランサーの基本機能とAWS ALBとNLBを機能比較してみた

2023/11/11に公開

はじめに

AWSサービスの学習をしていると、似たような役割をもつサービスがでてきたりしますよね。
その例として、Application Load Balancer(以下、ALB)とNetwork Load Balancer(以下、NLB)が挙げられると思います。
本記事では、「そもそもロードバランサーってなんだっけ?」「AWSが提供するロードバランサーの種類って何があるの?」「ALBとNLBの違いを理解したい~!」っていう初学者の方にぜひ、読んでみていただきたいです。
2023年11月時点の情報となります。

ロードバランサーってなんなの?

ロードバランサーとは、名前が示す通り、サーバやネットワークの「負荷(ロード)」を「均等に分散(バランス)」する技術のことです。
現代では、インターネットが発展し、Webサイトやアプリケーションのトラフィックが増大するにつれ、1つのサーバだけでは、全てを処理することが困難な状況になりました。
そこで、対応策としてロードバランサーが登場しました。

ロードバランサーの基本機能について

1. 負荷分散

Webサイトやアプリケーションを使用しているユーザからのリクエストがロードバランサーに到達すると、ロードバランサーはそのリクエストを複数のサーバの中から一つに振り分けます。振り分ける際の基準は、それぞれのサーバの現在の負荷や性能、設定に依存します。この仕組みにより、全てのリクエストが一つのサーバに集中することを防ぎ、全てのサーバのリソースを有効に活用することができます。

2. ヘルスチェック

ロードバランサーはサーバの健康状態を定期的にチェックする役割を担っています。このヘルスチェックは、サーバが正常に動作しているかどうかを確認するために特定のURLへのリクエストやポートの状態を確認することで行われます。サーバが応答しない場合や応答時間が長すぎる場合、ロードバランサーはそのサーバを「不健康」と判断し、新しいリクエストを他の健康なサーバに自動的に振り分けます。

AWSが提供するロードバランサーの種類について

AWSが提供するロードバランサーは、総じてElastic Load Balancing(以下、ELB) と呼ばれています。

ELBのサービスの一部として3つの種類のロードバランサーがあります。

※詳細については、各公式サイトをご覧ください。

Classic Load Balancer(以下、CLB)

https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html

Application Load Balancer(ALB)

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/introduction.html

Network Load Balancer(NLB)

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/introduction.html

ALBとNLBの機能と用途の比較表

項目 ALB NLB
プロトコル HTTP/HTTPS TCP,UDP,TLS
OSIモデル 第7層(アプリケーション層) 第4層(トランスポート層)
トラフィック管理 主にHTTPおよびHTTPSトラフィック
URLパス、ホスト名、HTTPヘッダーなどの
内容に基づいてトラフィックをルーティングする
TCP,UDP,TLSを使用したトラフィック
接続レベルでのトラフィック分散を行う
スケーラビリティ 高いスケーラビリティを提供し、アプリケーションの負荷に応じて自動調整 極めて高いスループットと性能を提供し、大量のトラフィックを効率的に処理
セキュリティ SSL/TLSオフローディングによる
セキュリティの強化
TLSリスナーによるセキュアなトラフィックの管理
SSL/TLSオフローディング SSL/TLSオフローディングをサポートし、サーバの負荷を軽減
HTTPSのトラフィック処理が効率的
トランスポートレイヤーセキュリティ(TLS)を使用したリスニングはサポートするが、オフローディングはサポートしていない
ポートマッピング 同じポートで複数のIPアドレスやインスタンスにトラフィックをルーティングする機能はない ターゲットグループに対する複数ポートのサポート
同一インスタンスで複数のアプリケーションを運用可能
パフォーマンス リクエストレベルでの高度な処理により、
やや遅延がある
高いスループットと低遅延を提供
大規模トラフィックに適している
ヘルスチェック HTTP/HTTPSベースのヘルスチェック
アプリケーションレベルの問題を検出する
主に接続可能性の確認に基づくヘルスチェック
アプリケーションレベルの問題検出は行わない

終わりに

ロードバランサーの詳細やAWSが提供するロードバランサーの種類について、図解や表を用いて解説しました。図解や表を用いると視覚学習で理解が深まります。
また、各サービスは単発で学習するのではなく、関連付けて学習することも大切だとわかりました。
これからも、日々、学習を積み上げていきます。
最後まで読んでくださり、ありがとうございました。

Discussion