【ALBの役割(パフォーマンス最適化)】
目次
🔍 1. 結論
💎 一言でいうと Application Load Balancer (ALB) のパフォーマンス上の最大のメリットは、「SSL/TLS オフロード」 によるバックエンド(EC2)のCPU負荷軽減と、1つのロードバランサーで複数のサービスを振り分ける 「パスベース/ホストベースルーティング」 による効率化です。
- 重たい暗号化・復号処理(HTTPS)をALBに肩代わりさせる。
- コネクションの多重化(Connection Multiplexing)により、バックエンドへの接続のオーバーヘッドを減らす。
📈 2. SAAで出やすいポイント
- SSL/TLS オフロード (Termination): HTTPSの暗号化・復号処理は非常にCPUを消費します。AWS Certificate Manager (ACM) の証明書をALBにアタッチし、クライアント⇔ALB間はHTTPS(暗号化)、ALB⇔EC2間はHTTP(平文)で通信させることで、EC2のCPUリソースを「本来のアプリケーションの処理」だけに集中させ、パフォーマンスを高めます。
- 接続の多重化 (Connection Multiplexing): クライアントからの多数のHTTPリクエストをまとめ、バックエンドのEC2に対しては少数の維持されたTCPコネクション(Keep-Alive)でデータを送ります。これにより、EC2側の「接続を確立・切断する手間(オーバーヘッド)」が削減されます。
- パスベースルーティング:
example.com/api/ならAPI用の高性能サーバー群へ、example.com/images/なら画像用のサーバー群へ、ALBレベルでトラフィックを適切に振り分けることで、システム全体の処理効率(マイクロサービス化)を向上させます。
🗝 3. キーワードでの判断
| 問題文のキーワード | 疑う構成・機能 |
|---|---|
| ⚡ 「HTTPSの暗号化・復号処理でEC2のCPU使用率が高い」 | ALBによる SSL/TLS オフロード |
| 🔀 「URLのパス (/video や /audio) に応じて処理サーバーを分けたい」 | ALB (パスベースルーティング) |
| ⚙️ 「1つのロードバランサーで複数のマイクロサービスを統合したい」 | ALB |
⚠️ 4. ひっかけポイント
🚫 よくある誤答パターン – 「数百万リクエスト/秒の超高速な分散が必要」 → HTTPの中身(L7)を解釈するALBは便利ですが、純粋なスループットとスピード(L4)では NLB (Network Load Balancer) に劣ります。「極限のパフォーマンス」や「ミリ秒の遅延すら惜しいTCP通信」の場合は NLB を選びます。 – 「EC2インスタンス内でSSL証明書を処理させる」 → CPUリソースの無駄遣い(パフォーマンス劣化)であり、管理も煩雑になるためアンチパターンです。
💡 5. 覚え方
🧠 暗記ショートカット – SSLオフロード = 「翻訳(暗号化/復号)は受付嬢(ALB)に任せる」。 – 外国人(HTTPS)の対応を奥の職人(EC2)がやると仕事が進まないので、受付嬢が日本語(HTTP)に翻訳してから職人に渡す。職人は作る作業に全集中できる。
📚 6. 関連サービス
| アイコン | サービス名 | 高性能化における違い |
|---|---|---|
| ⚖️ | NLB | パスベースルーティングはできないが、ALBより圧倒的に速い(数百万リクエスト/秒) |
| 📜 | ACM | ALBにアタッチしてSSLオフロードを実現するための無料の証明書管理 |
🗒️ 7. Obsidian管理メモ
- 見返すタイミング: ロードバランサーの使い分け(ALB vs NLB)、SSL/TLS設計の学習時
- 関連ノート候補:
AWS_高性能設計_NLB,AWS_SAA_ALB_vs_NLB
8. HTMLファイル名:
AWS_高性能設計_ALB.html