AWS Elastic Load Balancer (ELB): 高可用性と自動トラフィック分散

クラウド コンピューティング環境では、高性能でフォールト トレラントなアプリケーションの構築が成功の鍵となっています。 AWS Elastic Load Balancer (ELB) は、リクエストトラフィックを複数のターゲットに自動的に分散することでアプリケーションの高可用性、スケーラビリティ、セキュリティを実現し、エンタープライズの最新アーキテクチャに欠かせない要素となっています。

 

AWS Elastic Load Balancer (ELB) は、Amazon Web Services が提供する完全マネージド型サービスであり、着信リクエストトラフィックを Amazon EC2、コンテナサービス、IP アドレスなどの複数のターゲットインスタンスに自動的に分散します。これは、接続クライアントとバックエンド ターゲット間の仲介役として機能し、ターゲットの健全性とパフォーマンスに基づいてトラフィックをインテリジェントに分散し、負荷分散を実現します。

ELB を使用すると、開発者は複雑なトラフィック管理ルールを手動で設定することなく、リクエストの自動ルーティングとフェイルオーバーを簡単に実装し、サービスの安定性を向上させることができます。

 

1. スケーラビリティ
ELB はトラフィックの変化に基づいて自動的にスケールできます。休日の突然のアクセスピークでも、ユーザーの緩やかな増加でも、ELB はリクエスト数に基づいて容量をインテリジェントに拡張し、パフォーマンスの弾力性を実現します。

2. 高可用性

インスタンスが利用できなくなったり、障害が発生したりした場合、ELB は自動的に接続要求を検出し、他の正常なインスタンスに再ルーティングして、アプリケーションがオンライン状態を維持し、ユーザー エクスペリエンスが中断されないようにします。

3. フォールトトレランス
ELB はターゲットのヘルスチェックを定期的に実行し、チェック結果に基づいてトラフィックの分散を動的に調整します。一部のバックエンド サーバーが応答できない場合でも、リクエストは利用可能なサーバーにタイムリーに送信できます。

4. セキュリティ

ELB は、クライアントとターゲット間の暗号化された接続を確保するために SSL/TLS プロトコル終了をサポートしています。同時に、AWS WAF (Web アプリケーションファイアウォール) とシームレスに統合して、一般的な Web 攻撃の動作を防ぐことができます。

5. 費用対効果
ELB は使用量に基づいて課金されるマネージド サービスです。インフラストラクチャの管理に大量のリソースを必要とせず、システム パフォーマンスを向上させるコスト効率の高いソリューションです。

 

クライアント要求がロードバランサーに到着するたびに、ELB は次のプロセスを実行します。

  1. 要求トラフィックを受信します。

  2. ターゲット サーバーのヘルス チェックを実行します (構成されたヘルス チェック経由)。

  3. プロトコルと負荷分散戦略に従って、リクエストを最適なターゲットに分散します。

  4. ターゲットに障害が発生すると、システムの接続性と応答速度を確保するために、要求は直ちに正常なターゲットに再ルーティングされます。

このメカニズムは、リクエスト応答を最適化するだけでなく、1 秒あたり数千の接続を処理するときにアプリケーションが安定して実行されるのにも役立ちます。

 

AWS は、それぞれ異なるユースケースに適した 3 種類の Elastic Load Balancer を提供しています。

アプリケーションロードバランサOSIモデルの(ALB)アプリケーション層(レイヤー7)走る。 URL パス、ホスト名、ヘッダーに基づいて HTTP/HTTPS トラフィックを誘導するなど、コンテンツ ベースのルーティングを必要とするアプリケーションに最適です。

適用シナリオ:

  • ウェブアプリケーションシステム

  • マルチサービス展開

  • HTTP/HTTPS配信制御

コア機能:

  • パス/ホストルーティング

  • WebSocket サポート

  • HTTPSの終了

  • コンテナ サービス (ECS、EKS など) のサポート

 

