SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Azure Load Testingを利用した
パフォーマンステスト
2021/01/20 – 第35回 JAZUG Night
株式会社 pnop / Cloudlive 株式会社
浅見 城輝
♥BEER
About me
kuniteru.asami
Find me
Database
Microsoft Azure 2012~
Microsoft Azure
注意事項
このスライドは 2022 年 1 月 20 日 時点の情報を
基にしています
現在 Azure Load Testing は Public Preview です
本コンテンツ内で記載されていることは、
今後、変更されることが予想されます
Agenda
Azure Load Testing とは
TIPS & TRICKS
Azure Load Testing
とは
フルマネージドな
負荷テスト / 性能測定 サービス
特徴
大規模な負荷をすばやく簡単に生成
クライアントと Azure リソースの
メトリックの包括的なビュー
DevOps ワークフローへの組み込み
エンジンは Apache JMeter™
(JMeter のテストプラン ファイルを利用)
o
大規模な負荷をすばやく簡単に生成
指定した数のテストエンジン インスタンスから
テスト対象に対するリクエストを生成する
1インスタンスあたり
250 スレッド (目安)
最大 45 インスタンス
(Preview 時)
合計
11,250 スレッド
クライアントとAzureリソースのメトリックビュー
Client-side metrics
クライアント(JMeter)側のメトリック
Server-side metrics
任意の Azure リソースのメトリック
テスト結果の比較
2 つのテスト結果のグラフを
重ねて表示
DevOpsワークフローへの組み込み
Azure DevOps の Pipeline や GitHub Actions のワークフローから
Azure Load Testing でテストを実施
「平均レスポンスタイム」と「エラー率」によって、
テストの合格/不合格を判定
Azure DevOps や GitHub Actions で
設定した環境変数を
Azure Load Testing の
テストスクリプトで利用できる
エンジンは Apache JMeter™
Apache JMeter™ で作成したテスト スクリプトを
Azure Load Testing にアップロードしてテストを実施する
テスト スクリプトを作成/変更する機能は Azure Load Testing にはないの
で、自身で構築した JMeter で行う
つまりは、JMeter のノウハウが利用できる
(テスト スクリプトのスレッドグループで指定したスレッド数)
x (テストの Load configuration で Engine instances の値)
がスレッド数になる
JMeter 分散テスト環境の課題と
Azure Load Testing を利用するメリット
課題 自身で JMeter の分散テスト環境を構築する Azure Load Testing
何台のマシンを用意するか? 事前に見積もる必要があり、正しい見積もりが
難しい
不足しても追加が容易なので、厳密な見積もりは
不要
用意したマシンでは足りなかったら? 追加で調達する必要があり時間がかかる
先に用意していたものと同じスペックのものが用意
できるか?
即時に解決
テスト終了後のマシンの活用 適切な利用方法を検討しておく
(テストを継続し続けるのもあり)
考慮する必要がない
マシンコスト 購入あるいはリースなど わずかな基本料金 + 使用量に応じた従量課金
セットアップの手間 用意したすべてのマシンに対してセットアップをす
る必要がある
マシン数が多ければ多いほど大変
事 前 準 備 も 不 要 で 、 単 純 な テ ス ト で あ れ ば
数分でセットアップが完了する
長期間環境を維持する場合の保守 全てのマシンをアップデートしていく必要がある
マシン数が多ければ多いほど大変
考慮する必要がない
サーバーへの
テストパラメーターファイルの配布
全てのサーバーのディスクにコピーするのが面倒 全 て の サ ー バ ー に 展 開 す る 仕 組 み が
提供されている
TIPS & TRICKS
オフィシャルドキュメントのテスト スクリプト
オフィシャルドキュメントのクイックスタートやチュートリアルなどで提示され
ているテスト スクリプトが、通常の JMeter で読み込みエラーになる
JMeter で読み込みエラーになるテスト スクリプトの例
「クイックスタート: Azure Load Testing を使用してロード テストを作成して実行する」
https://docs.microsoft.com/ja-jp/azure/load-testing/quickstart-create-and-run-load-test#jmeter
「チュートリアル: ロード テストを実行してパフォーマンスのボトルネックを特定する」
https://docs.microsoft.com/ja-jp/azure/load-testing/tutorial-identify-bottlenecks-azure-portal#deploy-the-sample-app
https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp.jmx
https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp_Secrets.jmx
標準の JMeter では導入されていないプラグインが利用されているため
JMeter に Plugins Manager をインストールしておくことで、テストスクリプトに必要な
JMeter プラグインを判断して導入してくれる
https://jmeter-plugins.org
テスト スクリプトが利用しているプラグインがインストールされていなくても
plugins-jmeter.jar (jmeter-plugins-manager-*.*.jar) がインストールされていればOK
CSV ファイルの利用
CSV などのテストデータ ファイルを利用するには
テスト スクリプトでは設定エレメント (Config Element) の CSV Data Set
Config などでテストデータ ファイルのファイル名だけを指定
Azure Load Testing ではテスト設定の Test Plan で対象のファイルをアップ
ロードする
https://docs.microsoft.com/en-us/azure/load-testing/how-to-read-csv-data
Azure Key Vault からシークレットを取得する
GetSecret カスタム関数
Parameterize load tests with secrets and environment variables
https://docs.microsoft.com/ja-jp/azure/load-testing/how-to-parameterize-
load-tests#secrets
設定エレメントのユーザー定義変数 (Config Element > User Defined
Variables) で取得すること
JMeter で GetSecret 関数を使えるようにするプラグイン
https://github.com/pnopjp/jmeter-plugins/blob/master/docs/azure-load-
testing-stub.md
テスト結果のエクスポート
テスト結果をダウンロードして、Report Dashboard の参照や
JMeter の Listener でテスト結果を参照することができる
JMeter の Listener では ダウンロードしたテスト結果に含まれる
testreport.csv ファイルを読み込む
制限
インターネットに対して公開されているサービスに対してのみテストを実施でき
る
Azure Virtual Network 内の Virtual Machines や VNet 内からの接続のみを許可している
Azure PaaS 等はテスト対象にできない
すべてのプラグインが利用できるわけではない
jmeter-plugins.org から提供されているものは使えるものもある
任意の Java ライブラリが利用できない
SQL Server の JDBC Driver などを追加できないため、Azure SQL Database へのテストなどがで
きない
テストの合格/不合格の判定が柔軟ではない
「平均レスポンスタイム」と「エラー率」のみ
最大 11,250 スレッドが目安 (45 インスタンス x 250 スレッド)
テストスクリプトの作成には、別途 Apache JMeter™ を用意する
制限を超えたテストをしたいときは
Azure Marketplace で弊社が提供している
Load Tester (multiple remote servers) Powered by Apache JMeter™ を利用する
https://bit.ly/jmeter-azure
Azure 上に複数の JMeter 導入済み(連携済み)の仮想マシンが展開される
Azure 仮想マシン(または仮想マシンスケールセット)なので、
任意の VNet に所属し、VNet 内通信でテスト対象にアクセスも可能
任意の JMeter プラグインや Java ライブラリを導入可能 (複数サーバーへの展開も容易)
Azure DevOps や GitHub Actions からの、テスト合否判定を柔軟に設定可能
(ただし設定はやや複雑)
スレッド数を大きくするため、多くの大きな仮想マシンを構築可能
Azure Monitor などを利用してクライアントと Azure リソースの包括的なビューを作成
できる
参考ドキュメント
Azure Load Testing documentation
https://docs.microsoft.com/en-us/azure/load-testing/
Apache JMeter
https://jmeter.apache.org/
まとめ
Azure Load Testing は、Apache JMeter™ で実装された
フルマネージドな負荷テストサービス
大規模な負荷の作成が容易
Azure DevOps / GitHub Actions から利用しやすい
わずかな基本料金 + 使用料に応じたの従量課金
pnop 社 Microsoft Azure プロフェッショナルサービス
23
コンサルティング
技術検証
性能検証
PoC, アセスメント
テクニカルライティング
講師 / セミナー登壇
開発
環境構築
サポート
トラブルシューティング
パフォーマンス
チューニング
移行 / ポーティング
オンプレミス → Azure
Linux → Windows
他DB → Azure SQL DB
営業支援
見積支援
【お問い合わせ】株式会社 pnop Azure営業部 sales@pnop.co.jp
http://www.pnop.co.jp/

