Amazon RDS for Auroraについて

AWSの新しいデータベースサービス、RDS for Auroraのプレビュー版の試用申請が通り、やっと使えるようになったので、使用感やフェイルオーバーなどの機能を確認したり、sysbenchでベンチマークをとったりしています。

※Limited Previewへ申請してから案内が来るまでは、1ヶ月ちょっとでした。

Amazon RDS for Auroraは簡単にいうと、
「AmazonがAWSのアーキテクチャに合わせて新しく開発した、高可用性&高性能のMySQL互換RDB」
ということになるのでしょう。

・【AWS発表】Amazon Aurora – Amazon RDSに費用対効果の高いMySQL互換のデータベースが登場!!
http://aws.typepad.com/aws_japan/2014/11/highly-scalable-mysql-compat-rds-db-engine.html

プレビュー版の試用に関することは、利用規約上ここでは紹介できません。

これまで公開された情報を見ると、耐障害性が優れているほか、個人的には、RDS for AuroraはRDS for MySQLと比べてとくに以下の点で魅力的です。

  1. ディスクサイズは10GB単位で自動拡張するので、構築時に決めなくてもよい。
  2. リードレプリカにはログをリレーしない=書き込み負荷がかからないので、読み込み性能が高い。
  3. Multi-AZやリードレプリカを用意せずにシングル構成でも、(少し時間はかかるが)フェイルオーバーが可能。

1.のディスクサイズについては、RDS for MySQLでもあとで増設できるとはいえダウンタイムが生じますし、General Purose(SSD)でIO性能を稼ぐ意味ために本当に必要なサイズよりも極端に大きな1TBなどのサイズを確保する、といったことが不要になります。

3.については、AWS RDS for Aurora FAQ によれば、


「Amazon Aurora レプリカを作成していない場合(単一のインスタンスの場合)、Amazon RDS for Aurora は元のインスタンスと同じアベイラビリティーゾーンに新しい DB インスタンスの作成を試します。この処理に失敗した場合、Amazon RDS for Aurora は異なるアベイラビリティーゾーンに新しい DB インスタンスの作成を試行します。通常フェイルオーバーは開始から完了まで 15 分以内に終了します。」

だそうです。
コストを抑えるためにシングル構成にしても、15分程度のダウンタイムで、フェイルオーバーによって自動復旧してくれるというのは、案外ニーズがあるのではないでしょうか。

ちなみに、現在発表されているUS-EastリージョンでのRDS for Aurora db.r3.largeインスタンス(2vCPU, メモリ15GB)の料金表では、RDS for MySQLの20%程度増しぐらいです。

db.r3.largeインスタンスの費用を大雑把に計算すると、

RDS for Auroraのシングル構成 – $212/月
RDS for MySQLのMulti-AZ構成 – $351/月

となります。
欲をいえば、db.m3.largeインスタンス(2vCPU, メモリ7.5GB)もあるとよいのですが、古い世代のサーバーはサポートされないような気がしますね。

早くβ版もしくは正式版がリリースされて、東京リージョンでも使える世になるとうれしいです。

(参考)
AWS Auroraの仕様、アーキテクチャなどについては、AWSの発表資料やクラスメソッドさんDeveloper.IOの以下の記事がとても参考になりました。

・(SDD415) NEW LAUNCH: Amazon Aurora: Amazon’s New Relational Database Engine | AWS re:Invent 2014
https://www.slideshare.net/AmazonWebServices/sdd415-new-launch-amazon-aurora-amazons-new-relational-database-engine-aws-reinvent-2014

・Developers.IO – オーロラは雲の上 ? RDBのScalabilityとAvailability
http://dev.classmethod.jp/cloud/aurora-is-above-the-clouds-rdb-scalability-availability/

・Developers.IO – Amazon Auroraの耐障害性について調べてみた
http://dev.classmethod.jp/cloud/amazon-aurora-fault-tolerance/

Follow me!