0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQL Read Replica に対して負荷をかけてオートスケーリング動作を確認する

0
Posted at

モチベーション

Amazon RDS (ここではAuroraを選択) のリードレプリカに対するオートスケーリングが正常に動くかどうかを確認するためにリードレプリカに対して負荷をかけたい。
ぱっとぐぐってもピンとくるものがなかったのでメモ。

方針

Sysbench を利用して、以下の方針で負荷をかける。

  1. マスターDBに対してテスト用データを書き込む (リードレプリカには書き込んだ直後にコピー・反映される)
  2. リードレプリカに対して読み取り専用の負荷試験を行う

インストール手順は上記 Github を参照してください。

手順

各種DBツールはインストールしているものとします。 DBは今回はAurora 5.6互換を利用しましたが、それ以外のバージョンでも行けるはずです。
DB接続時のユーザーはデータベースとテーブルを作れる権限を持っていることを前提とします。

# DB作成 (パスワードはコンソールに入力)
$ mysqladmin create benchmark -u <接続ユーザー> -p -h <マスターDBのホスト名>
# テストデータ挿入 (oltp_read_write 部分は 
# oltp_read_only でも oltp_write_only でも OK) 
$ sysbench --db-driver=mysql /
    --mysql-host=<マスターDBのホスト名> \
    --mysql-user=<接続ユーザー> --mysql-password=<接続パスワード> \
    --mysql-db=benchmark oltp_read_write prepare

# 負荷テストをリードレプリカに対して readonly で実施
# 同時接続数32, 負荷時間300秒
$ sysbench --db-driver=mysql /
    --mysql-host=<リードレプリカのホスト名> \
    --mysql-user=<接続ユーザー> --mysql-password=<接続パスワード> \
    --mysql-db=benchmark oltp_read_only run \
    --threads=32 --time=300

# 不要な場合、終わった後は該当テーブルを削除
$ mysqladmin drop benchmark -u <接続ユーザー> -p -h <マスターDBのホスト名>

実施結果

t2.small 1台のリードレプリカに対してCPU利用率50%程度まで上昇し、スケールアウトすることと、負荷が無くなってからしばらくたつとスケールインする両方を確認できました。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?