Contenu connexe

Tendances

サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-RetryフレームワークY Watanabe
 
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせKuniteru Asami
 
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DBJAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DBDaiyu Hatakeyama
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識Minoru Naito
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてShinya Yamaguchi
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Takeshi Fukuhara
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Toru Makabe
 
AWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティスAWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティスAmazon Web Services Japan
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様Shuji Kikuchi
 
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか? [SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか? de:code 2017
 

Tendances (20)

サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
クラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーククラウド時代だからSpring-Retryフレームワーク
クラウド時代だからSpring-Retryフレームワーク
 
現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ現場からみた Azure リファレンスアーキテクチャ答え合わせ
現場からみた Azure リファレンスアーキテクチャ答え合わせ
 
JAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DBJAZUG12周年 俺の Azure Cosmos DB
JAZUG12周年 俺の Azure Cosmos DB
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法についてAzure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
Azure AD とアプリケーションを SAML 連携する際に陥る事例と対処方法について
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
Microsoft Azure Storage 概要
Microsoft Azure Storage 概要Microsoft Azure Storage 概要
Microsoft Azure Storage 概要
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊
 
AWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティスAWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティス
 
[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様[AKIBA.AWS] VGWのルーティング仕様
[AKIBA.AWS] VGWのルーティング仕様
 
M04_失敗しないための Azure Virtual Desktop 設計ガイド
M04_失敗しないための Azure Virtual Desktop 設計ガイドM04_失敗しないための Azure Virtual Desktop 設計ガイド
M04_失敗しないための Azure Virtual Desktop 設計ガイド
 
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか? [SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
[SC03] Active Directory の DR 対策~天災/人災/サイバー攻撃、その時あなたの IT 基盤は利用継続できますか?
 

Similaire à Azure load testingを利用したパフォーマンステスト

Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
負荷試験入門公開資料 201611
負荷試験入門公開資料 201611負荷試験入門公開資料 201611
負荷試験入門公開資料 201611樽八 仲川
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発lalha
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS AzureIssei Hiraoka
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesKazushi Kamegawa
 
最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみたHiroyuki Mori
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例Takeshi Kondo
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713Shotaro Suzuki
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Excel on OneDrive is not a file
Excel on OneDrive is not a fileExcel on OneDrive is not a file
Excel on OneDrive is not a fileTakao Tetsuro
 
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション智治 長沢
 
Logic Apps と Api Apps の話
Logic Apps と Api Apps の話Logic Apps と Api Apps の話
Logic Apps と Api Apps の話Sunao Tomita
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIAkyon mm
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編Daiyu Hatakeyama
 

Similaire à Azure load testingを利用したパフォーマンステスト (20)

Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
負荷試験入門公開資料 201611
負荷試験入門公開資料 201611負荷試験入門公開資料 201611
負荷試験入門公開資料 201611
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure PipelinesAzure DevOps Online Vol.3 - Inside Azure Pipelines
Azure DevOps Online Vol.3 - Inside Azure Pipelines
 
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
 
最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713Dell emc azurestackはじめの一歩20170713
Dell emc azurestackはじめの一歩20170713
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
CLRH_120414_WFTDD
CLRH_120414_WFTDDCLRH_120414_WFTDD
CLRH_120414_WFTDD
 
Excel on OneDrive is not a file
Excel on OneDrive is not a fileExcel on OneDrive is not a file
Excel on OneDrive is not a file
 
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション
 
Logic Apps と Api Apps の話
Logic Apps と Api Apps の話Logic Apps と Api Apps の話
Logic Apps と Api Apps の話
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIA
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 

Plus de Kuniteru Asami

スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQLスケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQLKuniteru Asami
 
Understanding Azure Application Gateway
Understanding Azure Application GatewayUnderstanding Azure Application Gateway
Understanding Azure Application GatewayKuniteru Asami
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Kuniteru Asami
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual networkKuniteru Asami
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Kuniteru Asami
 
Introduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLIntroduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLKuniteru Asami
 
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-Kuniteru Asami
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所Kuniteru Asami
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターンKuniteru Asami
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスKuniteru Asami
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年Kuniteru Asami
 
SMTPサービス SendGridを契約する
SMTPサービス SendGridを契約するSMTPサービス SendGridを契約する
SMTPサービス SendGridを契約するKuniteru Asami
 
インストールマニアックス振り返り
インストールマニアックス振り返りインストールマニアックス振り返り
インストールマニアックス振り返りKuniteru Asami
 
第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナルKuniteru Asami
 

Plus de Kuniteru Asami (16)

スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQLスケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
 
Understanding Azure Application Gateway
Understanding Azure Application GatewayUnderstanding Azure Application Gateway
Understanding Azure Application Gateway
 
Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編Azure PaaS とのよりセキュアな接続 - 初級編
Azure PaaS とのよりセキュアな接続 - 初級編
 
あらためて Azure virtual network
あらためて Azure virtual networkあらためて Azure virtual network
あらためて Azure virtual network
 
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
Azure Virtual Machines設計の勘所 | Microsoft Tech Summit 2017
 
Introduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQLIntroduction of Azure Database for MySQL / PostgreSQL
Introduction of Azure Database for MySQL / PostgreSQL
 
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
クラウド時代のWordPressプラットフォーム -WordCamp Tokyo 2016-
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン実プロジェクトの経験から学ぶazureサービス適用パターン
実プロジェクトの経験から学ぶazureサービス適用パターン
 
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンスCDP 勉強会 - Multiple Datacenter Deployment ガイダンス
CDP 勉強会 - Multiple Datacenter Deployment ガイダンス
 
クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年クラウド案件の作り方 for azureしなの4周年
クラウド案件の作り方 for azureしなの4周年
 
AzureでOracle
AzureでOracleAzureでOracle
AzureでOracle
 
SMTPサービス SendGridを契約する
SMTPサービス SendGridを契約するSMTPサービス SendGridを契約する
SMTPサービス SendGridを契約する
 
インストールマニアックス振り返り
インストールマニアックス振り返りインストールマニアックス振り返り
インストールマニアックス振り返り
 
PHP on Azure
PHP on AzurePHP on Azure
PHP on Azure
 
第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル第2回JAZUG総会 LT インストールマニアックス・ファイナル
第2回JAZUG総会 LT インストールマニアックス・ファイナル
 

Azure load testingを利用したパフォーマンステスト

  • 1. Azure Load Testingを利用した パフォーマンステスト 2021/01/20 – 第35回 JAZUG Night 株式会社 pnop / Cloudlive 株式会社 浅見 城輝
  • 3. 注意事項 このスライドは 2022 年 1 月 20 日 時点の情報を 基にしています 現在 Azure Load Testing は Public Preview です 本コンテンツ内で記載されていることは、 今後、変更されることが予想されます
  • 4. Agenda Azure Load Testing とは TIPS & TRICKS
  • 7. 特徴 大規模な負荷をすばやく簡単に生成 クライアントと Azure リソースの メトリックの包括的なビュー DevOps ワークフローへの組み込み エンジンは Apache JMeter™ (JMeter のテストプラン ファイルを利用)
  • 9. クライアントとAzureリソースのメトリックビュー Client-side metrics クライアント(JMeter)側のメトリック Server-side metrics 任意の Azure リソースのメトリック テスト結果の比較 2 つのテスト結果のグラフを 重ねて表示
  • 10. DevOpsワークフローへの組み込み Azure DevOps の Pipeline や GitHub Actions のワークフローから Azure Load Testing でテストを実施 「平均レスポンスタイム」と「エラー率」によって、 テストの合格/不合格を判定 Azure DevOps や GitHub Actions で 設定した環境変数を Azure Load Testing の テストスクリプトで利用できる
  • 11. エンジンは Apache JMeter™ Apache JMeter™ で作成したテスト スクリプトを Azure Load Testing にアップロードしてテストを実施する テスト スクリプトを作成/変更する機能は Azure Load Testing にはないの で、自身で構築した JMeter で行う つまりは、JMeter のノウハウが利用できる (テスト スクリプトのスレッドグループで指定したスレッド数) x (テストの Load configuration で Engine instances の値) がスレッド数になる
  • 12. JMeter 分散テスト環境の課題と Azure Load Testing を利用するメリット 課題 自身で JMeter の分散テスト環境を構築する Azure Load Testing 何台のマシンを用意するか? 事前に見積もる必要があり、正しい見積もりが 難しい 不足しても追加が容易なので、厳密な見積もりは 不要 用意したマシンでは足りなかったら? 追加で調達する必要があり時間がかかる 先に用意していたものと同じスペックのものが用意 できるか? 即時に解決 テスト終了後のマシンの活用 適切な利用方法を検討しておく (テストを継続し続けるのもあり) 考慮する必要がない マシンコスト 購入あるいはリースなど わずかな基本料金 + 使用量に応じた従量課金 セットアップの手間 用意したすべてのマシンに対してセットアップをす る必要がある マシン数が多ければ多いほど大変 事 前 準 備 も 不 要 で 、 単 純 な テ ス ト で あ れ ば 数分でセットアップが完了する 長期間環境を維持する場合の保守 全てのマシンをアップデートしていく必要がある マシン数が多ければ多いほど大変 考慮する必要がない サーバーへの テストパラメーターファイルの配布 全てのサーバーのディスクにコピーするのが面倒 全 て の サ ー バ ー に 展 開 す る 仕 組 み が 提供されている
  • 14. オフィシャルドキュメントのテスト スクリプト オフィシャルドキュメントのクイックスタートやチュートリアルなどで提示され ているテスト スクリプトが、通常の JMeter で読み込みエラーになる JMeter で読み込みエラーになるテスト スクリプトの例 「クイックスタート: Azure Load Testing を使用してロード テストを作成して実行する」 https://docs.microsoft.com/ja-jp/azure/load-testing/quickstart-create-and-run-load-test#jmeter 「チュートリアル: ロード テストを実行してパフォーマンスのボトルネックを特定する」 https://docs.microsoft.com/ja-jp/azure/load-testing/tutorial-identify-bottlenecks-azure-portal#deploy-the-sample-app https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp.jmx https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck/blob/main/SampleApp_Secrets.jmx 標準の JMeter では導入されていないプラグインが利用されているため JMeter に Plugins Manager をインストールしておくことで、テストスクリプトに必要な JMeter プラグインを判断して導入してくれる https://jmeter-plugins.org テスト スクリプトが利用しているプラグインがインストールされていなくても plugins-jmeter.jar (jmeter-plugins-manager-*.*.jar) がインストールされていればOK
  • 15. CSV ファイルの利用 CSV などのテストデータ ファイルを利用するには テスト スクリプトでは設定エレメント (Config Element) の CSV Data Set Config などでテストデータ ファイルのファイル名だけを指定 Azure Load Testing ではテスト設定の Test Plan で対象のファイルをアップ ロードする https://docs.microsoft.com/en-us/azure/load-testing/how-to-read-csv-data
  • 16. Azure Key Vault からシークレットを取得する GetSecret カスタム関数 Parameterize load tests with secrets and environment variables https://docs.microsoft.com/ja-jp/azure/load-testing/how-to-parameterize- load-tests#secrets 設定エレメントのユーザー定義変数 (Config Element > User Defined Variables) で取得すること JMeter で GetSecret 関数を使えるようにするプラグイン https://github.com/pnopjp/jmeter-plugins/blob/master/docs/azure-load- testing-stub.md
  • 17. テスト結果のエクスポート テスト結果をダウンロードして、Report Dashboard の参照や JMeter の Listener でテスト結果を参照することができる JMeter の Listener では ダウンロードしたテスト結果に含まれる testreport.csv ファイルを読み込む
  • 18. 制限 インターネットに対して公開されているサービスに対してのみテストを実施でき る Azure Virtual Network 内の Virtual Machines や VNet 内からの接続のみを許可している Azure PaaS 等はテスト対象にできない すべてのプラグインが利用できるわけではない jmeter-plugins.org から提供されているものは使えるものもある 任意の Java ライブラリが利用できない SQL Server の JDBC Driver などを追加できないため、Azure SQL Database へのテストなどがで きない テストの合格/不合格の判定が柔軟ではない 「平均レスポンスタイム」と「エラー率」のみ 最大 11,250 スレッドが目安 (45 インスタンス x 250 スレッド) テストスクリプトの作成には、別途 Apache JMeter™ を用意する
  • 19. 制限を超えたテストをしたいときは Azure Marketplace で弊社が提供している Load Tester (multiple remote servers) Powered by Apache JMeter™ を利用する https://bit.ly/jmeter-azure Azure 上に複数の JMeter 導入済み(連携済み)の仮想マシンが展開される Azure 仮想マシン(または仮想マシンスケールセット)なので、 任意の VNet に所属し、VNet 内通信でテスト対象にアクセスも可能 任意の JMeter プラグインや Java ライブラリを導入可能 (複数サーバーへの展開も容易) Azure DevOps や GitHub Actions からの、テスト合否判定を柔軟に設定可能 (ただし設定はやや複雑) スレッド数を大きくするため、多くの大きな仮想マシンを構築可能 Azure Monitor などを利用してクライアントと Azure リソースの包括的なビューを作成 できる
  • 20. 参考ドキュメント Azure Load Testing documentation https://docs.microsoft.com/en-us/azure/load-testing/ Apache JMeter https://jmeter.apache.org/
  • 21. まとめ Azure Load Testing は、Apache JMeter™ で実装された フルマネージドな負荷テストサービス 大規模な負荷の作成が容易 Azure DevOps / GitHub Actions から利用しやすい わずかな基本料金 + 使用料に応じたの従量課金
  • 22. pnop 社 Microsoft Azure プロフェッショナルサービス 23 コンサルティング 技術検証 性能検証 PoC, アセスメント テクニカルライティング 講師 / セミナー登壇 開発 環境構築 サポート トラブルシューティング パフォーマンス チューニング 移行 / ポーティング オンプレミス → Azure Linux → Windows 他DB → Azure SQL DB 営業支援 見積支援 【お問い合わせ】株式会社 pnop Azure営業部 sales@pnop.co.jp