この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
札幌オフィスの中川です。
NLBのターゲットとしてALBを登録できるようになり、ALB固定IPしたりPrivateLinkで公開するアプリケーションにALBを使えるようになりました。
(公式ブログ図引用)
なにが嬉しいのか
アップデートで嬉しいケースをいくつか紹介します。
ALBを固定IPで接続できる
これまでALBに固定IPで接続する方法として、以下のブログのようにLambdaでターゲットグループのIPを定期的に更新させる構成や、Global Acceleratorを使う構成がございました。
- Using AWS Lambda to enable static IP addresses for Application Load Balancers | Networking & Content Delivery
- Global Acceleratorを使ってALBを固定IP化する #reinvent | DevelopersIO
ただし、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アプリケーションを提供するユーザーにとってはアーキテクチャの幅が広がって嬉しいのではないかと思いました。