公開:

ELB(Elastic Load Balancing)とは?意味をわかりやすく簡単に解説

text: XEXEQ編集部


ELB(Elastic Load Balancing)とは

ELB(Elastic Load Balancing)はAmazon Web Services(AWS)が提供するマネージド型のロードバランサーサービスです。ELBは複数のEC2インスタンスにトラフィックを分散することで、アプリケーションの可用性とスケーラビリティを向上させます。

ELBは受信したトラフィックを設定されたルールやヘルスチェックに基づいて、適切なEC2インスタンスに転送する役割を担っています。これにより、単一のEC2インスタンスに負荷が集中することを防ぎ、アプリケーションの安定性を確保できるのです。

また、ELBはAWSのマネージドサービスであるため、ユーザーがロードバランサーの管理やメンテナンスを行う必要がありません。AWSがELBの可用性と耐障害性を保証し、必要に応じて自動的にスケーリングを行います。

ELBにはClassic Load Balancer(CLB)、Application Load Balancer(ALB)、Network Load Balancer(NLB)の3種類があります。それぞれのロードバランサーは異なるレイヤーで動作し、用途に応じて選択することができます。

ELBを活用することで、アプリケーションのパフォーマンスと可用性を向上させ、トラフィックの増加にも柔軟に対応できます。これは現代のクラウドベースのアプリケーション開発において非常に重要な要素となっています。

ELBの種類と特徴

ELBの種類と特徴に関して、以下3つを簡単に解説していきます。

  • Classic Load Balancer(CLB)の特徴と用途
  • Application Load Balancer(ALB)の特徴と用途
  • Network Load Balancer(NLB)の特徴と用途

Classic Load Balancer(CLB)の特徴と用途

CLBはELBの初期バージョンであり、トランスポート層(第4層)で動作するロードバランサーです。CLBはTCPやSSLプロトコルを使用して、受信したトラフィックをEC2インスタンスに分散します。

CLBは単一のAWSアカウント内で最大1,024個のEC2インスタンスを登録でき、インスタンスのヘルスチェックを行って、異常なインスタンスへのトラフィック転送を停止します。CLBはシンプルで使いやすいロードバランサーであり、基本的なトラフィック分散ニーズに適しています。

ただし、CLBはコンテンツベースのルーティングやHTTP/2のサポートなど、一部の高度な機能を提供していません。そのため、より高度なロードバランシング機能が必要な場合はALBやNLBの使用を検討する必要があります。

Application Load Balancer(ALB)の特徴と用途

ALBはアプリケーション層(第7層)で動作するロードバランサーであり、HTTP/HTTPSトラフィックのルーティングに特化しています。ALBはリクエストの内容に基づいて、異なるターゲットグループにトラフィックを転送できます。

ALBはコンテンテベースのルーティング、WebSocketのサポート、HTTP/2のサポートなど、CLBよりも高度な機能を提供します。また、ALBはコンテナ化されたアプリケーションのサポートにも優れており、Amazon ECSやAmazon EKSと統合できます。

ALBはマイクロサービスアーキテクチャや、複雑なルーティングが必要なWebアプリケーションに適しています。また、ALBはクロスゾーンロードバランシングを標準で提供するため、複数のアベイラビリティゾーンにまたがるアプリケーションの可用性を向上させることができます。

Network Load Balancer(NLB)の特徴と用途

NLBはトランスポート層(第4層)で動作する高性能なロードバランサーです。NLBはTCPトラフィックの分散に特化しており、低レイテンシーと高スループットを実現します。

NLBは静的IPアドレスの割り当てをサポートしているため、IPアドレスを使用してアプリケーションにアクセスする必要があるユースケースに適しています。また、NLBはElastic IPアドレスをサポートしているため、インターネット向けのアプリケーションにも使用できます。

NLBは非常に大規模なトラフィックを処理する必要があるアプリケーションや、低レイテンシーが重要な要件である場合に適しています。例えば、ゲームサーバーやストリーミングサービスなど、リアルタイム性が求められるアプリケーションにNLBを活用できます。

ELBの設定と管理

ELBの設定と管理に関して、以下3つを簡単に解説していきます。

  • ELBの作成と設定方法
  • ELBのヘルスチェックとターゲットグループ
  • ELBのモニタリングとログ管理

ELBの作成と設定方法

ELBの作成と設定はAWSマネジメントコンソールまたはAWS CLIを使用して行うことができます。ELBを作成する際にはロードバランサーのタイプ(CLB、ALB、NLB)を選択し、必要な設定を行います。

設定項目にはリスナーの設定、セキュリティグループの割り当て、SSL/TLS証明書の設定などがあります。また、ELBにアタッチするEC2インスタンスやターゲットグループを指定する必要があります。これらの設定を適切に行うことで、ELBがトラフィックを適切に分散できるようになります。

