予測されるトラフィック増加への対策とは?:ALB/NLBのキャパシティユニット予約機能の活用

2025.03.28
マルチクラウド 技術 AWS クラウド活用
予測されるトラフィック増加への対策とは?:ALB/NLBのキャパシティユニット予約機能の活用

はじめに

皆さん、こんにちは。ITサービス&エンジニアリング事業本部(以下、ITS&E)クラウドプラットフォーム事業部の五味 なぎさです。私が所属する部署はクラウドサービス事業の拡大をミッションとしており、当社が提供するマネージドクラウドサービスabsonne(アブソンヌ)の企画・運営・提案・導入や、Amazon Web Services(以下、AWS)、Microsoft Azure(以下、Azure)、Google Cloud、Oracle Cloud Infrastructure(以下、OCI)等のパブリッククラウドサービスを利用したシステムの提案・設計・導入を推進しています。前回はAWSの最新情報を入手すべく現地まで赴いたre:Invent 2024の参加レポートブログを公開していますので、まだご覧になっていない方はぜひこちらも併せて読んでみてください。

さてre:Invent 2024の開催直前に発表されたApplication Load Balancer(ALB)と Network Load Balancer(NLB)のキャパシティユニット予約機能について今回は取り上げたいと思います。re:Invent2024のイベントセッションでも何度か言及されましたね。
ネット上での購買が当たり前になって久しい昨今、チケットのオンライン販売やデジタルキャンペーン開催時にWEBサイトが落ちてしまったというニュースをよく耳にします。こうした、予測されるトラフィックの急増に対して、ALB/NLBを利用する際にできる対策を今回のブログでは解説します。具体的には、トラフィック急増に備えるための事前準備と、ALB/NLBのキャパシティユニット予約機能の利用方法についてお伝えしますので、デジタルサービスの品質向上に向けて、ご参考になれば幸いです。

今回はALB/NLBのキャパシティユニット予約機能に関連した話になるため、サーバレス構成ではなく、VPC内にリソースを作成しサービス提供する構成を前提とします。

予測されるトラフィックへの事前準備

緩やかにトラフィックが増加する場合、通常はあまり意識することなくトラフィック処理が出来てしまいます。なぜなら、コンピュートリソース(Amazon EC2、AWS Fargate等)についてはAuto Scale機能が利用でき、ALBやNLBは内部的にスケールされるためです。
一方で、オンラインチケット販売やデジタルキャンペーン等で特定の時間に急激にトラフィックが増加する場合、リソースの増加がトラフィックの流入に間に合わずリソース増加が完了するまでエラーが発生する、もしくは最悪の場合、処理の滞留により復旧までに時間がかかる事態が発生します。そういった事態を回避するためにも、事前準備は必要不可欠です。
事前準備内容は、コンポーネント種別に応じて大きく3種類に分けられます。

横にスクロールできます

カテゴリ コンポーネントの種類 対応
リソース系 ユーザ側でスケールアウト/スケールアップ可能なリソース(EC2、Fargate、Amazon RDS、Amazon ElastiCache等) 事前に自動(時間指定)/手動でスケールアウト/スケールアップする
※必要に応じてキャパシティ予約を実施
パラメータ系 AWSマネージドサービスのService Quotasとして扱われているパラメータ(CloudFrontやAWS WAFの秒間リクエスト数など) Service Quotasの上限を確認し、必要に応じて緩和申請を実施
申請系 AWS内部で管理されているが、急激なトラフィック増に対してユーザ側で申請が必要な対象(ALB/NLB) 元々はPre-warming(暖機)申請が必要だったが、re:Invent 2024のアップデートでキャパシティユニット予約が可能になった

リソース系について、時間指定でのNodeのScalingや、RDS、Amazon Auroraであればリードレプリカの増台、DBのWrite性能の向上が必要であればスケールアップなどの対応が挙げられます。パラメータ系については、予め利用サービスのService Quotasを確認し、処理能力に影響するパラメータがあれば必要に応じて緩和申請を行います。

そして、申請系についてが、今回のアップデートに関連する内容です。
ALB/NLBでは、基本的には負荷に応じて内部でスケールアップ/アウトが余裕をもって行われています。re:Invent 2024のセッションで語られた話によると、CPU使用率が35%以上、Targetあたりのリクエスト数が50を超えるとスケールアップ/アウトされる仕組みになっているそうです。セッションの詳細は下記リンクから確認してください。

しかし、そのペースを超えるトラフィックの流入が予想される場合、予めALB/NLBのリソースを増やしておく必要があります。これまではALBについてはPre-warming(暖機)申請を行い、AWSサポートの方とやり取りしながら暖機に必要な対応を行う必要がありました(NLBは仕組み上ALBよりも突発負荷に強いアーキテクチャのため、暖機申請を行う仕組み自体が無かった)。しかし、re:Invent 2024期間に発表されたアップデートにより、キャパシティユニット予約が可能になったことで、ユーザ側での対応が容易になりました。

ALB/NLBキャパシティユニット予約の手順

ALB/NLBキャパシティユニット予約の流れは以下の通りです。

  1. 必要なロードバランサーキャパシティユニット(LCU)の見積
  2. LCU予約Service Quotasの緩和
  3. LCU予約

ALB/NLBで特定のリクエスト数やトラフィック量を処理できる単位

以下に、手順の概要を説明していきます。

