前の記事は実は前フリで、最近、負荷試験について深く潜り込んだので、自分なりに考えたことを細かく分けて書いていこうと思います。負荷試験シリーズのはじまり:-)
後半はほとんど自分で考えて色々実装しましたが、序盤は先人の知恵をかき集めてイィトコ取りしたので、メモっておいたリンク集を置いておきます。
はじめに
負荷試験ってツールを選んで大量リクエストを発生させるんでしょ。ってイメージがあるかもですが、より効率的により正確にって仕上げていくと、独自に実装したい仕組みが結構でてきます。アプリケーションは当然モノによって仕組みや構成は異なるし、プロトコルが異なる場合もあります。千差万別は言いすぎかもだけど試験には色んな選択や工夫があり、これが正解っていう単純なものではないのは間違いないです。
とはいえ、シンプルな実行と結果でも、複雑な取り組みをしたとしても、求められる成果に対して十分で正しい結果を示せればそれは負荷試験としては成功ともいえます。
それゆえにまず重要なのは、基本を抑え、なにが求められるのか、どのような方法があるのかを知ることです。それを踏まえた上で、自身にとって効率的で正しい手段と結果になるよう磨き上げていくことになります。
なので下記リンク集は私自身にとって必要そうだった知識の一部なので、意味不明なものもあるかもしれませんが、私は変な工夫をするのが好きな方なので、そういうのも含めて少しずつシリーズを続けていければと思います。
リンク集
全般
ツールの選択や基本的な考え方など。- Open source load testing tool review 2020
- Open Source Load Testing Tools: Which One Should You Use? | BlazeMeter
- Webアプリ負荷試験ガイド – withgod’s blog <--オススメ!!
一般事例
色々参考にしてから自分探しをしましょう。- 負荷テストの基本的な考え方と進め方(前編) – Qiita
- LINE LIVEを支える負荷テストの知見。ベンチマーク環境により信頼性の高いシステムを実現する方法 – LINE ENGINEERING
- 実例に学ぶ動画配信サービスの負荷試験~テストケース作成からツール選定、性能劣化への対応まで – エンジニアHub|Webエンジニアのキャリアを考える!
- アプリケーションエンジニアが初めて負荷試験やってみた|Kurashicom Tech Blog|note
- Eコマースプラットフォームの成長を支える負荷試験の取り組み – BASEプロダクトチームブログ
- 秒間10万メッセージをさばけ! リアルタイム対戦バトルゲームを支える負荷試験の挑戦【Developers Boost】 (1/2):CodeZine(コードジン)
- 外部APIコールを含むプログラムの負荷試験 – BASEプロダクトチームブログ
- SREの観点から考える定期的・継続的な負荷テスト – Qiita
- Tsungで負荷テストしよう(1) – 基礎知識 – インフラエンジニアway – Powered by HEARTBEATS
Taurus
知識として存在は抑えておきたい。- Taurus公式
- How to Run 50,000 Concurrent Users from Multi GEOs Using Locust.IO | BlazeMeter
- AWSの負荷テストソリューションを試してみた | DevelopersIO
- AWSソリューションを利用して負荷テストを行う
Locust
私のチョイス。- LOCUST公式
- Quick start | Locust 1.4.3 documentation
- 初学者がlocust 1.0で負荷試験を行う – Qiita
- GKE と Locust.io でつくる負荷試験基盤 — HACK The Nikkei
- 毎秒1万リクエストの負荷試験をした話 – pixiv inside
- 負荷テストツール、Locustで遊ぶ – CLOVER
- (負荷試験ツール)Locustで基本的な使い方/よくある使い方
ECS
私の使い捨て環境。- [アップデート] 実行中のコンテナに乗り込んでコマンドを実行できる「ECS Exec」が公開されました
- 初学者がlocustをAWS ECS(Fargate)で実行する
- MQTTの負荷テストもバッチリ!!Locustを活用した分散負荷テスト環境の構築
Client
私はクライアント知識が弱めなので、認証処理の判断に。- アプリで「ログインしっぱなし」はどのように実現されているか? – Qiita
- 知っておきたい7つのID連携実装パターン – Yahoo! JAPAN Tech Blog
- ユーザーをログアウトから守れ!―シーケンス図から読み解くログイン状態維持【Webアプリ編】 | DevelopersIO
- ユーザーをログアウトから守れ!―シーケンス図から読み解くログイン状態維持【Mobileアプリ編】 | DevelopersIO
- 怖くないネイティブアプリケーションにおけるID連携機能を実装するための考え方 – r-weblife
- 今すぐ知りたい「Sign in with Apple」の15の疑問にお答えします | TechCrunch Japan
先にも述べたように、負荷試験の方法は他人のソレを真似して簡単に済むものではありません。既存の記事の多くは、自分のとこではこう判断してこうやりましたよ、って内容が多く、もちろん参考にはなるのですが、もっと細かい切り口で考えても役立つかなと思いました。
なので、この負荷試験シリーズは(長文になりがちな悪い癖を抑えて)小さめのテーマに対して短めの考察をしていくつもりです。よろしゅうに:-)