【AWS入門】NLB(ネットワーク負荷分散)とは?特徴や利用方法、料金を解説

  • 2023.06.02
       
【AWS入門】NLB(ネットワーク負荷分散)とは?特徴や利用方法、料金を解説

NLBとは?

NLB (Network Load Balancer) とは、アプリケーションへのトラフィック (通信量) による負荷を分散するサービスである ELB (Elastic Load Balancing) のロードバランサー機能の一つです。
ロードバランサーとは、負荷を振り分けることで 1 つのサーバの負荷を軽減する仕組みです。
NLB は OSI 参照モデルでいうところのレイヤ 4 (トランスポート層) で動作し、毎秒数百万リクエストといった膨大なトラフィックでも、高速な負荷分散を実現できるため、突発的なトラフィック増加など、高度なパフォーマンスと低レイテンシー (通信遅延) が求められるアプリケーションで用いられることが多いです。

NLBの特徴

レイヤ 4 に対応
レイヤ 4 プロトコルでは TCP や UDP、TCP + UDPリスナー、TLS リスナーをサポートしているおり、NLB はそのレイヤ 4 で動作しているため、TCP / UDP / TLS のトラフィック分散に適しています。

長時間セッションに対応
WebSocketプロトコルで通信を行うアプリケーションに対して、接続状態を長時間維持する通信処理にも対応しています。

送信元IPアドレス
クライアントの送信元 IP アドレス/ port がターゲットまで保持されるため、ゾーンごとに IP アドレスを管理でき、安定した通信処理を行えます。

DSR方式の実現
NLB は、NAT 方式の L4 ロードバランサーですが AWS Hyperplane という AWS 独自の特殊な負荷分散技術が用いられており、設定次第では NAT 方式の L4 ロードバランサーではなく、DSR 方式の L4 ロードバランサーのように動作させることも可能です。その際、戻りのパケット経路などを考慮する必要がありません。

同一ポート番号での処理
NLB は、「TCP+UDPリスナー」の使用により TCP と UDP それぞれの通信を同一のポート番号で処理できます。
たとえば、DNS サービス (TCP、UDPを使用) の場合、「ポート:53」に「TCP+UDPリスナー」を作成できます。
この際、「TCP+UDPターゲットグループ」に「TCP+UDPリスナー」を紐付けておく必要があります。

プログラミングの基礎からサイト制作まで
↓実践力が身につくプログラミングスクール↓

ITエンジニアの学校 テックマニアスクール

≫モニター割引キャンペーン実施中!≪

NLBの利用方法

NLB の利用方法について、以下の順に説明していきます。

  1. ロードバランサーの作成
  2. ロードバランサーとリスナーの設定
  3. ターゲットグループの設定
  4. ターゲットの登録

(1)ロードバランサーの作成
まず、ロードバランサーを作成します。
「Amazon EC2」コンソール画面を開き、ロードバランサーのリージョンを選択します。
次に、「Amazon EC2」インスタンスのリージョンと同一のリージョンを選択します。
そして、メニューの「LOAD BALANCING」で「Load Balancers」を選択し、「Create Load Balancer」、「作成」の順にクリックします。

(2)ロードバランサーとリスナーの設定
ロードバランサーとリスナーの設定を行います。
「ロードバランサーの設定」ページの「名前」欄にロードバランサー名を入力します。
「Scheme」はデフォルト値のままで問題ありません。
「Availability Zones」の選択欄については「Amazon EC2」インスタンスのある VPC を選び、「Next: Configure Routing」をクリックします。

(3)ターゲットグループの設定
ターゲットグループの設定を行います。
「ルーティングの設定」ページの「ターゲットグループ」欄で「新しいターゲットグループ」を選択し、「Name」欄に新規のターゲットグループ名を入力します。
「プロトコル」を TCP、「ポート」を 80、「ターゲットの種類」と「Health checks」をデフォルト値のままに設定します。

(4)ターゲットの登録
ターゲットグループへのターゲットを登録します。
最後に「Next: Register Targets」をクリックし、「Register Targets」ページの「Instances」で対象のインスタンス、「Add to registered」を順に選択し、「Next: Review」をクリックします。

NLBの利用料金

AWS の各種ロードバランサーの利用料金は基本的に 1 時間単位または 1 時間未満のロードバランサー使用量とロードバランサーの LCU (キャパシティユニット) の使用量の合算です。
利用料金は使用するリージョンによって多少異なります。本記事では、2022 年 10 月時点でのアジアパシフィック (東京) リージョンの料金を掲載しています。

  1. NLB使用量
  2. NLCU使用量

(1)NLB使用量について
NLB の構築から 1 時間ごとに発生する費用です。
NLB を利用した通信を行っておらずとも、NLB を保有していることで 1 時間 (または1時間未満) あたり 0.0243USD が発生します。
たとえば、一か月間利用すると 24時間 × 31日 × 0.0243USD = 18.0792USD となり、日本円では大体 2700 円程度になります。円安の影響で以前より高額になっていますね。

(2)NLCU使用量について
NLCUについてはNLBの利用においてトラフィックの処理量を測定し、複数の要素のうち一番使用量が高いものが請求対象になり、1時間(または1時間未満)あたり、0.006USD が発生します。
NLCU の要素としては以下のものがあります。

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

AWSカテゴリの最新記事