Nedia What's up!

ネディアのエンジニアによるIT技術やサービスの紹介・検証などをお届け!

Amazon AuroraをMySQLと比べてみた(後編)


前編ではAmazon Auroraの紹介をいたしました。

後編となる今回は前編でも紹介したように、本当にMySQLと比べて5倍速いのか?について検証していきたいと思います。

検証環境

  1. MySQL 5.6.27 db.r3.large
  2. Amazon Aurora(MySQL 5.6.10a互換)db.r3.large

設定は初期値のままです。

上記のRDSインスタンスにEC2インスタンスからアクセスして、sysbenchを使ってベンチマークを行います。

ベンチマーク準備

EC2インスタンスへsysbenchのインストール

SysbenchはEPELでrpmが用意されていますが、EC2のAmazon Linuxでは使えないのでtarballからインストールします。

READMEを見るとインストール手順が書かれていますのでそのまま実施しますが、autoconfとlibtoolが必要になるので先にインストールしておきます。

RDSインスタンスへSysbenchの設定

各RDSインスタンスに接続して、sysbench用のsbtestという名称のデータベースを作成しておきます。

sbtestデータベースの作成が完了したら、EC2インスタンスからRDSインスタンスへSysbench用のデータを流しておきます。

ベンチマーク実施

準備ができたのでベンチマークを実施します。

ベンチマークは以下のコマンドで走らせることができます。

oltpオプションを設定することで、MySQLのトランザクション性能を計測することができます。

MySQLインスタンスのベンチマーク結果

Amazon Auroraインスタンスのベンチマーク結果

ベンチマーク結果のまとめ

上記の結果だと見づらいので、まとめたものが以下の通り。

  MySQL Amazon Aurora
秒間トランザクション処理数 38.96 18.71
ベンチマーク完了時間 256.6905s 534.4806s
1リクエスト平均処理時間 25.66ms 53.44ms

なんということでしょう。MySQLの方が約2倍速いではないですか!

念のため何度かベンチマークを取り直してみましたが傾向は変わりませんでした。

MySQLの方が2倍速かった理由

意外な結果となった理由を考えてみましたが、正直どれも推測の域を出ないように思います。

  1. MySQL 5.6.27に対してMySQL 5.6.10a互換のAmazon Auroraには分が悪かった
  2. sysbenchのオプションが悪かった
  3. チューニングしないとパフォーマンスが出ない
  4. そもそもベンチマーク自体がAmazon Auroraに合っていない

まとめ

正直このブログを執筆する段階では「Amazon Auroraの方がこんなに速いんですよ」という結果で終わらせるつもりだったのですが、ベンチマーク結果を見て愕然としました。

今回の結果だけ見ればAmazon Auroraを積極的に採用する理由は見当たらないように思います。

Amazon AuroraだけでなくMaria DBの台頭などで割を食っているイメージのMySQLですが、本家も捨てたもんじゃないということを証明した結果だったようにも感じました。

機会があれば環境等を変えて再挑戦してみたいと思います。