エクスポート (0) 印刷
すべて展開

Windows Azure の Visual Studio ロード テストの概要

ここでは、ロード テストの主要なコンポーネントについて説明します。アプリケーションのアーキテクチャに関する一般的な情報については、「Windows Azure で実行しているエージェントでのロード テスト – パート 1」を参照してください。Visual Studio のロード テストの概要については、「ロード テストの概要」を参照してください。

note
このドキュメントでは、ほぼ "純粋な" ソリューションについて説明しています。Visual Studio のコピーを除き、ロード テストのコンポーネントは Windows Azure のワーカー ロールとして実行されます。この "ほぼ純粋な" シナリオ以外には、いずれかのコンポーネントを混在環境で実行またはホストするシナリオがあります。たとえば、テスト コントローラーをオンプレミスで実行し、エージェントをワーカー ロールで実行する場合などです。また、ロード テストのデータを Windows Azure SQL データベースに格納する場合もあります。つまり、Windows Azure のロール、SQL データベース、およびオンプレミスにロード テストのコンポーネントを分散させることができます。これらの方法でセットアップを行う場合の詳細については、「混在環境でのロード テストの実行」を参照してください。

利点

ここでは、概要について説明する前に、Windows Azure で Visual Studio のロード テストを使用する利点をいくつか紹介します。

導入コスト
初期投資後は、ロード テストを実行するコストが大幅に少なくなります。最初に、Visual Studio Ultimate のコストとロード テスト機能を使用するライセンスのコストがかかります。その後、ロード テストのハーネスとして Visual Studio プロジェクトを作成します。Windows Azure サブスクリプションと、Web ロールやワーカー ロールを必要に応じて配置して実行できる容量が必要になります。これらのコストは、ハードウェアの保有コストとそれに付随するすべてのコストを合計したものと同じくらいになります (これには、ソフトウェア費用、電気代、データ センター使用料、人件費など、システム全体の維持費が含まれます)。

メンテナンス コスト
ここで紹介する手順を使用すると、ロード テスト用の保守が簡単なハーネスを作成できます。作成後のプロジェクトの更新は、当面は最小限で済みます。

柔軟性
ロード テストは、シナリオや状況に応じて簡単に変更できます。たとえば、Azure でホストされるサーバーを構成してワーカー ロールを増やすことができます。各ロールをテスト エージェントとして使用して負荷の増加に対応できます。

繰り返し可能
初期投資後も、最小限の時間とコストで、各種の別のテストにロード テストを使用することができます。テスト プロジェクトを再構成して Windows Azure に再配置するだけで、必要に応じて、テストの実行と配置解除を繰り返すことができます。

再現性
大規模なデータ センターでサービスをホストするため、システムの同時実行性が大幅に高まります (同時実行性の詳細についてはこの後に説明します)。最終的なアプリケーションを Windows Azure でホストすると、最終的な配置を忠実に再現できます。

同時実行

同時実行性とは、複数のタスクを同時に実行できる (場合によっては相互作用も可能な) システムの特性のことです。同時実行性を制限する要素は、利用可能な IP アドレスの数です。システムで利用できる IP アドレスが多いほど、同時実行性が高くなります。一般に、利用できるアドレスの数は IP プロバイダーの規模で決まります。充実したサービス レベル契約であれば、通常は多数の IP アドレスが割り当てられますが、そのような契約は一般的ではありません。ただし、Windows Azure をプラットフォームとして使用すると、マイクロソフトのデータ センターとそのリソースを使用できるという利点があります。これには大規模な IP アドレスのプールも含まれます。Windows Azure でホストされるサービスには、仮想 IP アドレスが割り当てられます。ここで言う IP アドレスとは、ホストされるサービスではなく、外部 (インターネット) への負荷分散で使用されるものです。さらに、マイクロソフトのデータ センターには数が多いという利点もあります。また、このレベルの同時実行性がすべてのシステムで求められるわけではありません。これは、同時実行性が高いシステムをテストする場合にしか得られない利点です。

この同時実行性の向上は、Windows Azure でロード テストを実行する大きな利点の 1 つです。このレベルの同時実行性を大規模なデータ センター以外で再現することは非常に困難です。

概要

