Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS で実現! 負荷テストと自動オブザーバビリティ (AWS 秋の Observabilit...

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Mab Mab
October 29, 2024

AWS で実現! 負荷テストと自動オブザーバビリティ (AWS 秋の Observability 祭り 2024)

「AWS 秋の Observability 祭り」(2024/11/01) での登壇資料、およびデモ・体験会の投影資料です。
https://aws-startup-lofts.com/apj/loft/tokyo/event/3b5d70e2-9674-475b-8bd7-754b608b64b7

デモ・体験会で利用したワークショップはこちらです:
https://catalog.us-east-1.prod.workshops.aws/workshops/401f5147-738e-45d9-be9f-fed9c42a60b0/ja-JP

Avatar for Mab

Mab

October 29, 2024
Tweet

More Decks by Mab

Other Decks in Technology

Transcript

  1. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS で実現︕ 負荷テストと⾃動オブザーバビリティ ⾺渕 俊介 / ⽇平 ⼤樹 Amazon Web Services Japan G.K. 2024/11/01 AWS 秋の Observability 祭り ~明⽇使えるアセット祭り~
  2. © 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
  3. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Agenda • AWS の分散負荷テスト (DLT) ソリューションのご紹介 • 負荷テストでの O11y と AWS サービス • 本⽇のデモの概要
  4. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Agenda • AWS の分散負荷テスト (DLT) ソリューションのご紹介 • 負荷テストでの O11y と AWS サービス • 本⽇のデモの概要
  5. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 負荷ツールのベストプラクティスと、その "つらさ" ベストプラクティス • 負荷クライアントがボトルネックにならないよう、スケールアウト可能にする • 負荷クライアント視点の状況をモニタリングする 😭 台数分の構築が⼤変…… 😭 複数台の協調が⼤変…… 😭 複数台の EC2 を⽴ち上げっぱなしにするのはコストがかかる…… 😭 スケールアウトする負荷クライアントに いちいちモニタリングの導⼊するのも⼤変……
  6. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 負荷ツールのベストプラクティスと、その "つらさ" ベストプラクティス • 負荷クライアントがボトルネックにならないよう、スケールアウト可能にする • 負荷クライアント視点の状況をモニタリングする 😭 台数分の構築が⼤変…… 😭 複数台の協調が⼤変…… 😭 複数台の EC2 を⽴ち上げっぱなしにするのはコストがかかる…… 😭 スケールアウトする負荷クライアントに いちいちモニタリングの導⼊するのも⼤変…… 構築が簡単で 簡単にスケールできて 負荷実⾏時以外はコンピュートリソースを使わず 負荷ツール側のメトリクスも集められる
  7. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 負荷ツールの "つらさ" 解決 ① : DLT ソリューション ベストプラクティス • 負荷クライアントがボトルネックにならないよう、スケールアウト可能にする • 負荷クライアント視点の状況をモニタリングする 😭 台数分の構築が⼤変…… 😭 複数台の協調が⼤変…… 😭 複数台の EC2 を⽴ち上げっぱなしにするのはコストがかかる…… 😭 スケールアウトする負荷クライアントに いちいちモニタリングの導⼊するのも⼤変…… 構築が簡単で 簡単にスケールできて 負荷実⾏時以外はコンピュートリソースを使わず 負荷ツール側のメトリクスも集められる 解決策︓ Distributed Load Testing (DLT) on AWS ソリューション
  8. © 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 がラッパーとなっている
  9. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. DLT ソリューションのメリット 構築 スケール・コスト O11y CloudFormation テンプレートで すぐデプロイ可能 負荷実⾏時だけ コンテナ起動 コンテナ数は Web コンソールで 簡単に設定 CloudWatch Container Insightsで コンテナ状況可視化 性能指標値を 可視化する ダッシュボード⾃動作成
  10. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Agenda • AWS の分散負荷テスト (DLT) ソリューションのご紹介 • 負荷テストでの O11y と AWS サービス • 本⽇のデモの概要
  11. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 負荷テストにおける O11y の必要性 • 負荷テストの実施フェーズでは、 準備→実⾏→分析→チューニング を繰り返し、⽬標性能の到達を確認 • 分析の速度と品質が⾼ければ、 サイクルタイムもサイクル数も 削減可能 = テストの QCD 向上 負荷テストの QCD = 性能分析の速度と品質 = O11y 11 © 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. 負荷テストの全体像 ① 計画 全体像を決める • 負荷量 • シナリオ • テスト環境 • 負荷ツール • 監視ツール ② 準備 環境・ツールを 実装する ③ 実施 実験を繰り返す ④ 評価 結果を合意し、 Next Action を 決定する 準備 実⾏ チューニング 分析 負荷テスト on AWS のすすめ (AWS Summit Japan 2024 - Ministage session) - Speaker Deck https://speakerdeck.com/mabuchs/fu-he-tesuto-on-aws-nosusume-aws-summit-japan-2024-ministage-session
  12. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 負荷テストにおける O11y 負荷クライアント側と、テスト対象のシステム側の両⽅の O11y が必要 12 AWS Fargate タスク1 タスク2 … 負荷テスト対象サービス … DLT ソリューション Amazon Timestream for InfluxDB Amazon DevOps Guru Amazon CloudWatch 負荷メトリクス (Custom Metrics) コンテナリソース情報 (Container Insights) 詳細負荷メトリクス ⾃動 分析 • ボトルネック被疑箇所 • 設定値の推奨事項 Amazon CloudWatch 各種リソースのメトリクス 負荷クライアント側 負荷テスト対象システム側
  13. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. DLT ソリューション内での O11y : CloudWatch CloudWatch Container Insightsで コンテナ状況可視化 性能指標値を 可視化する ダッシュボード⾃動作成
  14. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. JMeter の O11y : Amazon Timestream for InfluxDB • 時系列 DB の InfluxDB を マネージドで提供 • JMeter のリスナー設定で メトリクス送出可能 • リクエスト種別ごとの リアルタイムな数値を ダッシュボードで可視化
  15. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 負荷テスト対象システムの O11y : DevOps Guru 分析対象のアプリケーションを 指定するだけで有効化 CloudWatch メトリクスの 異常な挙動を AI で検出 ボトルネック被疑箇所の特定と パラメータ変更の推奨を提⽰ 15
  16. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Agenda • AWS の分散負荷テストソリューションのご紹介 • 負荷テストでの O11y と AWS サービス • 本⽇のデモの概要
  17. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 本⽇のデモの概要 分散負荷テスト (DLT) ソリューション ワークショップの内容をデモ • DLT ソリューション内の CloudWatch ダッシュボード • Timestream for InfluxDB による JMeter 詳細メトリクスの ダッシュボード • DevOps Guru による ボトルネック被疑箇所の インサイト 17
  18. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 本テーマのすぐ使えるアセット / リソース • 分散負荷テスト (DLT) ソリューション : CloudFormation ですぐ構築 • Amazon DevOps Guru : マネジメントコンソールですぐ有効化 § ワークショップ内に⼿順あり • Amazon Timestream for InfluxDB + JMeter § InfluxDB 起動⼿順 § ⾃⾝の JMeter シナリオに InfluxDB 接続設定を⼊れる資材+⼿順 § Influx UI ダッシュボードテンプレートと import ⼿順 18
  19. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ 負荷テストの QCD = 性能分析の速度と品質 = O11y 負荷テストの実⾏と O11y に役⽴つサービス・ソリューション 19 分散負荷テスト (DLT) ソリューション Amazon Timestream for InfluxDB Amazon DevOps Guru • 負荷クライアントの 効率的な⽴ち上げ • ビルトインの O11y • 負荷クライアント メトリクスの 詳細な可視化 • 性能ボトルネックの ⾃動分析
  20. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 料⾦イメージ (1) DLT ソリューション 21 仮定 • 東京リージョンで起動 • 並列 10 タスクでの負荷テストを合計 30 時間実⾏する → 〜 $ 40 /⽉ ※ 北⽶リージョンの場合の試算例の詳細を参考に試算 https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/cost.html サービス ⽤途 仮定・パラメータ ⽉額費⽤ Fargate 負荷タスクが稼働 2vCPU、4GB RAM 10タスク同時並列の負荷テストを、 ⽉あたり 30 時間実⾏ $ 36.98 その他 その他の各費⽤ 微少 ※ 〜 $ 3 合計 〜$ 40
  21. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 料⾦イメージ (2) Amazon Timestream for InfluxDB 22 仮定 • 東京リージョンで起動 • シングル AZ で起動、インスタンスタイプ最⼩、ストレージ 40 GB → 〜 $ 110 /⽉ サービス 仮定・パラメータ ⽉額費⽤ Amazon Timestream for InfluxDB 1 ヶ⽉間 (730 時間) 常時起動 • インスタンスタイプ : db.influx.medium • データベースストレージ : 40 GB • シングル AZ 構成 $ 108.46 合計 〜$ 110 料⾦ - Amazon Timestream | AWS https://aws.amazon.com/jp/timestream/pricing/
  22. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 料⾦イメージ (3) Amazon DevOps Guru 23 仮定 • 東京リージョンで起動 • DLT ワークショップの負荷テスト対象サンプルアプリを、1 ヶ⽉常時監視する § (DynamoDB x1、ALB x2、ECS Service x2、NAT Gateway x2) サービス 仮定・パラメータ ⽉額費⽤ Amazon DevOps Guru • 1 ヶ⽉間 (730 時間) 常時起動 • 分析対象リソース : 料⾦グループ B x 7 リソース $ 21.5 合計 〜$ 22 Amazon DevOps Guru | ML を活⽤したクラウド運⽤サービスを利⽤して、アプリケーションの可⽤性を向上させる | 料⾦ https://aws.amazon.com/jp/devops-guru/pricing/
  23. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS で実現︕ 負荷テストと⾃動オブザーバビリティ - デモ・体験編 - ⾺渕 俊介 / ⽇平 ⼤樹 Amazon Web Services Japan G.K. 2024/11/01 AWS 秋の Observability 祭り ~明⽇使えるアセット祭り~
  24. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. デモ・アセットへのアクセス⽅法 • 本デモ・体験会の内容は全て 「分散負荷テストソリューション ワークショップ」 に含まれています • https://catalog.us-east- 1.prod.workshops.aws/workshops/401f5147- 738e-45d9-be9f-fed9c42a60b0/ja-JP • 本資料および最初のセッションの資料は 配付資料の QR コードからアクセス可能です
  25. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. デモの構成 負荷クライアント側と、テスト対象のシステム側の両⽅の O11y を体験 26 AWS Fargate タスク1 タスク2 … 負荷テスト対象サービス … DLT ソリューション Amazon Timestream for InfluxDB Amazon DevOps Guru Amazon CloudWatch 負荷メトリクス (Custom Metrics) コンテナリソース情報 (Container Insights) 詳細負荷メトリクス ⾃動 分析 • ボトルネック被疑箇所 • 設定値の推奨事項 Amazon CloudWatch 各種リソースのメトリクス 負荷クライアント側 負荷テスト対象システム側
  26. © 2024, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. デモの流れ セットアップ • DLT ソリューションのデプロイ⼿順 • InfluxDB の構築⼿順 • DevOps Guru の有効化⼿順 負荷テスト実⾏ • JMeter シナリオへの InfluxDB 向け組み込み • DLT でのシナリオ実⾏ 負荷テスト中の o11y • DLT での o11y • InfluxDB での O11y • DevOps guru での O11y
  27. © 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 がラッパーとなっている