AWS ALB (L7 ロードバランサー) の役割と使い方

クラウドサービス AWS

Application Load Balancer は、AWS が提供するサービスの一つです。
ALB (エーエルビー) と略されます。

複数の Web サーバーへアクセスを分散する機能を持っており、様々な応用が可能です。
ALB の使い方について解説します。



ALB で複数の Web サーバーを束ねる

複数の Web サーバーにアクセスを分散する」のが主な役割となります。
システムの規模がある程度大きくなってくると便利なサービスです。

ALB には複数の EC2 インスタンスを紐づけることができます。
アクセスが来るたびに別のサーバに振り分けることで、負荷分散を実現します。

HTTPS の終端として ALB を使う

Web サイトを HTTPS 化するときにも、ALB が便利に使えます。
ALB で HTTPS を受け取り、ALB と Web サーバー間は HTTP 通信とする方法があります。

ALB 側で HTTPS を終端するメリットは大きく2つです。

  • HTTPS の暗号化処理が不要となり Web サーバーの負荷が下がる
  • HTTPS の証明書が ALB 1ヶ所だけで済むため管理が楽

ALB ヘルスチェック設定でサーバー障害時の影響を最小化

複数の Web サーバーで負荷を分散する際は、サーバーの監視が重要です。
「障害が発生しているサーバーにはアクセスを割り振らない」工夫が必要となります。

ALB には「ヘルスチェック」機能があり、正常な応答を返さないサーバーを切り離せます。

  • 指定した URL (/index.html など) にリクエストを投げる
  • 指定したレスポンスコード (200 など) が返らない場合は異常と判定
  • 異常判定されたサーバーはロードバランサーから切り離される

ALB で PHP や Java の動作状態を監視する

Apache や nginx などが動いていても、裏側のアプリが落ちている可能性もあります。
動作確認用のシンプルなプログラムを用意することで、ヘルスチェックの応用が可能です。

  • /xxxxx.jsp のリクエスト結果を監視する → Tomcat が落ちた場合は異常となる
  • /xxxxx.php のリクエスト結果を監視する → php-fpm が落ちた場合は異常となる

ALB を複数ドメインやリバースプロキシ、リダイレクト用途で使う

ALB は HTTP レイヤーで動作するロードバランサーです。
HTTP 通信の中身を見て、アクセスを振り分けることができます。

  • ドメイン名を元に振り分け (Apache の Virtual Host と同等)
  • パスを元に振り分け (/wp だけは WordPress サーバーに飛ばすなど)
  • パスを引き継いだまま HTTPS 通信にリダイレクトする

まとめ

AWS の ALB について、使い方と活用事例を解説しました。
ロードバランサ用途以外にも様々な用途で使える便利なサービスです。

サーバの増減が見込まれる場合は、予め ALB を経由する構成をオススメします。

【関連記事】
Fargate・ECS・EKS の違いを解説
Lambda と API Gateway の違いを解説
AWS でサーバーレスを実現するサービス
AWS とは何か? クラウドの活用事例を紹介