このブログは、Azure Developer Experience のエンジニアリング パートナー ディレクター、Ashish Shah 氏との共同編集です。
Azure Load Testing の一般提供の開始を発表します。Azure Load Testing はフルマネージドのロード テスト サービスであり、大規模な負荷の生成、実用的な分析情報の取得、お使いのアプリケーションとサービスの回復性の確保を、ホスティングされている場所に関係なく行うことができます。開発者、テスト担当者、エンジニアリング チームはこれを使用して、アプリケーションのパフォーマンス、スケーラビリティ、容量を最適化できます。
URL を使用してお使いの Web アプリケーションのロード テストをすばやく作成し、今すぐ Azure Load Testing の使用を始めましょう。既に JMeter を活用したロード テストを行っている場合は、既存の Apache JMeter テスト スクリプトを再利用することで簡単に始めることができます。
開発者ワークフローへの回復性テストの組み込み
Microsoft の目標は、開発者がより少ない労力でより多くのことを行えるようにすることです。 パフォーマンス、スケーラビリティ、または回復性の問題が運用環境、または運用環境に近いところで確認された場合、解決は非常に困難でコストがかかる可能性があります。Azure Load Testing を使用することで、開発者は、開発者ワークフローの一部として、コード作成時に近い段階で問題を把握することができ、貴重な時間とエネルギーを節約することができます。
"クラウド エコシステム セキュリティ チームは、品質のシフト レフト構想の一環として、CI/CD パイプラインの一部として Azure Load Testing を使用して運用ビルドをゲートすることにより、複数の特別な負荷関連バグが運用環境に到達することを防ぐことができました。また、サービス チームは、Azure Load Testing の負荷と Azure Chaos Studio のフォールト インジェクション シナリオを組み合わせて、通常のテスト フレームワークでは捕捉が難しい、好ましくないシナリオの複製、根本原因の特定、防止を実現できました。Azure Load Testing を使用することで、サービス回復性を検証し、分散したシステムの境界を明らかにし、未使用のリソースやフレームワークを排除することでコストを削減できました。" — Microsoft Cloud Ecosystem Security エンジニアリング チーム
"Azure Synapse チームは Azure Load Testing を使用して、Synapse SQL Serverless エンドポイントをターゲットに、高コンカレンシーから大規模入力データのシーケンシャル実行まで、さまざまなレベルのワークロードを生成しています。JMeter の柔軟性により、クラスター内で他のサービスを開始/停止してさまざまなフォールトを挿入することができるため、サービスの耐障害性を真にテストすることができます。" — Microsoft Azure Synapse エンジニアリング チーム
必要な分だけお支払い
顧客トラフィックの急増に対するアプリケーションとサービスの回復性を確保しながら、インフラストラクチャを最適化できます。Azure Load Testing を活用して、運用開始前にインフラストラクチャを最適化し、予想される顧客トラフィックを計画し、必要な分だけをお支払いいただけます。その後、Azure Load Testing を活用して、計画外の負荷の増加に対するテストを行うことができます。
図 1:Azure Load Testing の負荷を簡単にスケーリングして、アプリケーションとサービスの回復性を確認できます。
回帰テスト
Azure ベースのアプリケーションの場合、Azure Load Testing によって詳細なリソース メトリクスが収集されるため、Azure アプリケーション コンポーネント全体のパフォーマンス ボトルネックを特定できます。継続的インテグレーションと継続的デプロイ (CI/CD) ワークフローの一部としてロード テストを実行することにより、回帰テストを自動化することができます。
図 2: 成功/失敗条件を使用して、ロード テストを開発者ワークフローに組み込むことができます。
Azure 固有の分析情報は、さまざまな負荷のシナリオがお客様のアプリケーションのすべての部分にどのような影響を与えるかを理解するのに役立ちます。また、異なるロード テスト間でテスト結果を比較して、時間経過による動作の変化を理解することができます。
Azure Load Testing では、Azure Monitor を使用して、アプリケーション分析情報やコンテナー分析情報などの監視データが作成され、Azure サービスからの詳細情報を取得できます。サービスの種類に応じて、異なるメトリクスが利用できます。たとえば、データベースの読み込み回数、HTTP レスポンスの種類、コンテナーのリソース消費量などです。クライアント側とサーバー側の両方のメトリクスを、Azure Load Testing ダッシュボードで利用できます。
図 3:Azure Load Testing を使用して、クライアントと Azure サービス側のメトリック全体のパフォーマンス分析情報を取得できます。
高度なロード テスト シナリオを有効にする
より高度なロード テスト シナリオに対応するため、人気のあるオープンソースの負荷およびパフォーマンス ツールである JMeter ベースのロード テストを作成することができます。たとえば、テスト計画は、複数のアプリケーション要求で構成される場合や、より動的なテストにするための入力データとパラメーターで構成される場合があります。また、既存の JMeter のテスト スクリプトがあれば、それを再利用して Azure Load Testing でロード テストを作成することができます。
図 4: Azure Load Testing のアーキテクチャ概要。
プレビュー以降の変更点
Azure Load Testing の開始以来、Microsoft はお客様からのフィードバックに基づいて、いくつかの新機能を有効にしました。
クイック テストの作成
- URL を使用した Azure Load Testing のクイック テスト作成。クイック テストを作成すると、JMeter スクリプトを使用せずにロード テストを作成できます。これにより、URL を 5 分以内に設定、実行、テストできます。
Azure SDK Load Testing ライブラリ
- .NET Azure Load Testing ライブラリ
- Java Azure Load Testing ライブラリ
- JavaScript Azure Load Testing ライブラリ
- Python Azure Load Testing ライブラリ
JMeter の機能
- ユーザー指定の JMeter プロパティのサポート。ユーザー指定の JMeter プロパティがサポートされ、ロード テストがより構成しやすくなります。
- 複数のテスト エンジン間で入力データを分割する。JMeter スクリプトで CSV データを使用している場合は、複数のテスト エンジン間で入力データを並列に処理できます。Azure Load Testing を使用すると、すべてのエンジン インスタンスにデータを均等に分割するようにテストを構成できます。
認証、ユーザーマネージド ID、カスタマー マネージド キー
- クライアント証明書による認証。Azure Load Testing では、クライアント証明書を必要とするアプリケーション エンドポイントを認証できるようになりました。
- オンプレミスでホストされているプライベート エンドポイントまたはアプリケーションをテストする。Azure Load Testing を使用すると、オンプレミスでホストするプライベート アプリケーション エンドポイントまたはアプリケーションをテストできます。
- システム割り当てマネージド ID とユーザー割り当てマネージド ID。Azure Load Testing では、システム割り当てとユーザー割り当ての両方のマネージド ID がサポートされるようになりました。
- カスタマー マネージド キー。Azure Load Testing では、カスタマー マネージド キーがサポートされます。
追加のメトリック
- 成功/失敗条件の追加のクライアント側メトリック。Azure Load Testing を使用すると、1 秒あたりの要求の追加のクライアント側メトリックや待機時間など、成功/失敗条件メトリックを活用できます。
- 負荷エンジンのメトリックを表示。実行中にエンジンの正常性メトリックを表示してテスト エンジンのパフォーマンスを把握し、テスト結果の信頼性を高め、テスト構成を改善する機能。
コンプライアンスと提供されるリージョン
- Azure Load Testing は HITRUST 認定です。
- Azure Load Testing の利用可能リージョン。Azure Load Testing は次の 11 のリージョンで利用できるようになりました: オーストラリア東部、東アジア、米国東部、米国東部 2、北ヨーロッパ、米国中南部、スウェーデン中部、英国南部、西ヨーロッパ、米国西部 2、米国西部 3。
Azure Load Testing を開始する
Azure portal で Azure Load Testing リソースを作成することで、Azure Load Testing の使用を開始することができます。Azure Load Testing のドキュメントを確認して、最初のロード テストを作成してみましょう。
価格の詳細については、Azure Load Testing の価格ページをご覧ください。
新しい DevOps Lab エピソード Azure Load Testing の新機能をご覧ください。
DevOps Lab での Azure Load Testing
図 5:Azure Load Testing の新機能 (April Edwards と Nikita Nallamothu による)
フィードバックのお願い
フィードバック フォーラムでお客様のご意見をお待ちしています。