Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session)
Search
Mab
June 21, 2024
Technology
0
120
負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session)
AWS Summit Japan 2024 にて、セキュリティ & One-AWS Zone ミニステージでの登壇資料です。
「負荷テストは、AWS を使ってどう楽になるか?」についてお話しました。
Mab
June 21, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
エムスリーMR君ファミリー開発チーム紹介資料 / Introduction of M3 MRkun Family Dev Team
m3_engineering
0
110
私たちはなぜ事業責任者にならないといけないのか ~Webサービスを作る茨の道~
gimupop
7
2.5k
Introducing Azure Automation Runtime Environment
mappie_kochi
0
120
テストコードの観点から見たSansanのアーキテクチャ変遷
sansantech
PRO
1
140
育休を約半年取得しまた1カ⽉取ろうとしているエンジニア
sansantech
PRO
1
160
スクラムチームの品質戦略 1年の歩み
hacomono
PRO
1
130
アプリケーションが 正しく動作するということ - 自動テスト編 / Automated Testing
soudai
10
1.6k
EC2の脆弱性対応で何が使える? Inspector や SSM あたりを整理する #nakanoshima_dev
masahirokawahara
1
150
超アナログ中心な印刷会社で「エンジニアリング」を見直す
logica0419
4
150
BedrockUpdatesPost-GW Summary
hedgehog051
2
180
Four Keysだけじゃ足りなくない? 〜俺たちだけのFour Keysを探して〜
rinchsan
2
150
State of Amazon Location Service
dayjournal
0
160
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
307
41k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
119
18k
The Power of CSS Pseudo Elements
geoffreycrofte
63
5.1k
For a Future-Friendly Web
brad_frost
173
9.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
22
1.8k
RailsConf 2023
tenderlove
11
660
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
20
1.7k
Facilitating Awesome Meetings
lara
44
5.7k
Building Applications with DynamoDB
mza
89
5.8k
Bash Introduction
62gerente
606
210k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
Transcript
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷テスト on AWS のすすめ ⾺渕 俊介 M I N I S E S S I O N アマゾン ウェブ サービス ジャパン合同会社 エンタープライズ技術本部 サービスグループ トラベル・交通・物流ソリューション部 ソリューションアーキテクト
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. ⾃⼰紹介 名前︓⾺渕 俊介 (Shunsuke Mabuchi) 所属︓エンタープライズ技術本部 サービスグループ トラベル・交通・物流ソリューション部 ソリューションアーキテクト 経歴︓・国内 SIer で性能専⾨の技術⽀援部隊に所属し、 多数システムで性能テスト・性能問題解決を担当(〜2020/11) ・AWS にてソリューションアーキテクトとして交通系のお客様を担当 好きな AWS サービス : Amazon CloudWatch 好きな AWS ソリューション : Distributed Load Testing on AWS ︓@mabuchsss
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 本セッションの対象者と前提知識 本セッションの想定聴講者 • システムの開発・運⽤に関わるエンジニアの⽅ • システムの発注に関わる、事業会社の情報部⾨の⽅ • SRE・テストエンジニアの⽅ 前提知識 • AWS の基本的なサービスについて知っていること • システム開発のサイクルの概要を理解していること
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Key takeaways : 負荷テストのつらいところを、AWS サービスやソリューションで軽減できる 環境 Instance Scheduler IaC DB 複製 負荷ツール Distributed Load Testing Timestream for InfluxDB 監視ツール Observability on AWS
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. イントロダクション
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Q. 負荷テストについて、 どういう印象を持っていますか︖ 「つらい」「⼤変」「やりたくない」 「やったことないけど⼤変そう」 と思っている⽅、挙⼿をお願いします 👋 👋
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Q. 負荷テストについて、 どういう印象を持っていますか︖ 環境やデータ の準備が⼤変 負荷ツールが ネックにならないように ⽤意するのが⼤変 想定ケースの シナリオ作り が難しい リソース情報から ボトルネックを 分析するのが困難 CI/CD の中で どうやるべきか 悩ましい
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Q. 負荷テストについて、 どういう印象を持っていますか︖ 環境やデータ の準備が⼤変 負荷ツールが ネックにならないように ⽤意するのが⼤変 想定ケースの シナリオ作り が難しい リソース情報から ボトルネックを 分析するのが困難 CI/CD の中で どうやるべきか 悩ましい つらいけど 避けては通れない
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 本セッションの⽬的と全体像 本セッションの⽬的 • 負荷テストのつらい部分を、AWS の活⽤でどう軽減できるかを知る 本セッションでお話すること • 負荷テストの全体像の説明 • 負荷テストの主要ファクターについて、 つらい部分と、AWS での解決⽅法について説明 本セッションでお話しないこと • 性能⽬標やシナリオの検討⽅法 • オンライン処理の負荷テストを対象とし、バッチ処理性能には触れない • システム開発サイクルにおける、負荷テストの⽴ち位置 (例 : アジャイル開発における実施タイミング、etc)
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Agenda • イントロダクション • 負荷テストの全体像 • 負荷テストのつらいところと、AWS での解決 • まとめ & Call to action
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Agenda • イントロダクション • 負荷テストの全体像 • 負荷テストのつらいところと、AWS での解決 • まとめ & Call to action
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷テストの全体像 ① 計画 全体像を決める • 負荷量 • シナリオ • テスト環境 • 負荷ツール • 監視ツール ② 準備 環境・ツールを 実装する ③ 実施 実験を繰り返す ④ 評価 結果を合意し、 Next Action を 決定する 準備 実⾏ チューニング 分析
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. • 負荷量 • シナリオ • テスト環境 • 負荷ツール • 監視ツール
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷テストの主要ファクター • 負荷量 • シナリオ • テスト環境 • 負荷ツール • 監視ツール ③ 実施 実験を繰り返す 準備 実⾏ チューニング 分析 実施サイクルの QCD に直結
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷テストの主要ファクター • 負荷量 • シナリオ • テスト環境 • 負荷ツール • 監視ツール ここについては、builders.flash 記事シリーズ 「負荷テストのすすめ」をご参照ください 本⽇のフォーカス対象
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Agenda • イントロダクション • 負荷テストの全体像 • 負荷テストのつらいところと、AWS での解決 • テスト環境 • 負荷ツール • 監視ツール • まとめ & Call to action
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. テスト環境の検討事項とアンチパターン 検討事項 • どこに構築するか • どのサイズで構築するか • どうやって構築するか • 外部接続先をどうするか • DB のデータをどうするか アンチパターン • 独⽴していない • 専⽤環境を構築せず、他環境と相乗り • AWS アカウントが他環境と同居 ※ Quota 到達のリスク • 本番環境が再現されていない • コスト削減のために、縮⼩版環境で実施 • 外部接続先に関連するシナリオを省略 • DB のデータの量・偏りを再現しない
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. テスト環境のベストプラクティスと、その "つらさ" ベストプラクティス • 本番同等の負荷テスト専⽤環境を、専⽤の AWS アカウントに構築する • 本番環境同等のデータを、負荷テスト環境の DB 上に再現する 😭 環境構築の⼿間が⼤変…… 😭 環境のコストがかかる…… 😭 再現度の⾼いデータ作りは⼤変……
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. テスト環境の "つらさ" 解決 ① : IaC ベストプラクティス • 本番同等の負荷テスト専⽤環境を、専⽤の AWS アカウントに構築する 解決策 IaC で専⽤環境構築、負荷テストが終わったら削除可能にしておく 😭 環境構築の⼿間が⼤変…… 😭 環境のコストがかかる…… AWS CloudFormation AWS CDK 負荷テスト環境 開発環境 運⽤テスト環境 PJ 全体の環境構築・利⽤戦略として IaC を組み込んでおく
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. テスト環境の "つらさ" 解決 ② : Instance Scheduler ベストプラクティス • 本番同等の負荷テスト専⽤環境を、専⽤の AWS アカウントに構築する 解決策 Instance Scheduler ソリューションで、テスト時間帯外のコスト削減 • 曜⽇・時間を指定して EC2 / RDS の起動停⽌スケジュールを設定 • AWS ソリューションとして公開されており テンプレートからすぐ構築できる 😭 環境のコストがかかる……
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. AWS ソリューションとは • AWS サービス、コード、設定を組み合わせた、 すぐデプロイできるソリューション=便利な構成テンプレ集(CloudFormation) • 利⽤にかかる費⽤は、含まれる AWS サービスの費⽤のみ 21 https://aws.amazon.com/jp/solutions/ 注⽬のソリューション例︓ • ⾃動化されたセキュリティ対応 • AWS Security Hub が検出した脅威を ⾃動 or ワンクリックで修復 • OpenSearch での統合ログ管理 • デプロイしてすぐに使えて、 ログ収集・分析・可視化を⼀元化 • DevOps Monitoring Dashboard • CI/CD のメトリクスを収集し 分析・可視化、改善の指標を提供
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. テスト環境の "つらさ" 解決 ③ : DB 複製 ベストプラクティス • 本番環境同等のデータを、負荷テスト環境の DB 上に再現する 解決策 RDS スナップショットを⽤いて本番 DB を複製 → マスキング 😭 再現度の⾼いデータ作りは⼤変…… 本番環境 テスト環境 本番DB 複製DB Snapshot Snapshot 機密情報 マスク テストDB Snapshot 注意事項︓ • 暗号化の設定によっては 制約事項あり
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Agenda • イントロダクション • 負荷テストの全体像 • 負荷テストのつらいところと、AWS での解決 • テスト環境 • 負荷ツール • 監視ツール • まとめ & Call to action
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷ツールの検討事項とアンチパターン 検討事項 • どのツールを使うか • 負荷ツールを稼働させる マシンの台数・スペック • 負荷ツールの監視⽅法 アンチパターン • 負荷クライアントに ⼗分なスペックを⽤意しない • 負荷ツール視点のメトリクスを 監視しない
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷ツールのベストプラクティスと、その "つらさ" ベストプラクティス • 負荷クライアントを、スケールアウト可能な構成で構築する • 負荷クライアント視点の状況をモニタリングする 😭 台数分の構築が⼤変…… 😭 複数台の協調が⼤変…… 😭 複数台の EC2 を⽴ち上げっぱなしにするのはコストがかかる…… 😭 スケールアウトする負荷クライアントに いちいちモニタリングの導⼊するのも⼤変……
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷ツールのベストプラクティスと、その "つらさ" ベストプラクティス • 負荷クライアントを、スケールアウト可能な構成で構築する • 負荷クライアント視点の状況をモニタリングする 😭 台数分の構築が⼤変…… 😭 複数台の協調が⼤変…… 😭 複数台の EC2 を⽴ち上げっぱなしにするのはコストがかかる…… 😭 スケールアウトする負荷クライアントに いちいちモニタリングの導⼊するのも⼤変…… 構築が簡単で 簡単にスケールできて 負荷実⾏時以外はコンピュートリソースを使わず 負荷ツール側のメトリクスも集められる
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷ツールの "つらさ" 解決 ① : DLT ソリューション ベストプラクティス • 負荷クライアントを、スケールアウト可能な構成で構築する • 負荷クライアント視点の状況をモニタリングする 😭 台数分の構築が⼤変…… 😭 複数台の協調が⼤変…… 😭 複数台の EC2 を⽴ち上げっぱなしにするのはコストがかかる…… 😭 スケールアウトする負荷クライアントに いちいちモニタリングの導⼊するのも⼤変…… 構築が簡単で 簡単にスケールできて 負荷実⾏時以外はコンピュートリソースを使わず 負荷ツール側のメトリクスも集められる 解決策︓ Distributed Load Testing (DLT) on AWS ソリューション
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Distributed Load Testing on AWS (DLT) とは Web コンソールから JMeter のシナリオをアップロードすると、 複数の Fargate コンテナが⽴ち上がり、JMeter※ で負荷を実⾏ AWS Fargate タスク1 タスク2 タスクn … 指定⽇または定期⽇ などスケジュール 実⾏可能 1タスクあたりの 仮想ユーザー数を指定して 並列処理 Apache JMeter テストシナリオ (.jmx) S3バケット 各シナリオが S3バケット から取得 負荷テスト対象サービス … ※ Taurus がラッパーとなっている
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. DLT ソリューションのメリット 構築 スケール・コスト モニタリング CloudFormation テンプレートで すぐデプロイ可能 負荷実⾏時だけ コンテナ起動 コンテナ数は Web コンソールで 簡単に設定 CloudWatch Container Insightsで コンテナ状況可視化 性能指標値を 可視化する ダッシュボード⾃動作成
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷ツールの "つらさ" 解決 ② : Amazon Timestream for InfluxDB ベストプラクティス • 負荷クライアント視点の状況をモニタリングする 😭 全部の負荷クライアントから⾒た性能って まとめて・簡単に・リアルタイムに⾒られない…… DLT のコンソールで部分的には解決可能だが、 より詳細な情報を⾒たい場合 Amazon Timestream for InfluxDB New! 2024/03
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Amazon Timestream for InfluxDB • 時系列 DB の InfluxDB を マネージドで提供 • JMeter のリスナー設定で メトリクス送出可能 • リクエスト種別ごとの リアルタイムな数値を ダッシュボードで可視化 New! 2024/03
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Agenda • イントロダクション • 負荷テストの全体像 • 負荷テストのつらいところと、AWS での解決 • テスト環境 • 負荷ツール • 監視ツール • まとめ & Call to action
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 監視ツールの検討事項とアンチパターン 検討事項 • どのツールを使うか • どういった情報を収集するか • どうやって可視化するか • どうやって分析するか アンチパターン • マシンリソースのメトリクスしか 取得できていない • ログがリアルタイムに集約されていない • ログの検索・取得・集計で あちこちツールを⾏き来する
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 監視ツールのベストプラクティスと、その "つらさ" ベストプラクティス • オブザーバビリティが実現されている • ログ・メトリクス・トレースにより システムの動作状況を把握できること 解決策 AWS の Observability サービスの活⽤ 😭 今まで使ってきたツールだと全部はカバーできない…… 詳細は 12:10-12:25 の ミニステージセッション 「監視運⽤ベストプラクティス」 セッションでご紹介︕
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 監視ツールの "つらさ" 解決 : Observability on AWS Observability Collectors and SDKs Container insights Lambda insights Contributor insights Application insights Synthetics Dashboards Alarms RUM AWS X-Ray AWS native services Amazon CloudWatch ServiceLens Open-source managed services Amazon Managed Grafana Do it yourself (DIY) – AWS OSS Solutions Amazon OpenSearch Service Amazon Managed Service for Prometheus Jaeger and Zipkin Tracing Insights & ML Instrumentation Metrics CloudWatch agent AWS X-Ray agent AWS Distro for OpenTelemetry Internet monitor Logs
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. 負荷テストでのオブザーバビリティ Tips Tips • 標準メトリクス・ログより詳細なデータ収集設定 例)EC2 インスタンスの詳細モニタリング、CloudWatch エージェントの導⼊、 RDS の拡張モニタリング、RDS への Performance Insights の有効化 • ダッシュボードを育てれば育てるほど負荷テストサイクルが早くなる • CloudWatch ⾃動ダッシュボードはウィジェットの宝庫 • 〇〇〇 Insights は必殺の武器 • CloudWatch 〇〇〇 Insights シリーズ (例 : Log Insights) や、 RDS Performance Insights の使い⽅を覚えておく
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Agenda • イントロダクション • 負荷テストの全体像 • 負荷テストのつらいところと、AWS での解決 • テスト環境 • 負荷ツール • 監視ツール • まとめ & Call to action
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. まとめ 負荷テストのつらいところを、AWS サービスやソリューションで軽減できる 環境 Instance Scheduler IaC DB 複製 負荷ツール Distributed Load Testing Timestream for InfluxDB 監視ツール Observability on AWS
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Call to action ⽇本語のワークショップやベストプラクティス教材で学び、実践する 環境 Instance Scheduler 負荷ツール Distributed Load Testing 監視ツール Observability on AWS InstanceScheduler Workshop Distributed Load Testing Workshop One Observability Workshop AWS Observability Best Practices Happy Load Testing︕
© 2024, Amazon Web Services, Inc. or its affiliates. All
rights reserved. Thank you! ⾺渕 俊介 (Shunsuke Mabuchi) アマゾン ウェブ サービス ジャパン合同会社 エンタープライズ技術本部 サービスグループ トラベル・交通・物流ソリューション部 ソリューションアーキテクト