次の図は、ロード テストのコンポーネントを示したものです。ロード テストの構成、およびその開始や制御には、Visual Studio Ultimate のコピーを使用します。また、Visual Studio に、テスト結果のグラフィカルなビューも用意されています。ロード テストは、テスト コントローラー、テスト エージェント、およびテスト対象のシステムで構成されます。テスト コントローラーとエージェントは、Windows Azure データ センターでワーカー ロールとして実行されます。ロード テストのコンポーネントは、テスト対象のシステムを除き、すべて同じ Windows Azure Connect グループに属している必要があります。これにより、コンポーネント間の通信や Visual Studio インスタンスとの通信を自由に行えるようになります。テスト対象のシステムをホストするコンピューターのパフォーマンス カウンターを追跡するカウンターを作成するには、それらのコンピューターを Windows Azure Connect グループに含めます。

基本ロード テスト構成

ロード テストでは、いくつかの主要なテクノロジを使用します。ロード テストのそれらの機能については、このドキュメントで後ほど説明します。ダウンロードする必要があるコンポーネントについては、「Windows Azure ロード テストの前提条件とセットアップ」を参照してください。

Azure Management Portal

ロード テストで使用する主な構造の作成と管理には、Management Portal を使用します。具体的には、Azure の次の機能を使用します。

Azure ホステッド サービス
ロード テスト アプリケーションを実行するホステッド サービスを作成します。アプリケーションは 2 つのワーカー ロールで構成されます。1 つ目は、単一インスタンスのテスト コントローラーをホストするロールです。コントローラーにより、ロード テストのリモート実行が有効になります。もう 1 つは、1 つのエージェントをホストするロールです。エージェント ロールのインスタンスは、Azure のインスタンス機能を使用して必要な数だけ作成できます。詳細については、「ロール インスタンスの数を増減することによってアプリケーションの規模を調整する方法」を参照してください。

ストレージ アカウント
ワーカー ロールで実行される圧縮されたコードを保持するために、Windows Azure ストレージ アカウントが必要です。ストレージの BLOB には、3 種類の .zip ファイルが格納されます。SQL Express のセットアップ ソフトウェアを含むファイル、コントローラーのコードを含むファイル、エージェントのコードを含むファイルの 3 つです。ストレージ アカウントの作成に関する詳細については、「Windows Azure サブスクリプションのストレージ アカウントを作成する方法」を参照してください。

Connect グループ
コントローラーとエージェントの間の通信を有効にするには、Connect グループを作成します。Connect 機能は、コントローラーでエージェントの処理を実行できる仮想プライベート ネットワークとして機能します。また、エージェントからコントローラーにテスト結果を返すこともできます。Connect グループを使用すると、オンプレミスの Visual Studio のコピーからコントローラーを実行することもできます。詳細については、「Windows Azure Connect の概要」を参照してください。

さらに、Azure ポータルに 2 種類の X.509 証明書をアップロードします。これらの証明書は、オンプレミスのコンピューターと Azure ポータルの間のデータ ストリームを認証および暗号化するために必要です。最初の証明書は、Visual Studio から Azure へのアプリケーションの直接のパブリッシュを有効にするために使用されます。この証明書のことを Azure では管理証明書と呼びます。もう 1 つの証明書は、オンプレミスのコンピューターと Azure のワーカー ロールの間のリモート デスクトップ接続を有効にするために使用されます。この証明書のことを Azure ではサービス証明書と呼びます。

Visual Studio Ultimate

Visual Studio Ultimate は開発環境の 1 つで、ロード テスト機能を使用できる唯一のバージョンです。Visual Studio のバージョンの比較については、「Visual Studio 2010 の比較」を参照してください。Visual Studio Ultimate を使用して、アプリケーションのロード テストを実行するテスト スクリプトを作成することができます。

Visual Studio には、コントローラーをリモートで管理する機能もあります。リモート コントローラーは、Azure 以外の場合は、別のコンピューターで実行します。Azure の場合は、クラウドのワーカー ロールで実行します。

SQL Server 2012 Express Edition

エージェントから収集したデータを格納するためのデータベースが必要になりますが、ロード テストのプログラムでは、無償版の SQL Server 2012 Express が既定で使用されます。そのため、コントローラーのソフトウェアを実行しているワーカー ロールにデータベース エンジンを配置するだけで済みます。セットアップは、RoleEntryPoint.OnStart メソッドのコードを使用して実行されます。

SQL データ ファイルは、ロールを再利用するとデータが失われるため、ワーカー ロールの仮想ハード ドライブには配置できません。書き込みを行うすべてのロール用に共有ドライブをマウントすることをお勧めします。詳細については、「SMB を使用した複数のロール間での Windows Azure ドライブの共有」を参照してください。

