アマゾンウェブサービスでの高度な負荷分散とクラスタリング

投稿日: 24 年 2020 月 XNUMX 日

はじめに

次の記事では、ZEVENETロードバランサーを使用して高度なロードバランシングサービスを設定し、 アマゾンウェブサービスEC2インフラストラクチャ。 設定する手順を説明します ZEVENETクラスター 3つのWebバックエンドサーバーを使用してHTTPサービスの負荷分散を行うためのTCP負荷分散プロファイルを構成します。

AWSとZEVENETインフラストラクチャ

次の図は、AWSでZEVENET Application Delivery Controllerを使用してウェブ負荷分散を実装するアーキテクチャを示しています。

XNUMXつのZEVENET Application Delivery Controllerをデプロイする必要があります。このテンプレートはAmazon Web Servicesマーケットプレイスで利用可能であり、各ZEVENET Application Delivery Controllerは、上の図のサブネットと同じように、Webバックエンドサーバーと同じVPCに構成されています 17.32.16.0./20.

各ZEVENET ADCインスタンスはXNUMXつのインターフェースで構成されます eth0、各インスタンスはXNUMXつに割り当てられます エラスティックIP、また、XNUMXつの追加のElastic IPがXNUMXつの追加のIPに割り当てられます。 eth0 ZLB1-製品 以下で説明するように、負荷分散の目的で使用されるインスタンス:

ZLB1-製品 に割り当てられています 172.31.20.89 eth0では、このインスタンスはXNUMXつによって直接アクセスされます エラスティックIP 34.225.30.206
ZLB2-製品 に割り当てられています 172.31.26.237 eth0では、このインスタンスはXNUMXつによって直接アクセスされます エラスティックIP 54.161.240.226

XNUMXつの追加IPが割り当てられます ZLB1-製品 名前でロードバランサーに設定されています eth0:vip1 IP 172.31.26.47、このIPはここでXNUMXつの負荷分散サービスを構成し、 クラスタサービスなので、このIPは一度にXNUMXつのZEVENETインスタンスでのみ機能し、 ACTIVE クラスターでの役割。 この内部IPは、公開された実際のWebサービスに接続するためにクライアントがアクセスするXNUMXつのElastic IPに割り当てられます。

最後に バックエンド01, バックエンド02 and バックエンド03 Linux ベースの Web サーバーを備えた EC2 インスタンスです。これらのインスタンスは、要求時にクライアントが接続する負荷分散サービスの一部です。 http://54.144.190.17/.

AWS MarketplaceにXNUMXつのZEVENETインスタンスをデプロイする

XNUMX つの ZEVENET ロード バランサーを展開し、前述のように構成しましょう。

EC2インスタンスセクションに移動し、押し込みます インスタンスを起動.

1. 必要なZEVENET Load Balancer Enterprise Edition AMIを検索します。 この AMI は BYOL ライセンスに基づいています モデル。 評価フェーズは無料で、XNUMXか月間のサポートが含まれます。この期間が経過すると、正式なライセンスが必要になります。

2. 選ぶ インスタンスタイプ。 負荷分散するリソースに基づいて、ここで必要なインスタンスを選択します。 独身者 t2.小さい インスタンスは作業を開始するのに適しています L4プロファイル、しかしあなたが使いたいなら HTTPプロファイル 次に、少なくとも t2.中 インスタンス。 しかし、 t2.micro インスタンスはテスト目的には十分です。

3. 構成 インスタンスの詳細. ここで、新しい ZEVENET インスタンスを実行する VPC を選択します。この構成例では、既に構成されている実際の Web バックエンド サーバーと同じ VPC に ZEVENET EC2 インスタンスを導入します。

4. ストレージを追加。 デフォルトでは、ZEVENET EC2インスタンスには少なくとも12Gbのストレージが必要です。デフォルトでログをアクティブ化する場合は、このサイズを少なくとも20Gbに増やすことをお勧めします。 ZEVENETはログを保存するためだけにディスクへのアクセスを必要としないので、 ボリュームタイプ 一般的な目的のために良い選択です。

5. タグを追加する。 必要に応じて、ここでいくつかの説明タグを設定します。

6. 構成 セキュリティグループ. ZEVENET はデフォルトで、HTTPS Web GUI 管理の目的で TCP ポート 444、セッション同期デーモンの場合は 9999、コマンドライン管理とクラスタリングの目的で SSH の TCP ポート 22 を使用します。 さらに、それぞれ 仮想ポート ロードバランサーの仮想サービスで使用されるサービスは、セキュリティグループに含める必要があります。 これらのZEVENET EC2インスタンスに使用されるセキュリティグループを、制限の少ないモードで次のように構成しました。

TYPE = All traffic
Protocol = ALL 
Port Range = All
Source = 0.0.0.0/0
Description = Allow all from all to all

このセキュリティ グループはテスト目的で作成されます。すべてのポートをブロックし、負荷分散と管理の使用のみを許可するように選択できます。

