• アプリケーションロードバランサーは、リクエストの内容に基づいて、受信 Web トラフィックを複数のサーバーに分散します。
  • ヘッダーやパスなどのトラフィックコンテンツの詳細を分析して、リクエストを効率的にルーティングします。
  • ALB は、アプリケーションの特定の要件に基づいてルーティングを最適化する高度なルーティング決定をサポートします。

ロードバランサーは、複数のサーバーにわたるトラフィック管理において重要な役割を果たし、単一のサーバーが過負荷にならないようにします。この機能は、特に高トラフィック環境において、アプリケーションのスムーズな動作に不可欠です。クラウドコンピューティングの普及とマイクロサービスアーキテクチャの採用に伴い、ロードバランサー、特にアプリケーションロードバランサー(ALB)の役割はますます重要になっています。

ALB はアプリケーション層で動作し、リクエストの内容に基づいてルーティングを決定します。企業が革新的であり続け、より柔軟でスケーラブルなソリューションを追求する中で、ALB の適応的かつインテリジェントなルーティング機能は、複雑なネットワーク環境においてアプリケーションのパフォーマンスを最適化し、ユーザーエクスペリエンスを向上させるために不可欠です。

アプリケーションロードバランサーとは

ALB は、OSI(Open Systems Interconnection)モデルのアプリケーション層で動作するロードバランサーの一種です。ネットワーク層(レイヤー4)で動作する従来のロードバランサーとは異なり、ALB は HTTP/HTTPS リクエストの内容(パス、ヘッダー、Cookie など)に基づいてルーティングできます。これにより、より複雑なルーティングと優れた負荷分散が可能になり、最新の Web アプリケーション、マイクロサービス、コンテナシステムに最適です。

アプリケーションロードバランサーの主な機能

コンテンツベースルーティング:ALB は、ホストヘッダー、パスパターン、HTTP メソッド、クエリ文字列など、HTTP リクエストに含まれる値に基づいてトラフィックをルーティングできます。これにより、アプリケーションの要件を満たす特定のルーティングルールを作成できます。

SSL 終端:ALB は SSL 復号化を実行できるため、バックエンドサーバーがこの計算負荷の高いタスクから解放されます。これにより、証明書管理が簡素化され、バックエンドソリューションの全体的なパフォーマンスが向上します。

WebSocket サポート:ALB は WebSocket をネイティブにサポートし、ライブチャットや通知などのアプリケーションに必要な、クライアントとサーバー間のリアルタイム双方向接続を処理します。

マイクロサービスとコンテナのサポート:ALB は、マイクロサービスやコンテナベースのシステムとも効果的に統合されます。リクエストの内容に基づいて異なるサービスにトラフィックをルーティングでき、さまざまなサービスの負荷分散と分離にも役立ちます。

ヘルスチェック:ALB は、登録されたターゲット(EC2 インスタンスや IP アドレスなど)に対してヘルスチェックを実行し、ターゲットが正常でトラフィックを受け入れる準備ができていることを確認します。異常なターゲットは自動的に修復され、正常に戻るまでプールから除外されます。

自動スケーリング:ALB はトラフィックに応じてスケールアップまたはスケールダウンできるため、高トラフィックアプリケーションの管理に効率的でありながら、低トラフィック時にはサーバーリソースを大量に消費しません。

アプリケーションロードバランサーの仕組み

アプリケーションロードバランサーは、着信アプリケーショントラフィックを適切なターゲット(EC2 インスタンス、マイクロサービス、コンテナ)に転送することで機能します。以下に簡略化したワークフローを示します。

クライアントリクエスト:クライアントがアプリケーションをホストするサーバーへの呼び出しを開始します。

DNS 解決:DNS がリクエストを ALB に解決します。

リスナー設定:ALB は、HTTP の場合はポート 80、SSL の場合はポート 443 など、特定のポートで受信接続をパッシブにリッスンします。

ルール評価:ALB はリスナーのルールを評価して、リクエストの処理方法を決定します。これには、ホストヘッダー、パスパターン、HTTP メソッドなどが含まれます。

ターゲット選択:ルールに従って、ALB はリクエストを 1 つ以上の宛先(通常は EC2 インスタンスや IP アドレスなどの登録済みターゲット)にルーティングします。

ヘルスチェック:ALB は各ターゲットグループ内のターゲットの正常性を継続的に監視します。異常になったターゲットは、正常に戻るまで削除されます。

クライアントへの応答:選択されたターゲットはリクエストを分析し、ALB を通じてクライアントに適切な応答を返します。

こちらもお読みください:APNIC IPv6 アドレスについて理解すべきこと

こちらもお読みください:ネットワーク接続の設計者: クラウドエンジニアの役割

アプリケーションロードバランサーの利点

パフォーマンスの向上:ALB を使用することで、トラフィックがサーバーにスムーズに分散され、単一のサーバーが過負荷になることがなく、全体的なパフォーマンスが向上します。

セキュリティの強化:ALB には固有のセキュリティ機能があり、WAF と連携して特定の Web 脆弱性やその他の欠陥を軽減する点は注目に値します。

可用性の向上:ALB は、負荷分散により、他のインスタンスが停止している場合にトラフィックを稼働中のインスタンスに「移動」することで、アプリケーションの可用性を大幅に向上させるのに役立ちます。

柔軟性:ALB は、マイクロサービスやコンテナ化されたアプリケーションへのコンテンツベースルーティングを提供し、組織がサービスをより簡単に管理および拡張できるようにします。