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

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

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

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 がラッパーとなっている