Goad2.0.3を使ってAWS Lambdaで負荷テスト

goad-load-test-02
Global load testing with Go = Goad ! だそうです。GoadでAWS Lambdaを使って負荷テスト!

決済の画面遷移途中で動かなくなる!などの「連続テスト」も、同時接続数や応答時間などの「限界テスト」も該当します。

Goad負荷テスト、悪用厳禁!

絶対に悪用しない様に!IPアドレスなど足跡を辿られますよ!Miraiとか組み合わせて、悪用もしてはいけません!絶対に悪用しない人だけ、以下、読んでくださいね!

IAMの運用ユーザーを作る

IAM運用ユーザーを事前に作っておいてください。IAMユーザーのアクセスキーIDとシークレットアクセスキーが必要になります。取扱には注意してください。

Goad用のインスタンス/仮想マシンを立てる

今回、テスト対象はAzureに構築したテスト環境の仮想マシンのWordPress、負荷ツールのGoadについてはAmazon Linux AMI 2017.09.1.20180115 x86_64 HVMをt2.microで建てました。Azureは負荷テストの事前申請不要との事です。以下でご確認ください。

Azureの負荷試験の申告

t2.microのAMIを1台立ち上げ、SSH接続、適当なディレクトリで以下のコマンドを実行し、goad2.0.3をダウンロード。
wget https://github.com/goadapp/goad/releases/download/2.0.3/goad-linux-x86-64.zip

解凍します。
unzip goad-linux-x86-64.zip

これでgoadを使える状態となりました。

goad2.0.3を使っています

SQSのFIFOキューが、まだ、東京リージョンに対応していなとのことで、2018年2月13日の時点では、最新の goad 2.0.4ではなく、goad 2.0.3をダウンロードしました。東京よりも先進的なリージョンを使えばいいのかも。
Goad2.0.3と2.0.4では、コマンドのフラッグ(オプション)がかなり異なるので 2.0.4を使う際は、goad –helpでしっかりオプションを確認しないと、きちんとコマンドが走らないと思います。

goadのgithub
https://github.com/goadapp/goad/releases

 

解凍したディレクトリにて以下コマンドにてhelpを見られれば成功。
./goad --help

AWSでIAMユーザーのアクセスキーIDとシークレットアクセスキーを取得

取得したら、exportコマンドでt2.microで作ったgoad入りのEC2インスタンスに環境変数(アクセスキーID と シークレットアクセスキー)を登録します。以下、コマンドを参考にしてください。

アクセスキーIDを登録
export AWS_ACCESS_KEY_ID="hogehoge"

アクセスキーIDを確認
printenv AWS_ACCESS_KEY_ID

アクセスキーIDを登録削除
export -n AWS_ACCESS_KEY_ID

シークレットアクセスキー登録
export AWS_SECRET_ACCESS_KEY="hugahuga"

シークレットアクセスキー確認
printenv AWS_SECRET_ACCESS_KEY

シークレットアクセスキーを登録削除
export -n AWS_SECRET_ACCESS_KEY

goad実行

./goad -c 10 -n 10000 -r us-east-1,eu-west-1,ap-northeast-1 -m GET -u https://example.com

しかし、怒られます。

goad: error: unknown short flag '-r', try --help
goad: error: unknown short flag '-u', try --help

そんなフラッグ(オプション)は無いとのこと。なんと、2.0.4ではある。が、2.0.3では無い。この差はデカい。
-r はRegion(リージョン)で、-u は URL。2.0.3では両方ともに不要です。

以下で実行できます。Apache Benchのコマンドを知っている方であれば、スグに使えると思います。秒間requestが10万を越える!などのテストにお勧めです。
./goad -c 10 -n 10000 -m GET http://example.com
t2.microのgoad入りインスタンスは以下の様な画面になります。
goad-load-test-01
Azureのメトリクスは次の通り。既に2回、Goad負荷テストを行っています。
goad-azure-metrics
AWS Lambda , CloudWatch Logs , SQS も自動で構成される。
goad-lambda-nodejs

便利で~す!!! ひゃっほー!!!AWS無料利用枠でおさまるのも素晴らしい。

smile-piece-sign

作業途中、手元のホストマシンのIPアドレスが代わり、EC2インスタンスのセキュリティグループでSSHのマイIPを再設定しました。固定IPを引いてない方は要注意!

さぁ、シナリオ作ってガツガツ検証と開発していきましょう!!USEメソッド等を分析してAWS EC2インスタンスやAzure 仮想マシン研ぎ澄ましていきましょう。

ワードプレス/Azure/AWS/kintoneの開発/運用

コメントを残す