Nedia What's up!

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

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


今回はRDSの中でもMySQL互換のあるAmazon Auroraについてご紹介いたしますが、その前にRDSについて過去の記事で触れていなかったので簡単に説明したいと思います。

Amazon RDS

Amazon RDSはAWS上で展開されるクラウド型のリレーショナルデータベースサービスです。
簡単に言ってしまうとクラウド上でデータベースをホスティングするイメージです。

RDSで利用可能なデータベースエンジン

RDSで利用可能なデータベースエンジンは以下の通りです。

主要なものは網羅していますね。

利用可能データベース
Amazon Aurora
PostgreSQL
MySQL
MariaDB
ORACLE
Microsoft SQL Server

RDSのメリット

実際AWSでデータベースを使おうと思った場合に、EC2を立ち上げて、EC2インスタンスの中にデータベースをインストールしてデータベースサーバとして使うということも可能です。

RDSを使用するメリットは何でしょうか。それは以下の通りです。

バックアップ機能が充実

バックアップが自動化されるだけでなく任意の時点に管理画面から復元することが可能

Multi-AZ機能による冗長化

EC2インスタンスで冗長構成を行おうとすると少し厄介なのですが、RDSであればMulti-AZ機能を使用することで冗長化構成を簡単に構築することが可能です。

自動でマイナーバージョンアップ

データベースのマイナーバージョンアップ作業を自動で行うことが可能です。

煩わしいバージョンアップ作業が不要です。

自動ではなく手動を選択することもできます。

柔軟にスペックを変更することが可能

管理画面から簡単にスペックを変更することができます。

EC2インスタンスでデータベースを運用する場合でも同様のことは可能ですが、CPUはEC2のインスタンスタイプを変更し、容量はEBSから設定変更しなければならないなど少し煩わしいです。

リードレプリカという読込専用のレプリカを作成することが可能

リードレプリカによりレプリケーション構成で運用することにより負荷分散を行うことができます。

 

総じてRDSを使用することにより運用管理コストを低減させることが可能になります。

Amazon Aurora

RDSが大体どういうものかわかったところで本題のAmazon Auroraです。

Amazon Auroraの特徴

MySQLと比べて5倍のスループット

Amazon AuroraはMySQL 5.6互換のAmazon製リレーショナルデータベースエンジンで、同一ハードウェアで実行すると標準のMySQLと比較して、なんと5倍のスループットが出ると謳われています。

5倍となるととんでもない数字ですが、このあたりは後編で検証したいと思います。

Multi-AZ構成が豪華に

RDSでMySQLを使用した場合のMulti-AZでは2つ以上のアベイラリティゾーンを使用して冗長構成を確保するのですが Auroraでは3つのアベイラリティゾーンに2つずつのレプリケーションを保存するとのことです。

ストレージオートスケーリング

Auroraではストレージ容量を気にする必要がなく、パフォーマンスに影響を与えずに10GBから最大64TBまで動的に容量を変更します。

レプリカに対する性能もMySQLと比較すると上がっているようで、FAQページによるとMySQLのレプリカと比べて以下のような違いがあるようです。

特徴 Amazon Aurora レプリカ MySQL レプリカ
レプリケーション数 最大 15 最大 5
レプリケーションタイプ 非同期的(ミリ秒単位) 非同期的(秒単位)
プライマリへのパフォーマンスの影響
フェイルオーバーターゲットとして機能 はい(データ損失なし) はい(数分間データ損失の可能性)
自動フェイルオーバー はい いいえ
ユーザー定義のレプリケーション遅延サポート いいえ はい
プライマリに対する異なるデータまたはスキーマのサポート いいえ はい

https://aws.amazon.com/jp/rds/aurora/faqs/より抜粋

 

料金

MySQLよりも5倍高速と聞くだけでも非常に高価なイメージになりますが、RDSでMySQLを使用した場合と比べてどう違うでしょうか。

Auroraではメモリ最適化インスタンスであるR3系のインスタンスタイプしか存在しておりませんので、ここではオンデマンドタイプの同一インスタンスの料金を比較してみました。

インスタンスタイプ Aurora MySQL
db.r3.large $0.350 $0.285
db.r3.xlarge $0.700 $0.570
db.r3.2xlarge $1.400 $1.135
db.r3.4xlarge $2.800 $2.270
db.r3.8xlarge $5.600 $4.540

料金は1時間あたりの金額です。db.r3.largeで1ヶ月使用するとなると
Aurora:$0.350×24時間x30日=$252≒25,200円(1ドル100円計算)
MySQL:$0.285×24時間x30日=$205.2≒20,520円(1ドル100円計算)
となります。

性能が本当に5倍なら極端に高額ではないですね。

次回は

Auroraの概要が分かったところで、次回「Amazon AuroraをMySQLと比べてみた(後編)」では本当にMySQLと比べて5倍速いのか?についてお届けいたします。