はじめに
この記事はAWS SAA試験勉強のための、ALBに関する知識のまとめです。
ALBとは
通常のHTTPSアクセスを利用するWEBアプリケーションにおいて、複数のEC2インスタンスへのトラフィックを分散処理するために利用します。
ALBの基本的性質
-
Application Load Balancer のリスナールールを使用して、HTTP リクエストを HTTPS にリダイレクトするような設定が可能。(変換するわけではありません。)
-
L7(アプリケーション層)で負荷分散。(CLBより高性能。)
-
URLパス(
http://example.com/a/*
など)やヘッダーに基づいたルーティング、セッションの維持、WebSocketなどのプロトコルをサポートしています。1つのALBで複数のサーバー群にわけてトラフィック制御をすることができます。 -
WAFを適用できます。
-
デフォルト設定では、Application Load Balancer は登録解除プロセスが完了するまで 300 秒待機して、ターゲットへ処理中のリクエストを完了しやすくします。
-
ターゲットグループでのヘルスチェックが可能
-
ALBはEC2インスタンスを複数のAWSリージョンに分散させるトラフィック分散は実施できません。1つのリージョン内において複数のアベイラビリティゾーンにトラフィックを分散します。
-
プライベートサブネット内のインスタンスへの通信のためにはALBはプライベートサブネットではなく、パブリックサブネットに配置する必要があります。
アクセスログ
ALBのアクセスログを有効化することで、クライアントの接続情報を5分ごとに取得することができます。
SNI証明書
ALBでは、Server Name Indication(SNI)を使った複数のTLS/SSL証明書をサポートしています。この機能により、ALBの背後に、別の証明書を持ったセキュアなアプリケーションを複数配置することができます。
他のアプリとの連携
Amazon ECSと組み合わせて使用されることが多いです。