GCPでの受信リクエストの負荷分散の設定¶
オートスケーリングを有効にした構成済みのManaged instance groupが用意できたので、インスタンスグループ内の複数のフィルタリングノード間で受信HTTPおよびHTTPS接続を分散するLoad Balancerを作成・設定する必要があります。
Google Cloud Platformで設定できるLoad Balancerの種類は次のとおりです:
-
HTTP(S) Load Balancer
-
TCP Load Balancer
-
UDP Load Balancer
Load Balancerの違い
Load Balancer間の違いの詳細は、このリンクをご参照ください。
本ドキュメントでは、OSI/ISOネットワークモデルのトランスポート層でトラフィックを分散するTCP Load Balancerの設定と使用方法を説明します。
次の手順を実行して、インスタンスグループ用のTCP Load Balancerを作成します:
-
メニューのNetwork servicesセクションにあるLoad balancingページに移動し、Create load balancerボタンをクリックします。
-
TCP load balancingカードでStart configurationボタンをクリックします。
-
次の設定で必要なオプションを選択します:
-
ロードバランサーがクライアントからサーバーへの受信リクエストを制御できるよう、Internet facing or internal only設定でFrom Internet to my VMsオプションを選択します。
-
Multiple regions or single region設定でSingle region onlyオプションを選択します。
異なるリージョンにあるリソースのトラフィック分散
このガイドでは、単一リージョンにある1つのインスタンスグループに対するロードバランサーの設定について説明します。
複数リージョンに配置された複数リソース間でトラフィックを分散する場合は、Multiple regions (or not sure yet)オプションを選択します。
Continueボタンをクリックします。
-
-
Nameフィールドにロードバランサーの名前を入力します。
-
ロードバランサーが受信リクエストを転送するバックエンドとして作成済みのインスタンスグループを使用するため、Backend configurationをクリックします。
-
次の内容でフォームに入力します:
-
Regionドロップダウンリストからインスタンスグループが存在するリージョンを選択します。
-
Backends設定のSelect existing instance groupsタブに移動し、Add an instance groupドロップダウンリストからインスタンスグループ名を選択します。
-
必要に応じて、Backup PoolドロップダウンリストからCreate a backup poolオプションを選択してバックアッププールを指定します。
バックアッププールの使用
バックアッププールは、前の設定で選択したインスタンスグループが利用できない場合にリクエストを処理します。バックアッププールの設定の詳細は、このリンクをご参照ください。
本ドキュメントではバックアッププールの設定は取り扱いません。
-
必要に応じて、Health checkドロップダウンリストでCreate a health checkオプションを選択し、グループインスタンスの可用性チェックを構成します。マシンの可用性チェックの詳細は、このリンクをご参照ください。
可用性チェック
本ドキュメントの範囲では可用性チェックは構成しません。そのため、ここではHealth checkドロップダウンリストでNo health checkオプションを選択します。
-
必要に応じて、Session affinityドロップダウンリストで該当するオプションを選択し、リクエスト処理に使用するインスタンスの選択方法を構成します。リクエスト処理用インスタンスの選択に関する詳細は、このリンクをご参照ください。
インスタンス選択方法の構成
リクエスト処理に使用するインスタンスの選択方法は本ドキュメントの範囲外です。そのため、ここではSession affinityドロップダウンリストでNoneオプションを選択します。
-
-
Frontend configurationボタンをクリックし、クライアントがリクエストを送信するIPアドレスとポートを指定します。
-
新しいIPアドレスとポートの作成用フォームに必要事項を入力します:
-
必要に応じて、Nameフィールドに新しいIPアドレスとポートのペアの名前を入力します。
-
Network Service Tier設定で必要なネットワークサービス階層を選択します。ネットワークサービス階層の詳細は、このリンクをご参照ください。
-
IPドロップダウンリストから、ロードバランサーがリクエストを受信するIPアドレスを選択します。
-
各仮想マシンの起動時にロードバランサーへ新しいIPアドレスを割り当てたい場合は、Ephemeralオプションを選択します。
-
ロードバランサー用に静的IPアドレスを割り当てるには、Create IP addressオプションを選択します。
表示されるフォームのNameフィールドに新しいIPアドレスの名前を入力し、Reserveボタンをクリックします。
-
-
Portフィールドに、ロードバランサーがリクエストを受信するポートを入力します。
ポートの選択
本ドキュメントでは、HTTPプロトコル経由のリクエスト受信にポート
80
を指定します。
設定したIPアドレスとポートのペアを作成するためにDoneボタンをクリックします。
必要なフロントエンドポート
本ドキュメントでは、HTTPプロトコル経由のリクエストを受信するようにバランサーを構成しています。インスタンスグループがHTTPSプロトコル経由でリクエストを受信する場合は、ポート
443
を指定した別のIPアドレスとポートのペアを作成します。 -
-
Createボタンをクリックして、構成済みのロードバランサーを作成します。
ロードバランサーの作成処理が完了し、先ほど作成したインスタンスグループにロードバランサーが接続されるまで待機します。
作成したTCPバランサーはBackend service(インスタンスグループ用に作成したバックエンドと連携します)を使用するため、バランサーが接続するためにインスタンスグループ側の設定を変更する必要はありません。
これで、動的にスケールするWallarmフィルタリングノード群が、アプリケーションへの受信トラフィックを処理します。
デプロイしたフィルタリングノードの動作を確認するには、次の手順を実行します:
-
ブラウザでバランサーのIPアドレスまたはドメイン名にアクセスし、ロードバランサーおよびWallarmフィルタリングノード経由でアプリケーションに到達できることを確認します。
-
テスト攻撃を実行して、Wallarmサービスがアプリケーションを保護していることを確認します。