メニュー
Elastic Load Balancing
ユーザーガイド

Elastic Load Balancing の詳細

ロードバランサーは、クライアントからの受信トラフィックを受け入れ、リクエストを 1 つ以上のアベイラビリティーゾーンにある登録済みの EC2 インスタンスにルーティングします。また、ロードバランサーは登録されているインスタンスの状態を監視して、トラフィックが正常なインスタンスにのみルーティングされるよう保証します。ロードバランサーは、不具合のあるインスタンスを検出すると、そのインスタンスへのトラフィックのルーティングを停止し、インスタンスが正常な状態に戻ったことを検出するとインスタンスへのトラフィックのルーティングを再開します。

1 つ以上のリスナーを指定することで、受信トラフィックを受け入れるようにロードバランサーを設定します。リスナーとは接続リクエストをチェックするプロセスです。リスナーの設定には、クライアントからロードバランサーへの接続用のプロトコルとポート番号、およびロードバランサーからインスタンスへの接続用のプロトコルとポート番号を使用します。

Elastic Load Balancing では、アプリケーションロードバランサーと標準ロードバランサーという 2 種類のロードバランサーをサポートします。これらのロードバランサーの構成方法の重要な相違点を次の図に示します。標準ロードバランサーでは、ロードバランサーにインスタンスを登録します。アプリケーションロードバランサーでは、インスタンスをターゲットとしてターゲットグループに登録し、トラフィックをターゲットグループにルーティングします。

ターゲットまたはインスタンスの登録。

アベイラビリティーゾーンとインスタンス

ロードバランサー用のアベイラビリティーゾーンを有効にすると、Elastic Load Balancing はアベイラビリティーゾーンにロードバランサーノードを作成します。インスタンスをアベイラビリティーゾーンに登録したが、アベイラビリティーゾーンを有効にしていない場合、登録したインスタンスはトラフィックを受信しません。

標準ロードバランサーでは、複数のアベイラビリティーゾーンを有効にすることをお勧めします。アプリケーションロードバランサーでは、複数のアベイラビリティーゾーンを有効にする必要があります。複数のアベイラビリティーゾーンを有効にしておくと、1 つのアベイラビリティーゾーンが利用できなくなったか正常なインスタンスがなくなった場合でも、ロードバランサーは引き続きトラフィックを別のアベイラビリティーゾーンの正常な登録済みインスタンスにルーティングすることができます。

クロスゾーン負荷分散が有効な場合、ロードバランサーは、有効なすべてのアベイラビリティーゾーンのすべての登録されたインスタンスにトラフィックを均等に分散します。クロスゾーン負荷分散が無効な場合、ロードバランサーは、有効なすべてのアベイラビリティーゾーンにトラフィックを均等に分散します。クロスゾーン負荷分散は、アプリケーションロードバランサーでは常に有効であり、標準ロードバランサーではデフォルトで無効になっています。

クロスゾーン負荷分散とアベイラビリティーゾーン。

ロードバランサーのスキーム

ロードバランサーを作成するとき、ロードバランサーを内部向けにするかインターネット向けにするか選択する必要があります。標準ロードバランサーを EC2-Classic に作成するときは、インターネット向けロードバランサーにする必要があります。

インターネット向けロードバランサーのノードにはパブリック IP アドレスが必要です。インターネット向けロードバランサーの DNS 名は、ノードのパブリック IP アドレスにパブリックに解決可能です。したがって、インターネット向けロードバランサーは、クライアントからインターネット経由でリクエストをルーティングできます。

内部ロードバランサーのノードはプライベート IP アドレスのみを持ちます。内部ロードバランサーの DNS 名は、ノードのプライベート IP アドレスにパブリックに解決可能です。そのため、内部向けロードバランサーは、ロードバランサー用に VPC へのアクセス権を持つクライアントからのみ、リクエストをルーティングできます。

インターネット向けロードバランサーと内部向けロードバランサーは、どちらもプライベート IP アドレスを使用してリクエストをインスタンスにルーティングします。したがって、インスタンスは、内部またはインターネット向けロードバランサーからリクエストを受信するためのパブリック IP アドレスを必要としません。

アプリケーションに複数のレイヤーがある場合(インターネットに接続する必要があるウェブサーバーや、ウェブサーバーにのみ接続されているデータベースサーバーなど)、内部ロードバランサーとインターネット接続ロードバランサーの両方を使用するアーキテクチャーを設計できます。インターネット接続ロードバランサーを作成し、そこにウェブサーバーを登録します。内部ロードバランサーを作成し、そこにデータベースサーバーを登録します。ウェブサーバーは、インターネット接続ロードバランサーからリクエストを受け取り、データベースサーバー用のリクエストを内部ロードバランサーに送信します。データベースサーバーは、内部ロードバランサーからリクエストを受け取ります。

インターネット向けロードバランサーと内部向けロードバランサーを使用する複数のレイヤーがあるアーキテクチャ。

リクエストルーティング

クライアントがリクエストをロードバランサーに送信する前に、ドメインネームシステム(DNS)サーバーを使用してロードバランサーのドメイン名を解決します。インスタンスは amazonaws.com ドメインにあるため、DNS エントリは Amazon によって制御されます。Amazon DNS サーバーは、1 つ以上の IP アドレス(ロードバランサー用のロードバランサーノードの IP アドレス)をクライアントに返します。アプリケーションへのトラフィックが時間の経過とともに変化すると、Elastic Load Balancing はロードバランサーをスケーリングして DNS エントリを更新します。DNS エントリでは、有効期限 (TTL) も 60 秒に指定されているため、トラフィックの変化に応じて IP アドレスが迅速に再マップされる点に注意してください。

クライアントは、ロードバランサーにリクエストを送信するために使用する IP アドレスを決定します。リクエストを受信したロードバランサーノードは、正常な登録済みインスタンスを選択し、そのプライベート IP アドレスを使用してインスタンスにリクエストを送信します。