以前、Tsungを積んだDockerで負荷テストを行うという記事を書きました。

たしかこのときは、ELBにぶら下げたアプリケーションへの負荷テストの過程でTsungを見つけてためしたような、そうでないような(うろ覚え)

今回、私が負荷テストの対象としたのはサーバレスな環境です。
つまり API Gateway+Lambda+αで構成されるサービスに対して負荷テストをかけようと思いました。

前回使ったtsung環境は使えるのか?

私のケースに限り、使えませんでした。というより使いませんでした。

私のケースというのは、予め有志が作成したtsung入のdockerイメージをつかっていることです。

このイメージをそのままつかっても、ハンドシェイクエラーが起こりAPI Gatewayに通信ができません。

スクリーンショット 2018-04-11 15.45.16.png

ここの記事にある通り、tsungをリコンパイルすればできるのかもしれません。

これはまた自分でtsung入のdockerイメージを作る羽目になるので、まったくdockerの恩恵をうけてないので今回このイメージは使いません。

wrkを使う

dockerHubにwrkを積んだイメージがありました!
これですぐにwrkが使えますね。使わせていただいたwrkのdockerイメージはこちら

docker-compose.yml

version: '3'
services:
  wrk:
    image: williamyeh/wrk:latest
    command: /data/attack.ash
    entrypoint: ash
    working_dir: /data
    volumes:
      - ./:/data

entrypointがデフォだとwrkとなります。
私の場合は、自分で書いたシェルを読み込ませたかったので、entorypointをashとしました。

/data/attack.ash

#!/bin/ash

# 負荷テスト1
wrk -t 2 -c 5 -d 5s -s /data/script_post_1.lua https://api-gateway
# 負荷テスト2
wrk -t 2 -c 5 -d 5s -s /data/script_post_2.lua https://api-gateway

script_post_1.lua

wrk.method = "POST"
wrk.headers["Content-Type"] = "application/json"

body = [[
{
    "hoge": "hoge"
}
]]

wrk.body = body

これで、docker-compose run wrkを実行すると負荷がかかります。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.