COLUMN
AWSのロードバランサーとは? ALB・NLBの違いと用途について
こんにちは。NTT東日本のオカです。 |
AWSでロードバランサーを利用したいと考えたものの、「何ができるの?」「いくつかあるけど何が違うの?」という疑問を持った方は多いと思います。
本コラムではAWSでロードバランサー導入を考え始めた方向けに、ロードバランサーの概要とそれぞれの違いや利用シーンについて簡単にご説明いたします。
1. AWSのロードバランサーとは?
ロードバランサーとは負荷分散装置とも呼ばれ、サーバーへリクエストを分散することでサーバーの可用性と拡張性を高めることができます。
例えば、ウェブサーバーのリクエスト受信先として設置しバックエンドに複数サーバーを設定することで、高アクセスにも耐えられるシステムを実現できます。
1-1. AWSのロードバランサー4種類
AWSではELB(Elastic Load Balancing)というロードバランサーのサービスが提供されています。
ELBにはALB(Application Load Balancer)、NLB(Network Load Balancer)、CLB(Classic Load Balancer)と2021年にリリースされたGLB(Gateway Load Balancer)の4種類があり、それぞれ機能が異なるため、利用シーンや目的によって選択することができます。
CLBは2009年にELBという名前でリリースされ、その後ALB、NLBの登場と共に名前が変更されました。2023年3月現在構築可能ではありますが、機能としてはALB、NLBでカバーできます。
また、GLBはサードパーティー製のセキュリティサービスをAWSで利用する場合に利用しますが、本コラムではALBとNLBに絞って解説していきます。
以下はALBを利用したウェブサーバーの構成例になります。
1-2. 利用構成例と機能・メリット
上図は、EC2 2台をターゲットに登録し、フロントにALB設置したシンプルな構成です。
すべてのリクエストをALBで受信し自動的にターゲットのEC2に分散します。
AWSでロードバランサーを利用するメリットや機能については以下が挙げられます。
高可用性
ELBは複数あるターゲットに対して、正常な状態であることモニタリングし、正常なターゲットにのみ自動でトラフィックを分散し送信します。
その際には複数のAZ(アベイラビリティゾーン:地理的に切り離されたデータセンター群)を跨いで負荷分散することが可能です。
スケーラブル
トラフィックの増減に応じて、ELBは自動でスケールアップ/スケールアウトを行います。
また、AutoScaling機能と組み合わせることで、バックエンドのEC2インスタンスの数の増減を自動化することも可能です。
セキュリティ強化
ELBにSSL証明書を設定することで、通信の暗号化ができます。
ALBでは、セキュリティグループの設定を行い通信の制限(例:HTTP80のみ許可など)やAWS WAFというアプリケーションファイアーウォールを関連付けることで、よりセキュリティを強化することが可能です。
モニタリングとログ記録
ELBはターゲットへ定期的にリクエストを送信し、正常性を確認しています(ヘルスチェック)
正常/異常なホスト数や、ELBへのリクエスト数、レイテンシーなどのメトリクスがcloudwatchによりモニタリングできます。
また、ELBへのアクセスログも取得可能となっているためトラブルが起きた際などには原因の特定に役立ちます。
他にもメリットや機能は挙げられますが、上記の設定をAWSマネージメントコンソール上で設定、確認が簡単にできる点はクラウドサービスを利用するメリットでもあります。
2. ALB? NLB?
「ELBについては大まかに理解できたけれど、どちらを選べば良いの?」という方も多いと思います。
2-1. 機能の比較
そこで、ELBの中でもよく利用されるALBとNLBについて比較してみます。
ALBとNLBの違いは他にもありますが、ここでは特徴的なものを一部取り上げます。
ALB | NLB | |
---|---|---|
動作レイヤー |
レイヤー7 (アプリケーション層) |
レイヤー4 (トランスポート層) |
対応プロトコル | HTTP、HTTPS、gRPC | TCP、UDP、TLS |
リダイレクト設定 | 〇 | × |
セキュリティグループの設定 | 〇 | × |
ロードバランサー自体への固定IP付与 | × | 〇 |
出典:
2-2. 迷ったときは……
AWS公式ドキュメントによりますと、
「HTTP リクエストの負荷分散を行う必要がある場合は、Application Load Balancer (ALB) を使用することをお勧めします」
「ネットワーク/トランスポートプロトコル (レイヤー 4 – TCP、UDP) の負荷分散および非常に高いパフォーマンス/低レイテンシーのアプリケーションには、Network Load Balancer を使用することをお勧めします」
と記載があります。
出典:Elastic Load Balancing のよくある質問
大まかな目安になりますがウェブサーバーの場合はALB、DNSサーバーやメールサーバーなどHTTP/HTTPS以外のTCP、UDPを使用する場合はNLBを選ぶことが最適です。
3. AWSのロードバランサー導入についてご相談はNTT東日本へ!
AWSのロードバランサーサービスは、本コラムで挙げた以外にも多くの機能やメリット、特徴があります。
例えば、セッション維持の機能を持たせ、さらに維持期間設定することやALBでしたらウェブサーバーのパスごとにターゲットとなるサーバーを振り分け指定することも可能です。
NTT東日本が提供するクラウド導入・運用サービスでは多くの導入実績がございますので、お客さまのご要望をヒアリングし、最適な設定を実現いたします。
ロードバランサー導入ご検討の際はぜひNTT東日本へご相談ください。
Amazon Web Services(AWS)および記載のあるAWSの各サービス名は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。