AWS特有の設定
Network Load Balancerの導入
Network Load Balancer (NLB)は受信したトラフィックをターゲットグループに登録したインスタンスに転送します。NLBは複数のAvailability Zones (AZ)間で冗長化することができます。このとき、NLBのIPアドレスは各サブネット毎に割り当てられており、クライアントからのアクセスにIPアドレスを用いることはできません。クライアントからのアクセスにはNLBのDNS名を用います。NLBのDNS名はいずれかのIPアドレスに変換されるため、AZ障害時でも同じDNS名で継続してアクセスすることができます。デフォルトではNLBのIPアドレスに転送されたトラフィックは、そのサブネット上のターゲットにしか転送できません。クロスゾーン負荷分散を有効にすることで、別のサブネット上のターゲットにも転送できるようになります。
クライアントからの接続
- Clientが、アプリケーション (上図では Listener) へ接続するため、NLBのDNS名とアプリケーションのポート番号 (上図ではXXXX-nlb1-YYYY.elb.region.amazonaws.comと1521) で接続を試みます。DNS 名はAWS内部のRoute 53経由でNLBのサブネットのIPアドレスに変換されます (上記例では10.0.1.151もしくは10.0.2.181)。
- NLBには、プロトコルとポートに対してどのターゲットグループへ転送するかが登録されています。このとき、どのノードがヘルスプローブに応答するかを確認します。
- アクティブノードではヘルスプローブに応答します。LifeKeeperによってLB Health Checkリソースは常にひとつのインスタンスでのみアクティブになっているため、NLBのヘルスプローブに応答するのはアクティブノードだけです。つまり、NLBは常にアクティブノードだけにトラフィックを転送します (上の図ではAWSNODE1がアクティブノードです)。
- NLBは、Clientからの接続要求を、アクティブノードに転送します。そして接続要求は、宛先アドレスがNLBのアドレスからアクティブノードの実IPアドレス (上の図では 10.0.1.10) に書き換えられて、アクティブノードに到達します。
Network Load Balancer を作成
以下の表に従ってNetwork Load Balancerを作成します。
Network Load Balancer | |
---|---|
ロードバランサー名 | 任意 |
スキーム | 内部 |
IP アドレスタイプ | IPv4 |
ネットワークマッピング | クラスターノードが配置されているAZのサブネットを選択 |
セキュリティグループ | リスナーポートとヘルスチェックポートの両方で登録済みターゲットと通信できるようにします |
リスナー | プロトコルTCPでリスナーポートを選択します。Oracleの場合は1521、PostgreSQLは5432です。そして転送するターゲットグループを選択します。 |
ターゲットグループ | |
---|---|
ターゲットタイプ | インスタンス |
プロトコル:ポート | TCP、ポートは転送されるポートを指定する。Oracleの場合は1521、PostgreSQLは5432です。 |
IP アドレスタイプ | IPv4 |
ヘルスチェックプロトコル | TCP |
ヘルスチェックの詳細 | ヘルスチェックポート 上書き <LB Health Check Kitで指定するポート> 正常のしきい値 2 非正常のしきい値 3 タイムアウト 5秒 間隔 10秒 |
使用可能なインスタンス | 転送されるクラスターノードを選択 |
選択したインスタンスのポート | 転送されるポートを指定する。Oracleの場合は1521、PostgreSQLは5432です。 |
クロスゾーン負荷分散を有効にする
デフォルトで無効であるため、「ロードバランサー属性を編集」から有効にします。
ヘルスチェックの詳細で設定するパラメータ一の調整
「ロードバランサーヘルスチェックパラメーターのチューニング 」をご覧ください。
IP リソース作成
OracleリソースをはじめとするIPリソースが必要なリソースを使用する場合は、IPリソースを実IPアドレスとして作成してください。NLBからは実IPアドレス宛にトラフィックが転送されます。
LB Health Checkリソース作成
「ロードバランサーのヘルスチェックに応答する 」をご覧ください。
このトピックへフィードバック