アプリケーションの可用性やセキュリティを高めるために、ロードバランサーを導入している企業が多いと思います。ロードバランサーを運用しているとき、「Web サイトの表示が遅い」、「アプリケーションでエラーが発生した」、「セキュリティ上の理由でSSL の設定を見直してほしい」などの問い合わせを受けることはないでしょうか。アプリケーションオーナーはユーザーエクスペリエンスの向上を求めますし、セキュリティチームは当然セキュリティの強化を求めてきます。システムやサービスに何か問題が発生した場合、ユーザーとアプリケーションの間に位置するロードバランサーに疑いの目が向けられることも多いでしょう。このような難しい状況で的確な判断を下すためには、ロードバランサーの高度な分析と可視化の機能が欠かせません。 ロードバランサーで可視化するメリットと課題 ロードバランサーはユーザーとアプリケーションの間に設置されるため、基本的にすべてのトラフィックはロードバランサーを経由します。ルータやファイアウォールと違い、ロードバランサーは、L4/L7レイヤでクライアントとサーバのコネクションを終端し、サービスの種類によってはSSL も復号化するため、アプリケーション層の高度なレベルで可視化することができます。たとえば、クライアントのOS やブラウザの種類、アクセス先のURL、エンドツーエンドの遅延、HTTP ヘッダなどの情報を取得することができ、アプリケーションオーナーにとっても有益な情報を提供することができます。また、万が一アプリケーションで不具合が発生した場合でも、障害の切り分けや原因の究明が容易に行えます。その他にも、キャパシティプランニングやSSL 設定のチューニングを効果的に行うための情報としても活用できるでしょう。 このようにロードバランサーで可視化するメリットは大きいにもかかわらず、従来のロードバランサーではネットワーク機器としてのパフォーマンス情報を可視化することしかできませんでした。具体的には、仮想サーバのコネクション数やリクエスト数、トラフィック量、スループットなどの統計情報の可視化です。もちろん、これらも有益な情報ですが、アプリケーション層で何が起きているのか、個々のリクエスト/レスポンスであるトランザクションレベルで詳細に把握することは難しかったと思います。その背景には、従来型ロードバランサーのアーキテクチャに起因する課題がありました。コントロールプレーンとデータプレーンが一体となっている従来型のロードバランサーでは、アプリケーション層の詳細な分析・可視化をすることによって処理負荷が生じ、ロードバランサー本来のサービスへのパフォーマンス影響が避けられませんでした。そのため、アプリケーションのトランザクションレベルで何か問題が起きた場合、パケットキャプチャを実施して調査することが多かったと思います。パケットキャプチャではリアルタイムのパケットしか取得できないため、残念ながら過去にさかのぼってトラブルシューティングをするのは困難です。また、ロードバランサー上でパケットキャプチャを実施することによって生じる処理負荷も無視できません。 NSX Advanced Load Balancer の革新的な分析・可視化 VMware が提供するNSX Advanced Load Balancer では、コントロールプレーンとデータプレーンを分離したアーキテクチャを取っているため、従来型ロードバランサーの可視化の課題を克服できます。データプレーンで取得したすべてのトランザクションのログやメトリックをコントロールプレーンに送信し、コントロールプレーンで集中的に分析・可視化を行います。このようにコントロールプレーンに分析・可視化の処理負荷をオフロードすることで、データプレーンで動作するロードバランサー本来のサービスへのパフォーマンス影響は限定的になります。また、管理者はコントロールプレーンの役割を担うコントローラにアクセスすることで、オンプレミス・クラウドを問わず、すべてのアプリケーションの状態を一元的に把握することができます。 可視化のユースケース それでは、NSX Advanced Load Balancer が提供する分析・可視化の機能を活用したユースケースを紹介したいと思います。 ユースケース① Web サイトの表示が遅い原因の調査 Web サイトを通じてサービスを提供する企業が多い中、Web の表示が遅いという状況はユーザーの不満を招き、機会損失につながる可能性があります。Web が重い原因はさまざまですが、ある程度までは原因の切り分けができます。 Virtual Service のAnalytics 画面では、End to End Timing と呼ばれるユーザーエクスペリエンスを見ることができます。具体的には、クライアントとロードバランサー間の往復時間(Client RTT)、ロードバランサーとサーバ間の往復時間(Server RTT)、アプリケーションの応答時間(App Response)、データ転送時間(Data Transfer)の合計がエンドツーエンドの遅延として、ユーザーエクスペリエンスを表します。 以下の例では、午前10時から11時の間でユーザーエクスペリエンスが急激に悪化していることがわかります。エンドツーエンド遅延の内訳を見ると、Client RTT とServer RTT に変化はなく、むしろApp … 続き
The post 遂にここまで見えてきた!ロードバランサー可視化の衝撃 appeared first on VMware Japan Blog.