探偵の手がかりが多ければ多いほど、彼は事件を解決しやすくなります。これがまさにロードバランサーの仕組みです。ロードバランサーの情報が多いほど、機能が向上します。このブログでは、Application Load Balancerと、パケットヘッダー、HTTPS、HTTPSの詳細にアクセスしやすくすることで着信トラフィックを分散する方法について説明します。
取り上げるトピック:
- アプリケーションロードバランサーとは何ですか?
- アプリケーションロードバランサーの動作
- 従来のロードバランサーよりも優れた機能
- デモ:アプリケーションロードバランサーを作成し、それが機能していることを示す
アプリケーションロードバランサーとは何ですか?
OSIモデルについて聞いたことがあると思います。これは7層のアーキテクチャであり、各層が世界中でデータを転送する際に特別なタスクを実行します。これらのレイヤーには、物理レイヤー、データリンクレイヤー、ネットワークレイヤー、トランスポートレイヤー、セッションレイヤー、プレゼンテーションレイヤー、アプリケーションレイヤーが含まれます。 Application Load Balancerは、その名前が示すように、OSIモデルの第7層で動作します。それアプリケーションレベルのコンテンツを調べ、この取得した情報に基づいてトラフィックをルーティングする機能があります。アプリケーションレベルのコンテンツには、パケットの詳細、HTTPおよびHTTPSの詳細が含まれます。これにより、ルーティングがより簡単に、より速く、より効率的になります。最も広く使用されているものの1つです 。
アプリケーションロードバランサーの動作
アプリケーションロードバランサーはで構成されています リスナー そして ルール 。クライアントが要求を行うと、リスナーはそれを確認します。ルールは、リスナーが聞いた後の各クライアントリクエストのルーティングを管理するガイドラインです。ルールは3つのコンポーネントで構成されています– ターゲットグループ 、 優先 そして 条件 。ターゲットグループは 登録済みターゲット (トラフィックがルーティングされるサーバー)。各ターゲットグループは、指定したプロトコルとポート番号を使用して、EC2インスタンスなどの1つ以上の登録済みターゲットにリクエストをルーティングします。したがって、基本的に、リスナーは要求を受け取ると、優先順位を調べて適用するルールを決定し、ルールを分析して、条件に基づいて、どのターゲットグループが要求を受け取るかを決定します。
アプリケーションへのリクエストの全体的なフローを中断することなく、必要に応じていつでもロードバランサーからターゲットを追加または削除できます。 ELBは、ロードバランサーを動的にスケーリングします。つまり、アプリケーションのトラフィックが時間の経過とともに変化すると、アプリケーションはさまざまな状況に備えて準備されます。
従来のロードバランサーよりも優れた機能
コンテンツベースのルーティング: Application Load BalancerはHTTPヘッダーにアクセスする必要があるため、それに基づいてトラフィックをルーティングします。
コンテナベースのアプリケーションのサポート: コンテナ化の強力な概念により、ほとんどのユーザーはマイクロサービスをコンテナにパックし、EC2インスタンスでホストしています。これにより、単一のEC2インスタンスで複数のサービスを実行できます。 Application Load Balancerは、これらのコンテナーベースのアプリケーションをサポートします。 1つのインスタンスで複数のコンテナをホストし、同じターゲットグループの背後にある複数のポートでリッスンできます。また、きめ細かいポートレベルのヘルスチェックも実行します。
より良い指標: Application Load Balancerは、ポートごとにヘルスチェックを実行し、レポートも生成します。ヘルスチェックは、許容可能なHTTP応答の範囲を指定します。これらのヘルスチェックには、詳細なエラーコードも付属しています。
人工知能論争の賛否両論
パスベースのルーティング: Application Load Balancerは、パスベースおよびホストベースのルーティングをサポートしますが、Classicロードバランサーには当てはまりません。 Y単一のロードバランサーを使用して、リクエストを複数のドメインにルーティングできます。
IPアドレスとラムダ関数の登録: EC2インスタンスの登録に加えて、IPアドレスとLambda関数をターゲットに登録することもできます。それゆえVPCの外部にあるターゲットを登録することもできます。
追加のプロトコルとワークロードを提供します。
Application Load Balancerは、HTTP / 2とWebSocketの2つの追加プロトコルを提供します
HTTPS / 2: このプロトコルは、単一の接続を介した多重化された要求をサポートします。これにより、ネットワークトラフィックが減少します。
WebSocket: このプロトコルを使用すると、クライアントとサーバーの間に長期的なTCP接続をセットアップできます。このプロトコルは、古い方法に比べてはるかに効率的です。
デモ:アプリケーションロードバランサーを作成し、それが機能していることを示す
Application Load Balancerを作成して使用することで、Application LoadBalancerをよりよく理解しましょう。このデモでは、2つのEC2インスタンスを作成し、Nginx Webサーバーを両方に異なるHTML出力でデプロイし(それらを簡単に区別できます)、アプリケーションロードバランサーを作成し、これら2つのインスタンスをそのロードバランサーに登録して確認しますインスタンスにデプロイされたWebサーバーにロードバランサーDNSからアクセスできる場合。始めましょう。
ステップ1: インスタンスをPuttyまたはcmderに接続します。
ステップ2: 両方のインスタンスにNginxWebサーバーをインストールします。 Nginxをインストールするには、次のコマンドを実行します。
$ sudo apt-get update $ sudo apt install nginx $ sudo ufw app list $ sudo ufw allow'Nginx HTTP '$ sudo ufw status
インスタンスのパブリックIPをコピーし、URLなどのブラウザに貼り付けて、Nginxが正常にインストールされているかどうかを確認します。
ステップ3 :両方のインスタンスでのデプロイメント間の混乱を避けるために、NginxWebサーバーのHTML出力を変更します。
$ cd / var / www / html $ sudo vi index.nginx-debian.html
H1タグの内容を「WelcometoNginx! –サーバー1インチ。他のインスタンスでも同じことを行いますが、「Welcome to Nginx! –サーバー2インチ。
ステップ4: アプリケーションロードバランサーを作成します。ナビゲーションペインの[ 負荷分散 、選択 ロードバランサー をクリックします 作成する アプリケーションロードバランサーの下。
バイナリをintjavaに変換します
別のページに移動します。選択してください ロードバランサーを作成する そこ。
ロードバランサーを構成しましょう。 [名前]に、ロードバランサーに付ける名前を入力します。スキームの場合は、インターネット向けまたは内部を選択します。この場合、私はインターネット向けを選択しました。インターネット向けは基本的に、クライアントからのリクエストをインターネット経由でターゲットにルーティングします。
リスナーの場合、デフォルトではポート80でTCPトラフィックを受け入れますが、同じデフォルトのリスナー構成を続行します。別のリスナーを追加したい場合は、 リスナーを追加 。
[Availability Zone]で、EC2インスタンスの作成に使用したVPCを選択します。 EC2インスタンスの作成に使用される各アベイラビリティーゾーンについて、アベイラビリティーゾーンとそのアベイラビリティーゾーンのサブネットを選択します。
必要に応じて、ロードバランサーにタグを追加します。タグは、複数のロードバランサーがある場合に特に便利です。
クリック 次へ:セキュリティ設定を構成する 。警告が表示される場合がありますが、無視してかまいません。
このステップでは、ロードバランサーのセキュリティを構成できます。次のいずれかを実行できます。 新しいセキュリティグループを作成する または 既存のセキュリティグループを選択します 。この場合、既存のセキュリティグループを選択しました。
セキュリティ構成が完了したら、をクリックします 次へ:ルーティングを構成する 。を選択 新しいターゲットグループ。 追加します 名前 あなたはあなたを与えたいです ターゲットグループ 。を選択 ターゲットタイプ インスタンスをアタッチしているので、インスタンスとして。アプリケーションロードバランサーでは、IPアドレスとLambda関数をアタッチすることもできます。しましょう プロトコル そして ポート デフォルトのものになります。
何も変更していません ヘルスチェック そして 高度なヘルスチェック どちらか。デフォルト設定で十分です。
クリック 次へ:ターゲットを登録する ターゲット(この場合はインスタンス)をロードバランサーに追加します。
ターゲットとして追加するインスタンスを選択し、をクリックします 登録に追加します。
これで、ターゲット(インスタンス)がロードバランサーに登録されました。
クリック 次へ:レビュー 。ロードバランサーを確認し、最後にをクリックします 作成する 。
スコープ演算子c ++
これでロードバランサーが作成され、ステータスを確認できます。
Yayyy !!これで、アプリケーションロードバランサーが正常に作成されました。それが実際に機能しているかどうかを確認しましょう。
ステップ5: ロードバランサーのDNS名をコピーして、URLなどのブラウザーに貼り付けます。最初のインスタンスの出力が表示されます。
次に、別のブラウザに移動して同じDNS名を貼り付けると、2番目のインスタンスの出力が表示されます。
これは、ロードバランサーが2つのインスタンスの負荷を分散していることを示しています。両方のEC2インスタンスの負荷は、このロードバランサーによって処理されます。ロードバランサーの動作をテストするもう1つの方法は、1つのインスタンスをシャットダウンし、そのデプロイがロードバランサーのDNSにデプロイされているかどうかを確認することです。
これで、このApplication LoadBalancerブログは終わりです。アマゾンが提供するこの素晴らしいサービスの背後にある概念を皆さんが理解してくれたことを願っています。このようなブログの詳細については、「 '。
クラウドコンピューティングについてさらに学び、クラウドコンピューティングでのキャリアを築きたい場合は、 インストラクター主導のライブトレーニングと実際のプロジェクト経験が付属しています。このトレーニングは、クラウドコンピューティングを深く理解し、主題をマスターするのに役立ちます。
質問がありますか?コメントセクションでそれを述べてください、そして、我々はあなたに返事をするか、あなたの質問をで投稿します 。 Edureka Communityには、100,000人以上の技術狂信者が支援する準備ができています。