ここでは、トラフィックをアクティブノードにルーティングする内部ロードバランサーを作成して、Google Cloud の内部ロードバランサーを使用してノードを切り替える方法について説明します。クライアントは、内部ロードバランサーが提供するフロントエンド IP アドレスに接続します。内部ロードバランサーは、ユーザー定義の「ヘルスチェックプローブ」機能を使用してバックエンドプール内の各 VM の状態を定期的にチェックし、クライアントのリクエストをアクティブノードにルーティングします。

インスタンスグループを作成する

内部ロードバランサーを使用するには、まず各ノードを含むインスタンスグループを作成します。以下のパラメータを使用してインスタンスグループを作成します。

名前
リージョン
ゾーン
ネットワーク
サブネット
VM インスタンス
lk-ig01 <Deployment region> a lk-vpc lk-subnet node-a
lk-ig02 b node-b
  1. ナビゲーションメニューから [Compute Engine] > [Instance Group] を選択します。

  1. 「CREATE INSTANCE GROUP」、「New Unmanaged instance group」を選択し、表にリストされているパラメーターを入力します。

  1. 同じ手順に従って lk-ig02 を作成します。
  1. これで、2つのインスタンスグループが作成されました。

内部ロードバランサーを作成する

内部ロードバランサーはトラフィックをアクティブノードに分散し、次の手順を使用して作成できます。ロードバランサーを構成するには、node-aでアプリケーションを起動します(LifeKeeperを使用して構成する前に、ロードバランサーが動作していることを確認します)。

  1. ナビゲーションメニューで、[Network Service] > [Load Balancing] を選択します。

  1. 「TCP負荷分散」の下の [構成を開始] をクリックします。

  1. 「VM間のみ」(内部ロードバランサーを意味します)を選択し、「シングル リージョンのみ」を選択します。 [続行] をクリックします。

  1. 名前をlk-lbと指定し、バックエンドパラメーターを構成します。[リージョン]、[ネットワーク] に lk-vpc を選択し、ドロップダウンメニューから2つのインスタンスグループ(lk-ig01lk-ig02)を選択して、バックエンドプールに追加します。

  1. バックエンドの構成ページの下部にある「ヘルスチェック」に移動します。 [ヘルスチェックの作成] を選択します。

  1. 名前はlk-health-checkを選択し、[ポート] を選択して(使用するサービスと一致することを確認します)、他のパラメーターを確認して、[保存して次へ] をクリックします。

  1. 「フロントエンドの設定」タブに移動します。フロントエンドの名前とサブネットワークを指定します。この例では、lk-frontend という名前を使用して、lk-subnet サブネットワークを選択します。[IP アドレス] で[エフェメラル(カスタム)] を選択し、ロードバランサーのフロントエンドで使用するカスタムエフェメラル IP アドレスを指定します。この例では、IP アドレス10.20.0.10 を使用します。 [ポート] で、トラフィックがルーティングされるアプリケーションに基づいて、必要に応じて[単一]、[複数]、または [すべて] を選択し、必要なポートを入力します。この例では、TCP ポート 80 でトラフィックを転送します。

  1. 「確認と完了」タブに移動し、[作成] をクリックします。

  1. ロードバランサーが作成されると、ステータスが表示されます。アプリケーション(httpdなど)はこれらのノードの1つでのみ実行されるため、 アイコンが表示される場合がありますが、これは想定内です。

  1. これで、内部ロードバランサーが設定されました。node-aに保護するアプリケーションをインストールすると、先ほど設定したILBのフロントエンドIP(10.20.0.10)を介してアプリケーションに接続できます。次の例では、ILB を介して現在のターゲットのhttpトラフィックを確認する方法を示しています。

IP 転送を無効にする

特定の構成では、内部ロードバランサーの異なるバックエンドサーバーでホストされている 2 つのアプリケーションが、ロードバランサー自体のフロントエンド IP を介して通信する必要がある場合があります。これはたとえば、内部ロードバランサを使用して SAP AS ABAP デプロイメントのASCS および ERS インスタンスのフローティング IP フェイルオーバーを管理する場合に発生します。

Google Cloud でのルートベースのロードバランサーの実装の結果として、ロードバランサーのバックエンドサーバーからロードバランサーのフロントエンドIPに送信されるトラフィックは、ロードバランサーのヘルスチェックで正常と見なされるかどうかにかかわらず、デフォルトで、その元となる同じバックエンドサーバーにルーティングされます。 詳細については、 内部 TCP / UDP 負荷分散のトラブルシューティング 「トラフィックが予期したとおりにバックエンド VM に送信されない」 のセクションを参照してください。

以下は、Google Cloud の VM で IP 転送を無効にする手順です。これにより、上記のバックエンド内トラフィックの問題も解決されます。これらの手順は、ロードバランサーのバックエンドターゲットとして追加されるすべての VM で実行する必要があります。

  1. etc/default/instance_configs.cfg fileファイルの [NetworkInterfaces] セクションで ip_forwarding = false を設定します。
# vi /etc/default/instance_configs.cfg
# cat /etc/default/instance_configs.cfg
[...]
[NetworkInterfaces]
[...]
ip_forwarding = false
[...]

  1. 変更が正常に保存されたら、VMを再起動して、変更を有効にします。

IP 転送が無効になっている場合、ロードバランサーのヘルスチェックに応答する LifeKeeper LB Health Check リソースには、ロードバランサーのフロントエンド IP アドレスを保護し、ネットマスク/ 32(255.255.255.255)を使用する子 IP リソースが必要です。この子 IP リソースがないと、LB Health Check リソースは In-Service になりません。これらのリソースの作成と LB Health Check リソースの依存関係としての追加の詳細については、 ロードバランサーのヘルスチェックに応答する「フロントエンド IP リソースの作成」「LB Health Check リソースの依存関係としてのフロントエンド IP リソースの追加」 のセクションを参照してください。

ロードバランサーと対応するLB Health Checkリソース階層の正常な動作をテストする方法の詳細については、 ロードバランサーのヘルスチェックに応答する「LB Health Checkリソースのスイッチオーバーとフェイルオーバーのテスト」 のセクションを参照してください。

フィードバック

フィードバックありがとうございました

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

送信