Amazon Aurora/MariaDB/MySQLの違いを整理してみる #reinvent

Amazon RDS

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

日本にいます西澤です。ついに東京リージョンにやってきたAuroraに加えて、MariaDBもRDSで利用が可能となりました!ちょっと選択肢が増えすぎて違いがわからなくなってきたので、情報を整理してみたいと思います。

Specify DB Details

Launch時に指定する項目から、違いがあるところだけ整理していきます。Aurora、MariaDBもt2インスタンス等で検証ができるようになると良いですね。特筆すべきは、Auroraの可用性(自動復旧するし、ディスクは自動拡張!)です。

DB Engine Amazon Aurora MariaDB MySQL 備考
DB Engine Version - 10.0.17
  • 5.1.x
  • 5.5.x
  • 5.6.x
AuroraはMySQL5.6互換
DB Instance Class
  • db.r3.xxx
  • db.r3.xxx
  • db.t2.xxx
  • db.m3.xxx
  • db.r3.xxx
MySQLは最新インスタンスタイプのみ記載
Multi-AZ Deployment
  • Create Replica in Differnt Zone
  • No
  • Yes
  • No
  • Yes
  • No
Auroraは明示的にMulti-AZ指定なしでも自動復旧する※
Storage -
  • Magnetic: 5GB〜3TB
  • General Purpose (SSD): 5GB〜6TB
  • Provisioned IOPS (SSD): 100GB〜6TB
  • Magnetic: 5GB〜3TB
  • General Purpose (SSD): 5GB〜6TB
  • Provisioned IOPS (SSD): 100GB〜6TB
Auroraは管理不要で自動拡張するSSD

Configure Advanced Settings

Auroraの特徴ばかりが目立ちます。AuroraはDB Clusterで可用性が担保されます。デフォルトで選択されるBackup Retention PeriodがAuroraだけ7日ではなく1日となっていますが、変更は同じようにできるようでした。

DB Engine Amazon Aurora MariaDB MySQL 備考
DB Cluster Identifier クラスタ名 - - AuroraではRDSインスタンスを管理するDBクラスタを作成される
DB Cluster Parameter Group 任意 - - DBクラスタ管理用のパラメータグループ
Copy Tags To Snapshots - true/false true/false Auroraではまだサポートされていない模様(API経由は未確認)
Enable Encryption - true/false true/false Auroraでは未サポート(通信はAES-256で暗号化される)※

オンデマンドのインスタンス料金

いずれのDB Engineでも利用できるdb.r3.largeで、且つAuroraはプライマリとレプリカがセットでクラスタ起動するとして、他のRDSはMulti-AZと比較してみます。RDSインスタンス料金は東京リージョンのものです。ストレージ利用料金は現時点で公式ページの更新が追いついていないようなので割愛。

DB Engine Amazon Aurora

(プライマリ+リードレプリカ)

MariaDB

Multi-AZ

MySQL

Multi-AZ

備考
オンデマンド db.r3.large $0.70/h $0.570/h $0.570/h Auroraは2インスタンス分の料金
  • Auroraは、遅延なしリードレプリカとしても使えて、自動Failover先にもなるので、Muliti-AZよりも断然高機能
  • Amazon RDS料金

まとめ

RDSとしてのMariaDBは、料金もパラメータもMySQLとほぼ同じように使うことができますね(違いは選べるインスタンスタイプが少ないところだけ)。Auroraは特性をよく理解して使う必要があるということが、整理してみることでよく理解できました。Auroraは起動時のバックアップが作成されないところなんかも動作が異なりました。新しいサービスはやはりまず触ってみないとダメですね。