こんにちは、ちゃりおです。
AWSでRDBを使用する際に、AuroraかRDSかで迷ったことはありませんか。
今回は、選択する際の基準を書こうと思います。
結論から書くと「基本はAurora」がおすすめです。
RDSとは
AWSが提供するRDBSのPaaSです。
PaaSなので、ハードウェアからOSまでAWSが管理してくれます。
自前でDBサーバを用意するより、簡単にDBを使用することができます。
機能としては以下があります。
- ソフトウェアの自動パッチ適用
- 自動バックアップ
- マルチAZ配置による障害対策
- ストレージのAutoスケーリング
Auroraとは
RDSで提供されているデータベースエンジンの一つです。
AWSが独自に開発している、クラウド向けデータベースです。
MysqlとPostgreSqlと互換性があるエディションが用意されています。
特徴的なのは、パフォーマンスの部分です。
Amazon Aurora は、標準的な MySQL データベースと比べて最大で 5 倍、標準的な PostgreSQL データベースと比べて最大で 3 倍高速です
なんと、普通のMysqlの5倍のパフォーマンス。
あとは、ストレージが特徴的でデフォルトで3つのAZにコピーされるため耐障害性が高いです。
他にも色々運用を楽にする機能があります。
RDSとAurora
耐障害性
こちらは、Auroraのほうが高いです。
Auroraのストレージは6重化されていてDBインスタンスと独立しています。(1つのAZに2個のデータ、3AZに跨って合計6個)
6重化されていることにより、AZ障害などの際もDBを使用することができます。
RDSだとマルチAZ配置(別AZにスタンバイ作成)にすることで耐障害性を高めることができます。
RDSはディスクが2本故障した際に停止するのに対して、Auroraではディスクが3本故障しても読み込みが可能です。
料金
l5.largeで料金を比較してみます。(2019/08/31時点)
DB | 料金(USD/h) |
---|---|
RDS(Mysql シングルAZ) | 0.285 |
RDS(Mysql マルチAZ) | 0.57 |
Aurora(シングルAZ) | 0.35 |
Aurora(マルチAZ) | 0.7 |
RDSのほうが20%ほど安いです。
しかし、許容できるダウンタイムによってはAuroraはシングルAZで使用することもありです。
シングルで立てても、ストレージは6重化され対障害性が高いです。
RDSマルチAZ比べると、AuroraシングルAZの方が40%ほど安いです。
ただ、シングルAZにする場合下記の注意点があります。
- シングルだとSLA対象外
- フェールオーバーに10分ほどかかる
ビジネスへの影響を考慮して、AuroraシングルAZも選択肢に入れると良さそうです。
- RDSのほうが安い
- フェールオーバー10分を許容できるなら、シングルAZ Auroraが安い
サポートされいるDBエンジン
対応しているDBエンジンは、RDSが多いです。
PostgreSQL、Mysql以外を使いたい場合は、RDSになります。
RDS
DB |
---|
PostgreSQL |
Mysql |
MariaDB |
Oracleデータベース |
SQLServer |
Aurora
DB |
---|
PostgreSQL |
Mysql |
まとめ
AuroraとRDSを比較してみました。
対障害性やパフォーマンスの面で、Auroraの方が優れています。
安く使いたい場合や、Mysql・PostgreSQL以外を使いたい場合は基本Auroraを使用するでいい気がします。
- 対障害性はAuroraのほうが高い
- RDSのほうが安いが、要件によってはシングルAZのAuroraもあり
- Mysql、PostgreSql以外を使いたい場合は、RDS