公開:

AWSのNLB(Network Load Balancer)とは?意味をわかりやすく簡単に解説

text: XEXEQ編集部


NLB(Network Load Balancer)とは

NLB(Network Load Balancer)は、Amazon Web Services(AWS)が提供するロードバランシングサービスの一つです。NLBは、Layer4(トランスポート層)で動作し、TCP/UDPトラフィックを複数のターゲットに分散させることができます。

NLBは、高いスループットと低いレイテンシーを実現するために設計されています。NLBは、数百万のリクエストを毎秒処理することができ、アプリケーションの可用性と信頼性を向上させることができます。

NLBは、静的IPアドレスを使用してターゲットにトラフィックをルーティングします。これにより、インスタンスの障害時にも、IPアドレスを変更せずにトラフィックを別のインスタンスにルーティングすることができます。

NLBは、ヘルスチェック機能を備えており、異常なインスタンスを自動的に検出し、トラフィックの分散から除外することができます。これにより、アプリケーションの可用性を維持することができます。

NLBは、AWSのVPC(Virtual Private Cloud)内で動作し、プライベートサブネットやパブリックサブネットに配置することができます。また、NLBは、複数のアベイラビリティーゾーンにまたがって構成することができ、高い可用性を実現することができます。

NLBの主な特徴と利点

NLBの主な特徴と利点に関して、以下3つを簡単に解説していきます。

  • NLBの高いパフォーマンスと拡張性
  • NLBのヘルスチェック機能による可用性の向上
  • NLBの柔軟なネットワーク構成オプション

NLBの高いパフォーマンスと拡張性

NLBは、高いスループットと低いレイテンシーを実現するために設計されています。NLBは、数百万のリクエストを毎秒処理することができ、アプリケーションのパフォーマンスを向上させることができます。

また、NLBは、自動的にスケールアウトすることができます。トラフィックの増加に応じて、NLBは自動的にキャパシティを追加し、アプリケーションの負荷を分散させることができます。

NLBは、コンテナ化されたアプリケーションやマイクロサービスアーキテクチャにも適しています。NLBは、動的なポートマッピングをサポートしており、コンテナの動的な起動や停止に柔軟に対応することができます。

NLBのヘルスチェック機能による可用性の向上

NLBは、ヘルスチェック機能を備えており、ターゲットの健全性を継続的にモニタリングすることができます。NLBは、定期的にターゲットにリクエストを送信し、応答を確認することで、ターゲットの状態を判断します。

ヘルスチェックに失敗したターゲットは、自動的にトラフィックの分散から除外されます。これにより、異常なインスタンスへのトラフィックの送信を防ぎ、アプリケーションの可用性を維持することができます。

また、NLBは、ヘルスチェックの設定を柔軟にカスタマイズすることができます。ヘルスチェックのプロトコル、ポート、パス、間隔、タイムアウトなどを設定することで、アプリケーションの特性に合わせたヘルスチェックを実装できます。

NLBの柔軟なネットワーク構成オプション

NLBは、AWSのVPC内で動作し、プライベートサブネットやパブリックサブネットに配置することができます。これにより、アプリケーションのセキュリティ要件に応じて、適切なネットワーク構成を選択することができます。

また、NLBは、複数のアベイラビリティーゾーンにまたがって構成することができます。各アベイラビリティーゾーンにNLBのノードを配置することで、障害発生時にもトラフィックを別のアベイラビリティーゾーンにルーティングし、高い可用性を実現することができます。

NLBは、AWS PrivateLinkとの統合もサポートしています。AWS PrivateLinkを使用することで、NLBをVPC内のプライベートなエンドポイントとして公開し、インターネットを経由せずにサービスにアクセスすることができます。

NLBを利用するユースケース

NLBを利用するユースケースに関して、以下3つを簡単に解説していきます。

  • 高トラフィックなWebアプリケーションのロードバランシング
  • コンテナ化されたアプリケーションのロードバランシング
  • クロスゾーンの高可用性を実現するためのロードバランシング

高トラフィックなWebアプリケーションのロードバランシング

NLBは、高トラフィックなWebアプリケーションのロードバランシングに適しています。NLBは、高いスループットと低いレイテンシーを実現するため、大量のリクエストを効率的に処理することができます。

Webサーバーやアプリケーションサーバーの前段にNLBを配置することで、トラフィックを複数のインスタンスに分散させ、アプリケーションのパフォーマンスと可用性を向上させることができます。NLBは、SSL/TLS終端もサポートしているため、セキュアなWebアプリケーションの構築にも適しています。

