🔖

JmeterとEc2を使ったお手軽負荷診断

2020/09/29に公開

初めに

この記事では、業務で負荷診断をしないといけなくなった人向け簡単ツールの紹介です。
特に難しいことはしてません。※AWSを使ってる案件のみ有効

gitはこちら:https://github.com/yuyu1023/qiita_jmeter

ツール構成

まず始めに今回紹介するツール構成はこちらです。

.
├── Makefile 
├── hoge.pem
├── init.sh
├── log
└── tests
   ├── hoge_live.jmx
   ├── hoge_preview.jmx
   └── hoge_staging.jmx
  • ./Makefile
    必要なコマンド類をまとめ、簡単に実行できるようにしてます。
  • ./home.pem
    指定サーバーに接続する為に必要な鍵です。それぞれの環境に合わせて名前は変わると思うので、良きようにしてください。
  • ./init.sh
    jmeterを実行する上で必要な設定を諸々まとめてます。このファイルは指定サーバー内で実行されます。
  • ./log
    指定サーバー内にあるlogを格納する場所です。
  • ./test
    シナリオを格納する場所。予めローカルでも挙動確認はしておいた方がいいです。

事前準備

  1. EC2でCentOSを立ち上げる。(ぽちぽちで行けます)
  2. 接続に必要な鍵を生成して保管。(./hoge.pemとの入れ替え想定)
  3. jmeterシナリオを./test/に格納。
  4. ./Makefile内の下記項目に今回利用するhost名と鍵名を設定。
# 構築対象のIPセット
HOSTNAME1 = ec2-xxx-xxx-xxx-xxx
# 鍵設定
KEY = hoge.pem

利用方法(基本的にコマンドぽちぽちしていくだけです)

  1. 初期構築 make all/setup
    指定サーバーにjmeterを動かすために必要な諸々をインストールして、jmeterのシナリオをコピーしています。

  2. 負荷診断実行 make jmx-exe time=date +%Y%m%d-%H%M%S
    指定サーバー内に予めコピーしたシナリオをjmeterで実行します。実行結果は指定サーバー内 "/home/centos/log"配下に格納されます。

  3. ログデータ取得 make jmx-get
    指定サーバー内の"/home/centos/log"をローカルの"./log"にコピーする。

  4. シナリオ再アップ make jmx-up
    条件を変えたシナリオを指定サーバーにコピーします。またこの時コピーするシナリオはMakefile内で指定してるので良きようにして下さい。

基本的には①〜④をグルグル回すだけの作業になります。

まとめ

今回はサーバー1台想定でやりましたが、複数台でもこの構成使えます!(私は3台構成で実施しました)
Makefile周りを変更すれば実現可能ですので、是非触ってみて下さい。
※もし動かないよー!って人がいたらコメントください

参考リンク集
https://qiita.com/egawa_kun/items/714394609eef6be8e0bf
https://qiita.com/marumaru/items/1c79b9fef5bbeb1adb42
https://qiita.com/t-kubo0325/items/158e02aa6b8e62b76242

Discussion