1. 必要なロードバランサーキャパシティユニット(LCU)の見積

必要なLCUの見積方法としては、負荷テストや実際の過去のワークロードを元に試算する方法が挙げられます。今回LCU予約機能の追加と合わせてAWS Managed ConsoleのALB/NLBの画面から、ALBの場合はPeakLCUsというメトリクス値が、NLBの場合は既存のProcessedBytesメトリクスを1時間あたりのLCU値に変換したLCU使用量グラフが、それぞれ表示可能になり、見積が容易になりました。

図1:予約済みLCUと、PeakLCUs使用量のグラフが上記画面で確認可能(実トラフィックが流れていない環境での画像のためグラフ表示なし)
図1:予約済みLCUと、PeakLCUs使用量のグラフが上記画面で確認可能(実トラフィックが流れていない環境での画像のためグラフ表示なし)

2. LCU予約Service Quotasの緩和

初めてLCU予約を行う場合、Service Quotasの緩和が必要になります。LCU予約を実施するALB/NLBと同じリージョンを指定し、Service Quotasを緩和します。Service Quotasの申請画面に直接アクセスも可能ですが、ALB/NLBのキャパシティ予約画面から遷移することも可能です。

図2:ALB設定画面の「キャパシティ」タブ
図2:ALB設定画面の「キャパシティ」タブ
図3:Service Quotas申請画面
図3:Service Quotas申請画面

ALBの場合は「Reserved Application Load Balancer Capacity Units (LCU) per Region」の引き上げを、NLBの場合は「Reserved Network Load Balancer Capacity Units (LCU) per Region」の引き上げを申請します。
なお、Gateway Load Balancerについては現状LCU予約に対応していませんが、re:Invent 2024のセッション内でロードマップとして予定されている話がありました。

Optimizing ELB traffic distribution for high availability (NET401)

3. LCU予約

実際にLCU予約を行います。

図4:ALB設定画面の「キャパシティ」タブ
図4:ALB設定画面の「キャパシティ」タブ

1.で負荷テストや実際の過去のワークロードを元に試算済みの場合は、推奨されるLCUレベルが表示されるため、その値を利用することが可能です(図5参照)。

図5:LCU予約画面。過去のワークロードを元に設定する場合
図5:LCU予約画面。過去のワークロードを元に設定する場合

負荷テストなどの実施が難しく、参考とするワークロードがAWS上で把握できていない場合は、図6のようにManual estimateを選択し、手動でLCUの値を入力します。

図6:LCU予約画面。手動で設定する場合
図6:LCU予約画面。手動で設定する場合

双方のケースにおいて、LCU数が入力されるとSummary画面に図7のようにAZ毎のLCU数が表示されます。また、Redundancy(冗長)設定を有効にしていると、耐障害性を考慮したLCU数が確保されます。

図7:LCU予約画面。AZ毎のLCU数の表示
図7:LCU予約画面。AZ毎のLCU数の表示

最後に図7の画面下部右側の“保存”ボタンを押下することで、LCU予約手順は完了です。予約が完了すると、ALB/NLBのキャパシティタブの“Reservation Status”が“provisioned”になります。なお、ピーク負荷が落ち着き、リソースが不要になったタイミングでLCU予約をキャンセルする必要がありますので忘れず対応するようにしてください。

終わりに

今回の記事では、ALB/NLBのキャパシティユニット予約機能について詳しく解説しました。これにより、予測されるトラフィックの急増に対する事前準備が容易になり、サービスの安定性が向上します。今回の記事が皆様の何らかのお力になると嬉しいです。今後もAWSに関する最新の技術情報をお届けしていきますのでぜひご期待ください。

なお、当社ではAWS包括的技術支援サービスを提供しています。AWSへの移行でお悩み等ございましたら、ぜひ本サービスもご活用ください。その他、AWSをはじめマルチクラウド化に関するご相談全般はこちらからお気軽にお声がけください!

加えて、お客様のクラウドネイティブ化を包括的に支援する新サービス「CloudHarbor(クラウド・ハーバー)」も提供しております。クラウド移行に留まらず、クラウドネイティブ化にもご興味ある方はぜひCloudHarborカタログも併せてご覧ください!それでは、また次回もお楽しみにお待ちください!

関連ページ

おすすめブログ

AWS re:Invent 2024 レポート:生成AIの進化を学んだ5日間
AWS re:Invent 2024 レポート:生成AIの進化を学んだ5日間
今年もAWS re:Invent 2024を視察してきました!本ブログでは、生成AIの進化、新サービスの発表、セキュリティ対策など最新のAWS情報をまとめましたので是非ご覧ください。Amazon S3 TablesやAmazon Aurora DSQL、Amazon Bedrock/Amazon Qの新機能、Amazon Novaなど、気になるキーワードがある人におすすめです!
まる見え!パブリッククラウド移行(3):知らないと損?AWS移行を助けてくれる便利ツール【前編】
まる見え!パブリッククラウド移行(3):知らないと損?AWS移行を助けてくれる便利ツール【前編】
AWS移行の“Migrate&Modernize(移行&モダナイズ)”ステップで役立つサービスに、「AWS Application Migration Service」と「AWS Database Migration Service」があります。本ブログでは、それぞれの利用シーンや利用の流れ、利用コストなどをまとめてご紹介していますので、AWS移行を学びたい方はぜひご覧ください!