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を許可する。
他参考: