1
1

More than 5 years have passed since last update.

wrkを使ってAPI Gatewayに負荷をかけてみる

Last updated at Posted at 2018-04-11

以前、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を実行すると負荷がかかります。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1