【AWS SAA対策 #10】秒間数百万リクエストを捌け!NLB × Global Acceleratorで作る最強の高速基盤

AWS

グローバルに展開する株取引アプリや、リアルタイム性の高いオンラインゲーム。世界中から「病患数百万件」という膨大なアクセスが押し寄せてきたら、あなたはどう設計しますか?

「Application Load Balancer(ALB)を並べればなんとかなる?」
そう考えた私は、模擬試験で見事に撃沈しました。

実は、極限のパフォーマンスとグローバルな低遅延を両立させるには、「ネットワークの専用道路」と「超高性能な交通整理」の組み合わせが必要だったんです。

秒間数百万件を捌く「交通整理のプロ」

このレベルのトラフィックを処理できる唯一のロードバランサー、それがNewwork Load Balancer(NLB)です。

  • 圧倒的なスケーラビリティ
    ALBが「アプリケーション層(第7層)」で中身を詳しく見るのに対し、NLBは「ネットワーク層(第4層)」で機械的に振り分けます。そのため、秒間数百万リクエストという超高負荷でも、ビクともせずにすけーりんぐします。
  • 低遅延
    処理がシンプルな分、遅延が極めて少ないのが特徴です。

世界中のユーザーをAWSの「専用道路」へ

NLBだけでは、世界中からインターネット経由でアクセスしてくるユーザーの「遅延」は解消できません。そこで登場するのがAWS Global Acceleratorです。

通常、インターネット経由での通信は多くのプロバイダーを経由して不安定になりますが、Global Acceleratorを使うと

1.ユーザーに最も近い「エッジロケーション(入口)」から、即座にAWSの爆速プライベートネットワーク(専用道路)に取り込みます。
2.そこから目的地(NLBなど)まで、最短・最速のルートでデータを運びます。

【最強タッグ】NLB ✕ Global Acceleratorのメリット

試験で「この組み合わせが正解だ!」と判断するためのポイントは3つです。

  • 究極のスループット
    NLBの処理能力を最大限に活かせる。
  • 固定IPアドレス
    Global Acceleratorは「Anycast IP」という変わらないIPアドレスを2つ提供します。クライアント側でのキャッシュ設定が容易になります。
  • 高可用性
    リージョン間で負荷を分散できるため、片方のリージョンがダウンしても瞬時に切り替えが可能です。

試験で役立つ!キーワード判別法

パフォーマンスとスケーリングの問題で、以下の言葉があればこの構成が正解です!

  • 「秒間数百万件(Millions of requests per second)」
  • 「グローバルな低遅延」
  • 「リアルタイム(入札、取引、ゲームなど)」
  • 「Network Load Balancer + AWS Grobal Accelerator」

今回の学び:攻略の格言

「桁違いのトラフィックにはNLB。世界を近くに、通信を早くするならGlobal Acceleratorを前段に置け!」

あとがき:一歩ずつ、合格へ

最後まで読んでいただき、ありがとうございました!

今回の構成は、まさに「プロの設計」という感じがしてワクワクしますね。私は「ALBで何でもできる」と思いこんでいましたが、サービスの規模や要件によっては、あえて「シンプルなNLB」を選ぶ方が正解になる。

「何が何でも多機能」ではなく、「目的(今回は速度と規模)に合わせた最適な道具を選ぶ」ことの重要さを学びました。

それでは、次回の記事でお会いしましょう!