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

投稿者 Zevenet | 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 及び バックエンド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を使用し、コマンドライン管理およびクラスタリングの目的で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-製品 及び 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 及び エラスティック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もクラスターリソースであるため、Amazon Webサービスは、ロードバランシング用に構成された仮想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アクセスタイプを選択 選ぶ プログラムによるアクセス ボタンを押す 次:パーミッション。 今すぐ 権限を設定する セクションプレスイン グループを作る 次に、新しいウィンドウでフィールドに入力します グループ名 わかりやすい名前で、たとえば、 AmazonEC2、そして最後に、フィールドで フィルターポリシー という名前のポリシーを検索して選択します AmazonEC2FullAccess 特にEC2インスタンス間で割り当てられたIPを変更する権限を与えます。

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

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

AWS認証情報:アクセスキーとシークレットキーは、前の行で既に生成された値です。 リージョン。ZEVENETApplication Deliveryコントローラーがデプロイされているリージョンをここで選択します。

クラスターを構成する:

ローカルIP:eth0のIPとNICを選択します。
リモートIP:ここにノードZLB0-proのeth2のIPを入力します。
リモートノードのパスワード 及び パスワードの確認 :ここに他のノードの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の条項に基づくドキュメンテーション。

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

関連記事