修行ブログ

修行メモ

NLB備忘録

はじめに

NLBをそれなりに触っています。
色々ハマったので備忘録としてブログを書いておきます。

NLBとは?

Elastic load balancerの選択肢のひとつ。
Network Load Balancerの略。
http/https以外の通信プロトコルを利用したい場合に利用する。

備忘録

ALBと共通する部分と、NLB特有の部分と両方ありますが、一旦気にせず書きます。
・オンプレミスからDNS名を指定して通信したい場合、オンプレ側かクラウド側のどちらかで名前解決する必要がある。
 →当たり前のことを言っているようだが、どちらにするかで対応事項が変わるので意識しておく
 →具体的には、利用するリゾルバの指定を行う。クラウド側のリゾルバを使う場合は、Route53 Resolverを利用する。

  →オンプレからクラウド の名前解決では、「インバウンドエンドポイント」を作成する。
   これがそれなりに高額なので注意。
DNS名を指定して通信する場合は、NLBが物理的にどのAZに存在するかは気にしなくて良い。
 ただし、DNS周りの事情で「固定のIP」指定で通信したい場合は注意。
 IPアドレスは、特定のサブネットに所属するリソース。つまり特定のAZにも所属することになる。

・またNLBは、作成時指定したAZそれぞれに物理的なリソースは存在する。
 →そしてデフォルトでは、指定したAZに物理的に存在するNLBを通る通信は、同じAZのターゲットにしかトラフィックが振り分けられない。

・が、「クロスゾーン負荷分散」を利用すれば、特定のAZの物理NLBを通る通信を、別AZに所属するターゲットにも振り分けることができる。
・クロスゾーン負荷分散はNLBしかできんらしい。
・なんで

もっと整理したいこと

・「クロスゾーン負荷分散」は何を解決する機能なのか?
DNS名指定でNLBへ通信するとき、後ろのIPアドレスラウンドロビンで振り分けられる?
・リスナーポートとターゲットポートの役割について
・なんでALBはクロスゾーン負荷分散できないのか?
・NLBを複数ゾーン構成にすることは料金に影響ある?

参考にした情報

NLBでオンプレ・AWSの様々なターゲットIPと重複するポートへの通信を振り分ける | DevelopersIO

→振り分け設計の参考になりそう。

NLBで複数AZ構成での挙動 - ユニファ開発者ブログ

→クロスゾーン負荷分散について認識。

Network Load Balancer(NLB)でクロスゾーン負荷分散が可能になりました | DevelopersIO

→わかりやすい。クロスゾーン負荷分散の意義がつかめる。