AWS 上でリレーショナルデータベースを使いたい場合、Amazon RDS と Amazon Aurora という選択肢がよく挙がりますよね。
ただ、「Aurora って RDS の一種じゃないの?」と混乱する方もいるのではないでしょうか。
この記事では、RDS 全体とAuroraの関係、および違いをざっくりまとめてみます!
1. まずは RDS とは?
RDS (Relational Database Service) は、AWS が提供する マネージドなリレーショナルデータベース サービスの総称です。
RDS では以下のエンジンがサポートされています。
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- SQL Server
- Amazon Aurora (MySQL/PostgreSQL 互換)
ポイントは、Aurora も RDS の一部に含まれるエンジンの一つ、ということ。
RDS は「AWS がデータベースのインフラを管理してくれるから、ユーザーはアプリ側の構築に集中できる」サービスです。
RDS 全体の特徴
-
複数のデータベースエンジンから選べる
MySQL や PostgreSQL、オラクル系などを使いたい場合にも対応。 -
DB のパッチ適用、バックアップ、リストアなどが自動化可能
いわゆる運用負荷を大きく下げるマネージドなメリット。 -
スケーリング
インスタンスタイプやストレージサイズを変更して拡張/縮小が比較的容易。 -
オープンソースや商用 DB をクラウドでそのまま動かしたい
オンプレの MySQL や PostgreSQL、Oracle 等を AWS 移行する際にも RDS が選ばれがち。
2. Aurora とは?
Aurora は、AWS が独自に開発した高性能・高可用性のリレーショナルデータベースエンジン です。
一応カテゴリとしては「RDS エンジンのひとつ」ですが、中身はかなり違う設計になっています。
Aurora の主な特徴
-
MySQL / PostgreSQL 互換
- Aurora (MySQL 互換) と Aurora (PostgreSQL 互換) の 2 種類があり、既存のアプリを大きく書き換えなくても移行しやすい。
-
高パフォーマンス
- オリジナルの MySQL や PostgreSQL に比べて最大 5~10 倍のスループットを実現すると言われている(AWS 公称値)。
-
ストレージが自動スケール & 高可用性
- データは 6 つのコピーを 3 つの AZ (Availability Zone) にまたがって保存。ディスク障害に強い。
- ストレージは 10GB~128TB まで段階的に自動拡張される。
-
高速なフェイルオーバー
- 高可用性構成 (Aurora Replica) を作れば、障害発生時に数十秒以内でフェイルオーバー可能。
Aurora ならではのメリット
- 自動スケールするストレージ と 複数 AZ にまたがるレプリカ の仕組みで、可用性&耐障害性が高い。
- 高いパフォーマンス:クラウド向けに最適化されたエンジンなので、ディスク I/O が高速。
- Serverless オプション(Aurora Serverless)を利用すれば、負荷に応じて自動的にキャパシティを上下させることも可能。
Aurora のデメリットや注意点
-
Aurora 特有の設計
- MySQL や PostgreSQL と互換性はあるが、細かいバージョンの差や対応していない機能がある場合も。
-
ややコストが高め
- 一般的な MySQL / PostgreSQL RDS よりも高性能な分、コストは少し高い傾向にある。
-
バージョンの進み方がオリジナルより遅いことも
- オリジナルのエンジンに比べて、Aurora 側での対応が遅れる場合がある。
3. RDS と Aurora の違いをざっくり表に
項目 | RDS 全体 | Aurora |
---|---|---|
エンジン | MySQL, PostgreSQL, MariaDB, Oracle, SQL Server | Aurora MySQL / Aurora PostgreSQL (独自エンジン) |
パフォーマンス | オリジナルエンジンそのまま | 高速化されたクラウドネイティブエンジン |
データ保管 & レプリカ | ストレージは EBS 上にある。フェイルオーバー可 | 3AZ × 各 AZ 2 コピー → 計 6 コピーで冗長化 |
スケーリング | インスタンス&ストレージを手動で拡張 | ストレージが自動拡張 (10GB ~ 128TB)、Aurora Serverless も選択可 |
互換性 | 使いたい DB とバージョンを選択 | MySQL / PostgreSQL と互換性あり |
コスト感 | 小~中規模でオリジナル DB をそのまま使うなら安め | 若干割高(そのぶん高性能、高可用性) |
ユースケース一例 | 既存オンプレ DB と同じバージョンをクラウド移行 | 大量トランザクション、高可用性が必須の場合など |
4. どう使い分けるの?
-
まずは既存のデータベースをAWSに移行したいだけ
- Oracle や SQL Server、特定バージョンの MySQL / PostgreSQL をそのまま使いたいなら、RDS の通常エンジンが無難。
-
性能や可用性を重視してクラウドネイティブな DB を使いたい
- Aurora がベストチョイス。高スループット、ディスク障害への強さ、データ自動スケールなどが魅力。
-
サーバーレスで自動スケールする DB を使いたい
- Aurora Serverless (v1/v2) を選ぶ手もある。アクセスの多寡に合わせてキャパシティを自動調整。
もし最初は小規模で始めて、将来的に拡張の見込みがあるなら、最初から Aurora を使っておくと柔軟に対応しやすいです。
ただしコストとのバランスがあるので、小さなアプリや実験用途なら RDS のオリジナル MySQL/PostgreSQL のほうが安上がりなことも多いです。
まとめ
- RDS は AWS マネージドのリレーショナル DB サービス群の総称。Oracle や SQL Server 含めていろんなエンジンを利用可能。
- Aurora は その RDS エンジンのひとつ だけど、AWS 独自の設計で 高パフォーマンス & 高可用性 を実現している特別枠。
- 性能、可用性、スケーラビリティを最重視するなら Aurora。既存 DB をそのままクラウドに持ってきたい or 小規模で安く済ませたいなら RDS の各エンジンが向いてる。
ぜひ自分のアプリやシステム要件(性能要件、可用性、コスト)を考慮しながら、ベストな DB 選択をしてみてください!
もし何か質問や実際に使ってみた経験談があれば、コメントで教えてください!
この記事が少しでもお役に立てればうれしいです。