ELBの設定はアプリケーションの要件に応じて柔軟に変更できます。例えば、リスナーのポート番号やプロトコルの変更、SSL/TLS証明書の更新、ターゲットグループの追加や削除などが可能です。

ELBのヘルスチェックとターゲットグループ

ELBのヘルスチェックは登録されたEC2インスタンスやターゲットグループの状態を定期的に確認する機能です。ヘルスチェックが失敗したインスタンスやターゲットグループは自動的にELBのトラフィック分散対象から外されます。

ヘルスチェックの設定にはチェック間隔、タイムアウト、正常判定のしきい値などがあります。これらの設定を適切に行うことで、異常なインスタンスやターゲットグループへのトラフィック転送を防ぎ、アプリケーションの可用性を維持できます。

ターゲットグループはELBがトラフィックを転送する先のEC2インスタンスやLambda関数などのグループを指します。ALBではリクエストの内容に基づいて、異なるターゲットグループにトラフィックを振り分けることができます。これにより、アプリケーションの柔軟性と拡張性が向上します。

ELBのモニタリングとログ管理

ELBのパフォーマンスと動作状況を監視するために、AWSはCloudWatchと統合されたモニタリング機能を提供しています。CloudWatchを使用することで、ELBのリクエスト数、レイテンシー、エラー率などのメトリクスを収集し、可視化できます。

これらのメトリクスを分析することで、アプリケーションのパフォーマンスをチューニングしたり、潜在的な問題を早期に発見したりすることができます。また、CloudWatchアラームを設定することで、メトリクスが特定のしきい値を超えた場合に通知を受け取ることができます。

ELBのログ管理にはアクセスログとリクエストログがあります。アクセスログはELBに到達したリクエストの詳細情報を記録するもので、トラブルシューティングやアプリケーションの動作分析に役立ちます。リクエストログはALBでのみ利用可能で、リクエストとレスポンスの詳細情報を記録します。

ELBを活用したアプリケーション設計

ELBを活用したアプリケーション設計に関して、以下3つを簡単に解説していきます。

  • ELBを使用した高可用性アーキテクチャ
  • ELBとオートスケーリングの連携
  • ELBを活用したBlue/Greenデプロイメント

ELBを使用した高可用性アーキテクチャ

ELBを使用することで、アプリケーションの高可用性を実現できます。ELBを複数のアベイラビリティゾーンにまたがるように設定し、各アベイラビリティゾーンにEC2インスタンスを配置することで、単一障害点を排除できます。

また、ELBのクロスゾーンロードバランシング機能を活用することで、トラフィックを複数のアベイラビリティゾーンに均等に分散できます。これにより、一部のアベイラビリティゾーンで障害が発生した場合でも、アプリケーションの可用性を維持できます。

さらに、ELBとAmazon Route 53を組み合わせることで、地理的に分散したアプリケーションの負荷分散を実現できます。Route 53のトラフィックルーティング機能を使用して、ユーザーの地理的位置に基づいて、最適なELBにトラフィックを振り分けることができます。

ELBとオートスケーリングの連携

ELBとAWSのオートスケーリング機能を連携させることで、アプリケーションの負荷に応じて自動的にEC2インスタンスを追加または削除できます。これにより、アプリケーションのパフォーマンスを維持しつつ、コストを最適化できます。

オートスケーリングの設定ではスケーリングポリシーを定義します。例えば、CPU使用率やリクエスト数などのメトリクスに基づいて、インスタンスの追加や削除を行うことができます。ELBとオートスケーリングを連携させることで、アプリケーションの可用性とスケーラビリティを向上させられます。

また、オートスケーリングとELBを組み合わせることで、アプリケーションのローリングアップデートを安全に実行できます。新しいバージョンのインスタンスを徐々にオートスケーリンググループに追加し、ELBのヘルスチェックで正常性を確認しながら、古いバージョンのインスタンスを段階的に置き換えることができます。

ELBを活用したBlue/Greenデプロイメント

Blue/Greenデプロイメントは新しいバージョンのアプリケーションを安全に本番環境にデプロイする手法です。ELBを活用することで、Blue/Greenデプロイメントを容易に実現できます。

Blue/Greenデプロイメントでは現在の本番環境(Blue環境)と並行して、新しいバージョンのアプリケーションを別の環境(Green環境)に用意します。Green環境でアプリケーションの動作を十分にテストした後、ELBの設定を変更して、トラフィックをBlue環境からGreen環境に切り替えます。

この切り替え時にはELBのヘルスチェック機能を活用して、Green環境のアプリケーションが正常に動作していることを確認します。問題が発生した場合はすぐにトラフィックをBlue環境に戻すことができます。Blue/Greenデプロイメントにより、アプリケーションの更新に伴うダウンタイムを最小限に抑えられます。

「コンピュータ」に関するコラム一覧「コンピュータ」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。