こんばんは。小寺です。
Network Load Balancer(以下NLB)がセキュリティグループをサポートするようになりました。
https://aws.amazon.com/about-aws/whats-new/2023/08/network-load-balancer-supports-security-groups/
Network Load Balancerについて
NLBについて簡単におさらいします。
高パフォーマンスが必要な環境においての負荷分散に最適なロードバランサーです。低いレイテンシーを維持しながら1秒に数百万のリクエストを送信でき、トラフィックパターンの変化にも対応できます。
そのため、大量のアクセスが予測されるサーバーに向いています(負荷の急激な上昇に対応できるため)。
ALBと比較すると以下のような違いがありました。※本アップデートでセキュリティグループの設定が「設定不可」から「設定可能」になりました
ALB・NLB比較
項目 | ALB | NLB |
---|---|---|
レイヤー | 7 | 4 |
プロトコル | HTTP,HTTPS, gRPC | TCP, UDP, TLS |
送信元ポート | ALB | 保持することも可 |
ELBサーバのIP※ | 指定不可 | 指定可 |
セキュリティグループ | 設定可能 |
アップデート内容
NLBもセキュリティグループをサポートするようになり、NLBでアクセス元を制御し、アプリケーションに転送するトラフィックをフィルタリングできるようになりました。
本アップデート前までは NLB では Application Load Balancer (ALB) などのようにセキュリティグループを設定することが出来ませんでした。
ロード バランサーが IPv6 トラフィックを IPv4に変換するとき、ターゲットがピアリングされた VPC内にある場合でも、セキュリティ グループの受信ルールが適用できるようになります。
さらに、ターゲットがピアリングされた同一VPC内にある場合でも、セキュリティ グループの受信ルールの利用が可能です。
Kubernetes を使用している場合は、AWS Load Balancer コントローラー バージョン 2.6.0 以降を使用して、NLB でセキュリティ グループを有効にすることができます。
確認してみる
NLBを新規作成してみます。
![](https://www.sunnycloud.jp/wp-content/uploads/2023/08/01-4.png)
ここでALBとの挙動の違いとしては、NLB新規作成時は「セキュリティグループなしで作成された Network Load Balancer は、作成後にサポートすることはできません。」と表示され、セキュリティグループを指定しなくても作成ができます。
![](https://www.sunnycloud.jp/wp-content/uploads/2023/08/02-2.png)
セキュリティグループをアタッチしないで作成してみました。
作成されたNLBをみてみます。「セキュリティ」タブを確認すると、セキュリティグループのアタッチができないことが確認できました。
![](https://www.sunnycloud.jp/wp-content/uploads/2023/08/03-3.png)
次は、セキュリティグループをあらかじめアタッチして、作成してみます。
![](https://www.sunnycloud.jp/wp-content/uploads/2023/08/04-2.png)
最初にアタッチしておけば、セキュリティグループは5個まで「変更」から追加・削除が行えます。
![](https://www.sunnycloud.jp/wp-content/uploads/2023/08/05-2.png)
![](https://www.sunnycloud.jp/wp-content/uploads/2023/08/06-2.png)
まとめ
NLBでもセキュリティグループが使えるようになったので、作成を試してみました。今回のアップデートで、よりセキュアな通信が行えるようになりましたね。受信セキュリティ グループ ルールによってブロックされたトラフィックに対しては料金が発生しないので、NLBでも活用していきたいところです。
ただ、今までに設計した通信経路など変更を行った方が良いケースも出てきそうなので、動作検証をケース分けして実施してみたいですね。
![](https://www.sunnycloud.jp/wp-content/uploads/2023/03/SunnyPay.jpg)