また、NLBは、Auto Scalingと組み合わせることで、トラフィックの変動に応じて自動的にインスタンスの数を調整することができます。これにより、コストを最適化しつつ、アプリケーションのパフォーマンスを維持することができます。

コンテナ化されたアプリケーションのロードバランシング

NLBは、コンテナ化されたアプリケーションのロードバランシングにも適しています。コンテナオーケストレーションツールであるAmazon ECSやAmazon EKSと連携することで、コンテナの動的な起動や停止に合わせてトラフィックを分散させることができます。

NLBは、動的ポートマッピングをサポートしているため、コンテナのポートを動的に割り当てることができます。これにより、コンテナの柔軟性を維持しつつ、ロードバランシングを実現することができます。

また、NLBは、コンテナのヘルスチェックを行うことができます。コンテナの状態を継続的にモニタリングし、異常なコンテナへのトラフィックの送信を防ぐことで、アプリケーションの可用性を高めることができます。

クロスゾーンの高可用性を実現するためのロードバランシング

NLBは、クロスゾーンの高可用性を実現するためのロードバランシングに適しています。NLBを複数のアベイラビリティーゾーンにまたがって構成することで、一つのアベイラビリティーゾーンで障害が発生した場合でも、他のアベイラビリティーゾーンにトラフィックを自動的にルーティングすることができます。

NLBは、静的IPアドレスを使用してターゲットにトラフィックをルーティングするため、障害発生時にもIPアドレスを変更せずにトラフィックを別のインスタンスにルーティングすることができます。これにより、アプリケーションの可用性を維持することができます。

また、NLBは、複数のアベイラビリティーゾーンにまたがって構成することで、ディザスタリカバリーにも対応することができます。一つのリージョンで大規模な障害が発生した場合でも、別のリージョンにあるNLBにトラフィックを切り替えることで、アプリケーションの継続的な運用を実現できます。

NLBとALBの違い

NLBとALB(Application Load Balancer)の違いに関して、以下3つを簡単に解説していきます。

  • 動作レイヤーの違い
  • トラフィックルーティングの違い
  • 機能の違い

動作レイヤーの違い

NLBとALBの主な違いの一つは、動作するレイヤーです。NLBはLayer4(トランスポート層)で動作し、TCP/UDPトラフィックを処理します。一方、ALBはLayer7(アプリケーション層)で動作し、HTTP/HTTPSトラフィックを処理します。

NLBは、トランスポート層で動作するため、高いパフォーマンスと低いレイテンシーを実現することができます。NLBは、SSL/TLSの終端を行うことができますが、アプリケーション層の機能は提供していません。

ALBは、アプリケーション層で動作するため、リクエストの内容に基づいてトラフィックをルーティングすることができます。ALBは、パスベースやホストベースのルーティング、リクエストの属性に基づくルーティングなどの高度な機能を提供しています。

トラフィックルーティングの違い

NLBとALBでは、トラフィックのルーティング方法が異なります。NLBは、受信したTCP/UDPトラフィックを、設定されたターゲットグループ内のターゲットに均等に分散します。NLBは、各ターゲットの負荷や応答時間を考慮せず、ラウンドロビン方式でトラフィックを分散します。

一方、ALBは、受信したHTTP/HTTPSリクエストを、設定されたルールに基づいてターゲットグループにルーティングします。ALBは、リクエストの内容に基づいてルーティング先を決定するため、より柔軟なトラフィック制御が可能です。

また、ALBは、リクエストの属性に基づいてルーティングを行うことができます。例えば、ユーザーのCookieHTTPヘッダーの情報に基づいて、特定のターゲットグループにリクエストをルーティングすることができます。

機能の違い

NLBとALBでは、提供される機能にも違いがあります。NLBは、高いパフォーマンスと可用性に重点を置いており、SSL/TLS終端、静的IPアドレス、クロスゾーンのロードバランシングなどの機能を提供しています。

ALBは、アプリケーション層の機能に重点を置いており、パスベースやホストベースのルーティング、リクエストの属性に基づくルーティング、コンテンツベースのルーティングなどの高度な機能を提供しています。また、ALBは、Webソケットや HTTP/2のサポート、Lambdaファンクションの呼び出しなどの機能も備えています。

用途に応じて、NLBとALBを使い分ける必要があります。高パフォーマンスとシンプルなロードバランシングが必要な場合はNLBを、アプリケーション層の高度な制御が必要な場合はALBを選択するのが一般的です。

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「コンピュータ」に関するコラム一覧「コンピュータ」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。