[アップデート] Gateway Load Balancer が Load Balancer Capacity Unit(LCU) 予約をサポートしました
こんにちは、岩城です。
Gateway Load Balancer(GWLB) で、Load Balancer Capacity Unit(LCU) 予約がサポートされました。
Load Balancer Capacity Unit Reservation for Gateway Load Balancers - AWS
ALB と NLBは昨年からすでにサポートされていたので、GWLB もサポートされた形です。
新機能のロードバランサーキャパシティユニット (LCU) 予約で、ALBの暖機を試みてみた | DevelopersIO
LCU 予約の使用を検討するケース
- 急なトラフィック増加が見込まれるイベントの開催が予定され、トラフィック増加を GWLB で対応できるようにしたい
- ワークロードの性質により、予測できないトラフィックの急増が発生する
- 自動スケーリングを待たずに高いキャパシティで開始する必要がある
- SLA やコンプライアンス要件を満たすため、最低限のキャパシティを維持する必要がある
また、コンソールに LCU を予約する際に期待することが記載されていました。
LCU 予約の注意点
- LCU 予約は、GWLB のスループット容量の予約のみをサポートする
- LCU 予約をリクエストする際は、1 LCU を 2.2 Mbps に変換するレートを使用して、必要な容量を Mbps から LCU に変換する
- LCU はリージョンレベルで予約され、アベイラビリティゾーン全体に均等に分散される
- LCU 予約を有効にする前に、各アベイラビリティゾーンに十分なターゲットが均等に分散されていることを確認する
- LCU 予約リクエストは先着順で処理され、その時点のゾーンの空き容量に応じて処理される
- ほとんどのリクエストは通常 1 時間以内に処理されるが、数時間かかる場合もある
- 既存の予約を更新するには、以前のリクエストがプロビジョニング済みか失敗している必要がある
- LCU 予約は必要な回数だけ増やすことができるが、減らすことができるのは 1日2回 まで
必要な LCU 予約の見積もり方法
必要な LCU を決めるには、負荷テストを実施したり、過去のトラフィックのデータを確認することが推奨されています。
GWLB コンソールのモニタリングタブから、プロセスされたバイト数 (ProcessedBytes) メトリクスや1 秒あたりのピークバイト (PeakBytesPerSecond) メトリクスを確認し、必要な LCU を決めます。
GWLB のキャパシティーは LCU 単位で予約され、1 LCU あたり 2.2Mbps 処理できます。
2.2Mbps を 1LCU とする換算レートを使用して、そのスループットを LCU に換算し、必要な LCU を求めます。
また、Load Balancer Capacity Unit Reservation Calculator を使用して LCU を見積もることができます。
こちらはマネジメントコンソールにアクセスすることなく利用できるため気軽に使えますが、2025 年 4 月 11 日時点で、まだ GWLB を選択肢にありません。後日アップデートされるのを待ちましょう。
対応リージョン
対応リージョンは以下のとおりです。東京リージョンも含まれていました。大阪リージョンはまだ対応されていません。
- 米国東部(バージニア北部)
- 米国東部(オハイオ)
- 米国西部(オレゴン)
- アジアパシフィック(香港)
- アジアパシフィック(シンガポール)
- アジアパシフィック(シドニー)
- アジアパシフィック(東京)
- 欧州(フランクフルト)
- 欧州(アイルランド)
- 欧州(ストックホルム)
料金
2025 年 4 月 11 日時点で、GWLB の料金ページに LCU 予約の料金は記載されていませんでした。
Application and Network Traffic Distribution - Elastic Load Balancing Pricing - AWS
ALB や NLB と同じ考え方で良ければ、LCU の金額と同じなので 東京リージョンでは USD 0.004/ 時間ということでしょうか。
LCU 予約してみる
それでは実際に LCU 予約してみます。
キャパシティタブが新規で追加されていました。
ここから LCU 予約していきます。
キャパシティ推定基準でキャパシティ要件を決定する基準を指定します。
以下の2つの基準を指定できます。それぞれ見てみましょう。
- 過去の参照に基づく見積もり
- 手動見積もり
過去の参照に基づく見積もりパターン
私の検証環境では GWLB が存在しないので、データがないのでグラフにプロットされていませんが、過去の LCU の使用状況から予約すべき LCU のあたりをつけられそうです。
冗長性
をチェックすると、AZ 障害を考慮しすべての AZ に 1AZ 分の LCU を割り当てた場合の LCU 数が算出されました。
手動見積もりパターン
こちらは単純ですね。
最低予約リクエストは 5456LCU だった
いざ LCU を予約しようとしたところ、許容キャパシティが下回っているため、予約できませんでした。
GWLB の最低予約リクエストは 5456 LCU みたいです。
東京リージョンでは 1LCU 予約 USD 0.004/時間であると想定していますので、0.004 * 5456 = USD 21.824 なので思い切って予約してみました。
ところが CapacityUnits exceeds the maximum value of 0
となり予約できませんでした。
どうやらサービスクォータの上限緩和が必要そうですね。
サービスクォータで LCU 予約の上限緩和が必要だった
GWLB の LCU 予約のクォータ値がデフォルトで 0 でした。
予約したい LCU 数まで事前に上限緩和必要ですので注意です。
LCU 予約のクォータ値を 5456 に上限緩和してみたところ、自動承認されました。
大きめの数なので、サポートとのやり取り必要になるかと思ったのですが大丈夫でした。
気を取り直して、5456 LCU を予約してみました。
CapacityUnits must be distributed at each zone between 2750 and 45000.
となり予約できませんでした。
どうやら予約する LCU が 5456 であっても各 AZごとに分割された結果、1AZ ごとの LCU が 2728 となり、2750 以上ではないので予約できなかったみたいです。
クォータ値を 5500 にした後、3 度目の正直で LCU 5500 を指定したところ、予約することができました。
最後に LCU 予約をキャンセルして検証完了です。
おわりに
軽い気持ちで機能確認してみると、ドキュメントに記載のない考慮点がいくつかありました。
- デフォルトでクォータ値が 0 なのでサービスクォータで上限緩和する必要がある
- 予約できる LCU は最低 5456 からだが、AZ ごとに 2700 ~ 45000 になるように指定する必要がある
- 2AZ の場合、2700 * 2 = 5500 LCU を指定しないとだめ
実際に試してみないと分からないことがあるな、と改めて感じました。
本エントリが、どなたかのお役に立てれば幸いです。