Elastic Load Balancingの解説(AWS認定クラウドプラクティショナーシラバス用語)

Elastic Load Balancingの解説(AWS認定クラウドプラクティショナーシラバス用語)
目次

Elastic Load Balancingとは

ELB.png

Elastic Load Balancing(ELB:エラスティック ロード バランシング)は、インターネット(または社内ネットワーク)から入ってくる大量のアプリケーションへのトラフィック(アクセスリクエスト)を、背後にある複数のターゲット(Amazon EC2インスタンス、コンテナ、IPアドレス、Lambda関数など)に自動的かつ均等に分散・振り分けを行うロードバランサー(負荷分散)サービスです。単一のサーバー(EC2インスタンス)でシステムを稼働させていると、アクセスが集中した際にサーバーの処理能力を超えてダウンしてしまったり、ハードウェア障害が起きた際にシステム全体が停止(単一障害点:SPOF)してしまったりするリスクがあります。ELBをシステムの「玄関口」として配置し、複数のインスタンスに処理を分散させることで、システム全体の処理能力(スケーラビリティ)を向上させるとともに、一部のインスタンスに障害が発生しても、正常なインスタンスのみにトラフィックをルーティングし続けることで、アプリケーションの高可用性と耐障害性を確保することができます。

具体例

ELBの役割は、人気レストランの「案内係(レセプション)」に例えることができます。

  • アクセスの分散(負荷分散): レストランに大勢の客(トラフィック)が来店した際、案内係(ELB)が空いているテーブルや担当ウェイター(EC2インスタンス)に順番に客を振り分けます。これにより、一部のウェイターだけが忙殺されてサービスが遅延する(サーバーダウン)のを防ぎ、全体として効率よく客を捌くことができます。
  • ヘルスチェック(異常の検知と切り離し): 案内係(ELB)は常に各テーブルの状況を監視しています。もしウェイターの一人が体調不良で倒れたり(インスタンスの障害)、テーブルの片付けが間に合っていなかったり(アプリケーションの無応答)した場合、案内係は「このテーブルは機能していない」と判断し、新規の客をそこへ案内するのを止め、健康な別のウェイターに客を振り向けます。客から見れば、裏で問題が起きていてもサービスは継続して提供されているように見えます。

もう少し詳しく

ELBは、処理するネットワークトラフィックのレイヤー(OSI参照モデル)や用途に応じて、主に3つの種類が提供されており、要件に合わせて適切なものを選択する必要があります。

1つ目は「Application Load Balancer (ALB)」です。これはHTTPおよびHTTPSのトラフィック(レイヤー7:アプリケーション層)に特化しており、ウェブアプリケーションの負荷分散に最適です。URLのパス(/apiや/imagesなど)やHTTPヘッダーの内容に基づいて、異なるターゲットグループ(別のEC2群やLambda)にトラフィックを賢くルーティングできる機能(パスベースルーティング)を持っています。
2つ目は「Network Load Balancer (NLB)」です。これはTCP、UDPなどのトラフィック(レイヤー4:トランスポート層)を処理し、極めて高いパフォーマンスと超低遅延(数ミリ秒)が求められるシステムに適しています。毎秒数百万のリクエストを処理でき、固定の静的IPアドレス(Elastic IP)を付与できるのが特徴です。
3つ目は「Gateway Load Balancer (GWLB)」です。これはサードパーティ製の仮想ファイアウォールや侵入検知システム(IDS/IPS)などのネットワークアプライアンスをAWS上で展開し、スケーリングさせるために特化したロードバランサーです。 これらのELBは、AWSのインフラストラクチャ上でフルマネージドで提供されるため、ロードバランサー自体の可用性やスケーリングもAWSが自動的に管理してくれます。

試験でのポイント

AWS認定クラウドプラクティショナー(CLF-C02)試験において、ELBは「高可用性」「耐障害性」「フォールトトレランス」を実現するためのキーコンポーネントとして頻出します。

  • ELBの主な役割: 複数のインスタンスにトラフィックを分散させる「負荷分散機能」と、異常なインスタンスへのトラフィック転送を停止する「ヘルスチェック機能」の2つを確実に理解してください。システムの単一障害点(SPOF)を排除するために不可欠です。
  • Auto Scalingとの連携: Auto Scalingによってインスタンスが自動的に増減した場合、ELBはそれを動的に検知し、新たに追加されたインスタンスをトラフィックの振り分け先に自動で追加します。「ELB + Auto Scaling」の組み合わせは、弾力的で可用性の高いベストプラクティスアーキテクチャです。
  • ALBとNLBの違い: 基本レベルの理解として、Webアプリケーション(HTTP/HTTPS)の分散にはALBを、超高速・低遅延・固定IPが必要なTCP通信の分散にはNLBを使用する、という使い分けを覚えておきましょう。

関連する用語

ELBの背後で振り分け先となるターゲットとして代表的なのがAmazon EC2です。また、トラフィックの変動に応じてEC2インスタンスの数を自動的に調整し、ELBの配下に追加・削除を行うAuto Scalingは、ELBの最高のパートナーです。さらに、外部からのアクセスを最初に受け付けるドメイン名解決サービスであるAmazon Route 53は、アクセスをELBのエンドポイント(URL)にルーティングする役割を担います。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