構成アシスタントが EC2 インスタンス リストに戻ると、新しいアプライアンスのデプロイが開始され、 開始 状態が表示されます。 次に、フィールドにわかりやすい名前を設定します お名前、私たちの場合、EC2にデプロイされたロードバランサーの名前は ZLB1-製品 and ZLB2-製品.

ZEVENET EC2インスタンスのネットワークの構成

ZEVENET仮想アプライアンスが展開され、 インスタンスの状態 見せている ランニング ネットワークの構成に進むことができるモード。

上の右ボタンをクリックします ZLB1-製品 アプライアンスと選択 ネットワーキング> IPアドレスの管理、で IPアドレスの管理 ポップアップウィンドウプレスイン 新しいIPを割り当てる ボタンを押す はい、更新します、システムは新しいIPを eth0 同じVPC内。 この新しいIPを思い出してください。この例では、この新しいIPは 172.31.26.47. システムは、将来のクラスタリング サービスで負荷分散の目的で使用される新しい IP を割り当てました。

セクションに行く エラスティックIP 各ZEVENETインスタンスに新しい エラスティックIP。 これらは、ロードバランシングではなく、管理目的で使用されます。

同じで エラスティックIP セクション、新しいIPを割り当てる ZLB1-製品、ただしこの場合は、 プライベートIP 住所 172.31.26.47。 この構成の後 ZLB1-製品 IPを使用してWebおよびSSHからアクセス可能 34.225.30.206、 だけど ZLB2-製品 IPと同じサービスを介してアクセス可能 54.161.240.226 and エラスティックIP 54.144.190.17 IPに割り当て 172.31.26.47.

一時ライセンスでZEVENET EC2インスタンスを有効にする

Elastic IPが構成されたら、次のように仮想ロードバランサーにアクセスできます。

ZLB1-prodには、https://34.225.30.206:444ユーザーrootとインスタンスIDのパスワードを使用してアクセスできます。
ZLB1-prodは、ユーザー管理とプライベート証明書ファイルを使用して、IP 34.225.30.226のsshからアクセスできます。これは、EC2のデプロイ時に構成されます。
ZLB2-prodには、https://54.161.240.226:444ユーザーrootとインスタンスIDのパスワードを使用してアクセスできます。
ZLB2-prodは、ユーザー管理とプライベート証明書ファイルを使用して、IP 54.161.240.226のsshからアクセスできます。これは、EC2のデプロイ時に構成されます。

続行する前にホスト名の変更を検討している場合は、EC2インスタンスを再起動して変更を適用してください。

Web GUIへのアクセスが正常に完了すると、ホスト名と証明書キーというXNUMXつの重要な値が表示されます。どちらの情報もロードバランサーごとに一意であり、アクティベーションライセンスに関連しています。説明に従って、次のURLでこの情報を使用してください。 https://www.zevenet.com/activate-enterprise-edition-cloud-evaluation/

フォームに入力すると、システムはライセンスを指定された電子メールに自動的に送信します。 受信したPEMアクティベーションライセンスを各ロードバランサーのWeb GUIからアップロードしてください。これが完了すると、Web GUIのロックが解除され、すべての機能が完全に有効になり、操作可能になります。

ノードZLB1-prodとZLB2-prodの両方で同じアクティベーション手順を実行します。

ロードバランシング用の仮想IPの構成

前のポイントで、追加のIPをeth0に割り当てました 172.31.26.47 インスタンスZLB1-proでは、このIPはXNUMXつのElastic IPに割り当てられています 54.144.190.17、ZBL1-proロードバランサーでこの構成を行うのを保留しています。

Elastic IPを使用してウェブインターフェースからZLB1-proロードバランサーに移動します https://34.225.30.206:444、ログインしたら、ナビゲーションメニューに移動してください ネットワーク>仮想インターフェース>仮想インターフェースの作成、次の設定を行います。

Parent Interface = eth0 172.31.26.47

* EC2インスタンスはElastic IPについて何も認識していないため、ここでは、負荷分散の目的で使用されるパブリックElastic IPにリンクされたEC2インスタンスの物理IPを構成する必要があります54.144.190.17

Virtual Interface name = vip1
IP Address = 172.31.26.47

イベント 創造する ボタンをクリックして構成を適用します。

新しいIP 172.31.26.47 名前付き eth0:vip1 ZLB1-pro EC2 ZEVENETロードバランサーで構成されており、このVPC内の任意のEC2インスタンスからpingを実行できます。

アマゾンウェブサービスでのZEVENETクラスターサービスの設定

ZEVENETロードバランサークラスターは ステートフルアクティブ-パッシブ モードでは、クラスターリソースは両方のノードで構成されますが、 ACTIVE ノード。 そのようなノードに障害が発生し、この役割が他のメンバーで開始された場合、クラスター リソースに再度アクセスする必要があります。 仮想 IP もクラスター リソースであるため、アマゾン ウェブ サービスは、仮想 IP が負荷分散用に構成されていることを何らかの方法でアナウンスする必要があります。 172.31.26.47 ZLB2-prod経由で動作します。

