AWS特有の設定

Network Load Balancerの導入

Network Load Balancer (NLB)は受信したトラフィックをターゲットグループに登録したインスタンスに転送します。NLBは複数のAvailability Zones (AZ)間で冗長化することができます。このとき、NLBのIPアドレスは各サブネット毎に割り当てられており、クライアントからのアクセスにIPアドレスを用いることはできません。クライアントからのアクセスにはNLBのDNS名を用います。NLBのDNS名はいずれかのIPアドレスに変換されるため、AZ障害時でも同じDNS名で継続してアクセスすることができます。デフォルトではNLBのIPアドレスに転送されたトラフィックは、そのサブネット上のターゲットにしか転送できません。クロスゾーン負荷分散を有効にすることで、別のサブネット上のターゲットにも転送できるようになります。

クライアントからの接続

  1. 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)。
  2. NLBには、プロトコルとポートに対してどのターゲットグループへ転送するかが登録されています。このとき、どのノードがヘルスプローブに応答するかを確認します。
  3. アクティブノードではヘルスプローブに応答します。LifeKeeperによってLB Health Checkリソースは常にひとつのインスタンスでのみアクティブになっているため、NLBのヘルスプローブに応答するのはアクティブノードだけです。つまり、NLBは常にアクティブノードだけにトラフィックを転送します (上の図ではAWSNODE1がアクティブノードです)。
  4. 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リソース作成

ロードバランサーのヘルスチェックに応答する 」をご覧ください。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信