After a long time, I am.

日々のメモ

AWS NLBについてのメモ

多分2年前ぐらいに出た、SSL終端やら、スティッキーセッションやら、やることが少し多いALBと比べてスッと後ろにリクエストを流す代わりにより高パフォーマンスを提供するL4のLB。というイメージ

と思っていたらTSL終端ももうできるらしい。ラッキー。そのためにEC2用意しなきゃいけないのかと思って嫌だった。

静的なIPアドレスを持つNLBがTLS Terminationに対応してアクセスログも出力可能に! | Developers.IO

セキュリティグループは使えない。バックエンドのインスタンス(ターゲットグループに登録したインスタンス)側のセキュリティグループでアクセス許可を行う。 インターネットサービスなどで使用する場合は、0.0.0.0/0で開けることになる。

ターゲットグループの設定 ターゲットグループを設定する際の、「ターゲットの種類」によってソースIPが変わる。

AWS Network Load Balancer(NLB)のソースIPとターゲットのセキュリティグループ留意点まとめ | Developers.IO

  • 「instance」で登録した場合、クライアントのIPアドレスになる。

  • 「ip」で登録した場合、NLBのPrivateIPになる。

試しに、NLBのバックエンドにnginxを立ててaccesslogを見てみたところ、

・「instance」で登録した場合

[クライアントのGlobalIP] - - [13/May/2020:18:34:26 +0900] "GET / HTTP/1.1" 200 29 "-" "curl/7.58.0" "-"

・「ip]で登録した場合

[NLBのPrivateIP] - - [13/May/2020:18:42:35 +0900] "GET / HTTP/1.1" 200 29 "-" "curl/7.58.0" "-"

remote_addrがそれぞれ上記の値で記録された。 ※MultiAZの場合、NLBのPrivateIPはそれぞれのAZのNLBのPrivateIP。

healthcheck用にNLBが所属するサブネットからのアクセスと、インターネット向けの場合は0.0.0.0/0、特定のIP相手の場合はそのGIPを許可する。

他参考:

AWS NLB についてあれこれ - 水深1024m

5分でわかる NLB / ANetwork Load Balancer | ナレコムAWSレシピ