このため、ZEVENET クラスター サービスは、インターフェイスを管理するために EC2 モジュールでアクセス許可を設定する必要がある AWS クライアントを使用するため、ZEVENET クラスター サービスを開始する前に、それを準備する必要があります。 それでは、設定しましょう AWSキー AWSコマンドラインインターフェイスで使用するためにEC2でIPを管理する権限を持つアカウント内。

Amazonコンソールに移動 https://console.aws.amazon.com/iam/ 、次にナビゲーションメニューで ユーザー。 ボタンをクリック ユーザーを追加.

Configure a descriptive User name = aws-for-zlb

In AWSアクセスタイプを選択 選ぶ プログラムによるアクセス ボタンを押す 次:パーミッション。 今すぐ 権限を設定する セクションプレスイン グループを作る 次に、新しいウィンドウでフィールドに入力します グループ名 わかりやすい名前で、たとえば、 アマゾンEC2、そして最後に、フィールドで フィルターポリシー という名前のポリシーを検索して選択します AmazonEC2フルアクセス 特にEC2インスタンス間で割り当てられたIPを変更する権限を与えます。

押し込む 次:タグ and 次:レビュー. 最後に押し込みます ユーザーを作成、そして最後のウィンドウに表示されます アクセスキーIDシークレットアクセスキー このユーザーのために、今後の使用のために保存してください。

これで、ZEVENETクラスタサービスを構成する準備ができました。割り当てられたパブリックIP https://1:34.225.30.206を介してZLB444-proのWebパネルに移動します。セクション システム>クラスタ 例に従ってフォームに入力します。

AWS認証情報: アクセス キーと秘密キーは、前の行で既に生成されている値です。 地域、ZEVENET アプリケーション配信コントローラーが展開されている地域をここで選択します。

クラスターを構成する:

ローカルIP:eth0のIPとNICを選択します。
リモートIP:ここにノードZLB0-proのeth2のIPを入力します。
リモートノードのパスワード and パスワードの確認 :ここに他のノードのsshのrootパスワードを入力します。デフォルトではZLB2-proのインスタンスIDです。

をクリックしてください 生成する ボタンをクリックして数秒待つと、構成を実行するノードが ACTIVE 役割(ZLB1-pro)と他の(ZLB2-pro)が 受動的 役割。

この時点で、ZEVENET クラスターは AWS で構成されており、動作する準備ができています。最初のクラスター化された負荷分散サービスを構成しましょう。

Webサービスの単純なL4負荷分散の構成

  LSLB>ファーム>ファームの作成 次のパラメータを使用します。

使用された仮想IP 172.31.26.47 以前に構成された仮想IPであり、常にから到達可能なクラスターのリソース ACTIVE ノード。 押す 創造する そして続けます。

新しいウィンドウで、 グローバルセクション 以下のように:

そして最後に、セクションを設定します サービス 説明したように:

  タイムアウト付きのIP永続性 同じクライアントIPが一定期間に同じバックエンドに接続されることを保証する必要がある場合に備えて、60秒。 で高度なヘルスチェックを構成する 農場の守護者。 使用 check_tcp TCP バックエンド ポート 80 が各バックエンドで開かれていることを確認する単純なヘルス チェックとして。 次に、実際の Web サービスが実行されているバックエンド サーバーの内部 IP とポートを追加します。

次に、への接続をテストします エラスティックIP http://54.144.190.17/ assigned to the internal IP 172.31.26.47, the connection will pass through the load balancer using the eth0:vip1 利用可能なバックエンドのXNUMXつに転送されます。

今変更する力 ACTIVE たとえば、クラスターの役割。この役割でノードを再起動すると、数秒後に、もう一方が仮想サービスを取得して、パブリックIPに再び接続します。 現在と新しいクライアント接続は同じバックエンドに対して確立されますが、今回は新しい ACTIVE クライアントの中断のないノード。

ロードバランサーへの新しいインターフェイスの追加

バランスをとるため、または必要な目的で、ロードバランサーへのインターフェイスをさらに構成することができます。 これを行うには、AWSが概説した手順に従って、EC2インスタンスに新しいインターフェースを追加するのと同じくらい簡単です。 このためのベストプラクティスをよりよく理解するために、AWSが提供する記事をご覧ください。 https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/best-practices-for-configuring-network-interfaces.html。 EC2インスタンスに新しいインターフェースを追加すると、ZEVENETはこれらの新しいインターフェースを自動的に検出するため、これを使用して必要に応じて設定できます。

 

ZEVENETを使用してAWSで高度な負荷分散とクラスタリングをお楽しみください!

上の共有:

GNU Free Documentation Licenseの条項に基づくドキュメンテーション。

この記事は役に立ちましたか?

関連記事