ネットワークロードバランサ(ナショナルリーグ)ネットワーク層(レイヤー4)高性能、低レイテンシのアプリケーションに最適です。 1 秒あたり数百万件のリクエストを処理できるため、超高速のパフォーマンスを必要とするワークロードに最適です。

一般的な使用例:

  • ゲームやライブ放送などの高性能アプリケーション

  • TCP/UDP通信サービス

  • 1秒あたり数百万件の接続リクエストが発生するシナリオ

特徴:

  • 静的IPと地域間分散をサポート

  • IPアドレスターゲットのサポート

  • プロトコルレベルの接続永続性の実装

 

クラシック ロードバランサ(CLB)オリジナルのAWS ELBサービスです。レイヤー 4 とレイヤー 7 の両方で動作しますが、ALB と NLB の高度な機能の一部が欠けています。これは、ALB および NLB が導入される前に構築されたレガシー アプリケーションでよく使用されます。

適用可能なシナリオ:

  • 古いシステムの移行またはレガシーサービスの保守

  • コンテンツルーティングに依存しないシンプルな負荷分散

機能の概要:

  • HTTP、HTTPS、TCP接続のサポート

  • SSL終了

  • 基本的なヘルスチェックメカニズム

 

EC2 をベースにした電子商取引 Web サイトを構築したとします。ユーザートラフィックが徐々に増加するにつれて、サーバーの負荷は増加し続けます。弾性ロードバランサが展開されていない場合、リクエストが特定のインスタンスに集中しやすくなり、応答が遅くなったり、システムがダウンしたりする可能性があります。

ALBを導入することで、 /製品 マイクロサービスクラスタにルーティングされ、 /チェックアウト 別のサービスへのルーティング。 EC2 インスタンスに障害が発生すると、ALB はトラフィックを他の正常なインスタンスに即座に転送し、障害の回復を目立たなくしてシステムの弾力的な拡張を実現します。

 

AWS ELB のセットアップは簡単なプロセスです。簡略化したガイドは次のとおりです。

  1. ロードバランサを作成する: ロードバランサーのタイプ (ALB、NLB、または CLB) を選択し、AWS マネジメントコンソールで設定します。
  2. リスナーの定義: リスナーは接続要求をチェックするプロセスです。たとえば、Web トラフィック用に HTTP または HTTPS リスナーを設定できます。
  3. ターゲットを追加する: トラフィックを受信するインスタンス、コンテナ、または IP アドレスを選択します。
  4. ヘルスチェックの設定: ターゲットのヘルスを監視するためのヘルスチェックを設定します。
  5. ロードバランサーのテスト: セットアップが完了したら、ロード バランサーをテストして、トラフィックが正しく分散されていることを確認します。

 

管理と監視:視覚的なパフォーマンス保証の実現

AWS は、開発者が ELB の実行状態をリアルタイムで追跡できるように、包括的な監視ツールを提供しています。

  • CloudWatchメトリクス: リクエスト量、応答時間、エラー率などの重要なデータをリアルタイムで表示します。

  • アクセスログ: 分析とチューニングを容易にするために、各リクエストのソース IP、ターゲット インスタンス、応答時間を記録します。

  • AWS トラステッドアドバイザー: ベスト プラクティスに基づいて、パフォーマンスの推奨事項とセキュリティの最適化のヒントを提供します。

 

概要: AWS ELBを使用してよりスマートなトラフィック管理を実現する

中小企業から大企業レベルのアーキテクチャまで、AWS Elastic Load Balancer (ELB) は、アプリケーションシステムの自動リクエスト分散、高同時処理、フォールトトレランス保護を実現できます。アプリケーションシナリオに応じて適切なロードバランサタイプ(ALB、NLB、またはCLB)を選択することで、高可用性、セキュリティ、スケーラビリティを備えたソリューションを実現し、安定した効率的なクラウドインフラストラクチャの構築に役立ちます。

さらに詳しく

何が必要か教えてください