⚖️ パフォーマンス:ALBの使いどころ

【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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次