グローバルに展開する株取引アプリや、リアルタイム性の高いオンラインゲーム。世界中から「病患数百万件」という膨大なアクセスが押し寄せてきたら、あなたはどう設計しますか?
「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」を選ぶ方が正解になる。
「何が何でも多機能」ではなく、「目的(今回は速度と規模)に合わせた最適な道具を選ぶ」ことの重要さを学びました。
それでは、次回の記事でお会いしましょう!