もう 1 つの方法として、SQL データベースを使用する方法もあります。loadtest2010.dacpac ファイルをダウンロードして、SQL データベースでデータベースをプロビジョニングします。詳細については、「混在環境でのロード テストの実行」を参照してください。

必要なコンポーネントの編成

最初に、Azure ポータルのプロビジョニングとアプリケーションの構成に必要なソフトウェアをダウンロードします。ダウンロードの詳細については、「Windows Azure ロード テストの前提条件とセットアップ」を参照してください。

Windows Azure のプロビジョニングとアプリケーションの構成

追加のソフトウェアをすべてダウンロードしたら、次に示す手順に従って、Windows Azure ポータルをプロビジョニングし、アプリケーションを構成できます。各手順の詳細については、「ロード テストのための Windows Azure のプロビジョニング」を参照してください。

  1. 新しいホステッド サービス、ストレージ アカウント、および Connect 仮想ネットワークを使用して、Windows Azure ポータルをプロビジョニングします。

  2. ストレージとホステッド サービスのアカウントを作成したら、Windows Azure ポータルから取得した値を使用してアプリケーションを構成します。

  3. ワーカー ロールに自動的にインストールされるソフトウェアが格納された 3 つの .zip ファイルを作成します。

    アプリケーションでは、コントローラーとエージェントの両方のソフトウェアをワーカー ロールで実行する必要があります。コントローラーとエージェントを作成するためのソフトウェアは、事前に作成されているものをダウンロードして使用できます。ワーカー ロールにソフトウェアを読み込むには、まず、テスト コントローラーとエージェントのソフトウェアを含む 2 つの .zip ファイルを作成します。.zip ファイルは任意のツール (無料のものもあります) を使用して作成できます。.zip ファイルを作成したら、Windows Azure ストレージ アカウントにファイルをアップロードします。アプリケーションの実行時に、ストレージから .zip ファイルが取得され、展開されてワーカー ロールに読み込まれます。

    もう 1 つ、SQL Server 2008 SQL Express のセットアップ パッケージを含む .zip ファイルを作成する必要があります。コントローラーとエージェントのパッケージと同様に、SQL Server セットアップが自動的に実行され、SQL Express のインスタンスがワーカー ロールに配置されます。

  4. Azure ストレージ アカウントに .zip ファイルをアップロードします。この作業には、ストレージ サービス クライアントという無料でダウンロードできるプロジェクトを使用します。

  5. Windows Azure ポータルで Windows Azure Connect グループを作成します。

  6. コントローラー ロールへの接続に使用するコンピューターに Connect エンドポイントをインストールします。

  7. Connect のアクティブ化トークンを使用してアプリケーションを構成します。このトークンを使用して、ワーカー ロールを Connect グループに含めることができます。

アプリケーションのパブリッシュ

ポータルのプロビジョニングとアプリケーションの構成をどちらも適切に行ったら、Windows Azure にアプリケーションをパブリッシュできます。詳しい手順については、「Windows Azure へのロード テストのパブリッシュ」を参照してください。

  1. Windows Azure サブスクリプション ID を取得します。この ID を使用して、Visual Studio からアカウントにアプリケーションをアップロードできます。

  2. 管理証明書を作成してアップロードします。手順は次のとおりです。

    1. [Windows Azure のパブリッシュ] ダイアログ ボックスで、新しい管理証明書を作成します。この証明書により、アプリケーションのアップロード時に Windows Azure で承認されます。

    2. ダイアログ ボックスにサブスクリプション ID を貼り付けます。この ID により、Visual Studio でアカウントが識別されます。

  3. 管理証明書をエクスポートします。証明書をアップロードするには、コンピューターのローカル証明書キャッシュからエクスポートします。

  4. 管理証明書をアップロードします。証明書のアップロードには Management Portal を使用します。

  5. アプリケーションをパブリッシュします。

リモート デスクトップの使用

アプリケーションをパブリッシュしたら、リモート デスクトップを使用して接続します。この機能を有効にするためのツールと機能は、Visual Studio に用意されています。リモート デスクトップ接続を有効にする手順については、「Windows Azure へのロード テストのパブリッシュ」を参照してください。

次の手順

まず、「Windows Azure ロード テストの前提条件とセットアップ」を参照して、ソリューションのツールとコンポーネントをダウンロードします。


ビルド日:

2013-07-25

コミュニティの追加

表示:
© 2014 Microsoft