[アップデート] NLBのターゲットにALBを登録できるようになりました!

NLBのターゲットにALBを登録して、固定IPのALBやPrivateLinkでALBを利用できるようになりました
2021.09.29

札幌オフィスの中川です。

NLBのターゲットとしてALBを登録できるようになり、ALB固定IPしたりPrivateLinkで公開するアプリケーションにALBを使えるようになりました。

Application Load Balancer now enables AWS PrivateLink and static IP addresses by direct integration with Network Load Balancer

公式ブログ図引用)

なにが嬉しいのか

アップデートで嬉しいケースをいくつか紹介します。

ALBを固定IPで接続できる

これまでALBに固定IPで接続する方法として、以下のブログのようにLambdaでターゲットグループのIPを定期的に更新させる構成や、Global Acceleratorを使う構成がございました。

ただし、Lambdaのパターンは1分間隔での更新であることからALBの入れ替えを考慮すると安定性に欠け、Lambda自体の継続的なメンテナンスも必要でした。また、Global Acceleratorのパターンでは固定IP設定する用途には割高になるケースがございました。
アップデートでNLBのターゲットとして直接ALBを設定できるようになり、NLBに設定したElastic IPでALBにアクセスできるようになりました。

PrivateLinkで公開するサービスでALBを使用できる

PrivateLinkを作成することで、独自サービスを他のAWS アカウントのVPCに対して安全に公開することができます。PrivateLinkのエンドポイントにでALBを選択できないため、これまではPrivateLinkで公開するサービスでコンテンツベースのルーティングなどALBで提供される機能を使えませんでした。
アップデートでNLBのターゲットとしてALBを使用できるようになり、PrivateLinkで公開するアプリケーションでALBの機能を使用できるようになりました。

マルチプロトコルなアプリケーションにALBを利用できる

マルチメディアサービスは、シグナリングにHTTP、ストリーミングにRTP、とマルチプロトコルを利用します。このようなアプリケーションで単一のエンドポイントとしてNLBを使用し、HTTPはALBに振り分ける構成をできるようになりました。

留意事項

以下の留意事項があります。

  • NLBのTLSリスナーはALBのターゲットグループに転送できません
  • ターゲットグループでALBは1つのみ構成できます
  • NLBとALB間の通信はIPv4/IPv6デュアルスタックのALBであってもIPv4のみ使われます
  • NLBの背後に登録されているALBを削除できません
  • 可用性、スケーリング、パフォーマンスを最大化するためにALBとNLBで同じAZを使用します

やってみた

以下のような構成でNLBに設定したElastic IP経由でALBに接続してみます。事前にALB、EC2、NLBに割り当てるElasticIPを作成しています。

最初にターゲットグループを作成します。ターゲットタイプとしてApplication Load Balancerを選択します。

ターゲットとして作成しておいたALBを選択します。

続いてNLBを作成します。IPv4の設定でElasticIPを選択し、リスナーのデフォルトアクションで先程作成したターゲットグループを選択します。

設定が完了しました。ALBが登録されたターゲットグループのヘルスステータスはhealthyになっていることを確認できます。

動作確認します。ブラウザからElasticIPのアドレスに接続すると、コンテンツを表示できることを確認できました。

おまけ:Global AccelaratorとNLBの料金を単純比較してみた

ALBを固定IPで利用したいケースで、Global Accelaratorを利用した場合とNLBを利用した場合でどの程度の料金差があるか確認してみます。

AWS Global Acceleratorは、アクセラレーターの稼働時間とトラフィック量に対して課金されます。 トラフィック量はアクセラレーターのリージョンから送信先となるエッジロケーションごとに発生します。例えば東京リージョンから国内のローケーションへの通信であれば 0.010 USD/GB です。

NLBは、NLBの稼働時間とNLCUに応じて課金されます。NLCUの課金は、新しい接続 / アクティブな接続 / 処理バイト(双方向) のうち最も多いもの対してのみ発生します。

以下の都合のいい前提のもと、総トラフィック量ごとに料金比較してみます。(2021/9時点)

  • 国内から東京リージョンへのみアクセスされる

  • 総トラフィックのうち30%がインバウンド、70%がアウトバウンド(GAはアウトバウンドのみ対象)

  • NLCUは処理バイト数が最も多い
固定料金 トラフィック 10TB/月 トラフィック 100TB/月
Global Accelarator 18 USD/月 71.68 USD/月 716.8 USD/月
Network Load Balancer 16.43 USD/月 61.45 USD/月 614.38 USD/月

ALBに固定IPで接続できるようにするためだけであれば、Global AccelaratorとNLBで費用面で大きな差が出ないこともあります。アプリケーション特性や接続パターンに応じて使い分けください。

さいごに

NLBのターゲットグループとしてALBを登録できるようになり、ALBのIPアドレスを固定化したり、PrivateLinkでALBを利用できるようになりました。
ALBに固定IPで接続する方法としては、今後はNLBとGlobal Accelaratorと使い分けていただくことになりそうです。また、 PrivateLinkでALBを使えるようになったことで、SaaSアプリケーションを提供するユーザーにとってはアーキテクチャの幅が広がって嬉しいのではないかと思いました。

参考