ELB と Auto Scaling

ELB(Elastic Load Balancing)と Auto Scaling は、AWS 上で高可用性・コスト最適なシステムを構成する上で欠かせない 2 つのサービスです。この 2 つとマルチ AZ を組み合わせることで、障害に強くトラフィックの変動にも柔軟に対応できるアーキテクチャを実現できます。

概要

Webシステムでは、ユーザーが多い時間帯と少ない時間帯でサーバーへの負荷が大きく異なります。また、サーバーが 1 台だけでは障害発生時にシステム全体が止まってしまいます。ELB と Auto Scaling はこれらの課題をそれぞれ解決します。

CP試験で押さえるポイント

ELB(Elastic Load Balancing)

ELB はトラフィックを複数のターゲット(EC2 インスタンス・コンテナ・Lambda 関数など)に自動的に分散させるサービスです。

主な役割

ALB と NLB の違い

種類 対応レイヤー 特徴 適した用途
ALB
Application Load Balancer
レイヤー 7(HTTP/HTTPS) URL パス・ホスト名・HTTPヘッダーによる高度なルーティングが可能 Web アプリ・マイクロサービス・REST API
NLB
Network Load Balancer
レイヤー 4(TCP/UDP) 超低レイテンシ・高スループット。静的 IP アドレスの付与が可能 ゲームサーバー・IoT・低遅延が求められるシステム

CP 試験では ALB と NLB の使い分け(L7 vs L4)を一言レベルで押さえておけば十分です。

Auto Scaling

Auto Scaling は EC2 インスタンスの数を需要に応じて自動的に増減させる仕組みです。あらかじめ最小・希望・最大のインスタンス数を設定しておき、CPU 使用率などのメトリクスに基づいてスケールアウト(台数増加)やスケールイン(台数削減)を行います。

スケールアップとスケールアウトの違い(頻出)

種類 内容 別名 例
スケールアップ 既存のインスタンスのスペックを上げる 垂直スケーリング t3.medium → t3.xlarge に変更
スケールアウト インスタンスの台数を増やす 水平スケーリング 2 台 → 5 台に増やす
スケールイン インスタンスの台数を減らす 水平スケーリング(縮退) 5 台 → 2 台に減らす
スケールダウン インスタンスのスペックを下げる 垂直スケーリング(縮退) t3.xlarge → t3.medium に変更

Auto Scaling が行うのはスケールアウト(台数を増やす)とスケールイン(台数を減らす)です。スケールアップ(スペック変更)は手動で行う必要があります。

Auto Scaling の恩恵

ELB + Auto Scaling + マルチ AZ の定番パターン

CP 試験では「高可用性な構成を作るには?」という問いに対して、以下の組み合わせが模範解答です。

この 3 要素を組み合わせることで、単一障害点(SPOF)のないシステムを構築できます。

関連サービスとの違い・使い分け

キーワード・シナリオ 対応するサービス・概念
トラフィックを複数インスタンスに振り分けたい ELB
需要に応じて自動的にサーバーを増減したい Auto Scaling
1 台のサーバーのスペックを上げたい スケールアップ(EC2 インスタンスタイプの変更)
HTTP ルーティングを柔軟に制御したい ALB(Application Load Balancer)
超低レイテンシの TCP 負荷分散が必要 NLB(Network Load Balancer)
グローバルなトラフィック管理(DNS ベース) Amazon Route 53

確認問題

付録:公式ドキュメント・Black Belt 動画

さらに深く学びたい方は、AWS公式の以下のリソースを参照してください(いずれも外部サイトが開きます)。

公式ドキュメント

AWS Black Belt Online Seminar(動画・解説資料)