AWS】RDS と Aurora の違いをざっくり解説

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 の主な特徴

1. **MySQL / PostgreSQL 互換**  
   - Aurora (MySQL 互換) と Aurora (PostgreSQL 互換) の 2 種類があり、既存のアプリを大きく書き換えなくても移行しやすい。

2. **高パフォーマンス**  
   - オリジナルの MySQL や PostgreSQL に比べて**最大 5～10 倍**のスループットを実現すると言われている（AWS 公称値）。

3. **ストレージが自動スケール & 高可用性**  
   - データは 6 つのコピーを 3 つの AZ (Availability Zone) にまたがって保存。ディスク障害に強い。  
   - ストレージは 10GB～128TB まで段階的に自動拡張される。

4. **高速なフェイルオーバー**  
   - 高可用性構成 (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 選択をしてみてください！

> もし何か質問や実際に使ってみた経験談があれば、コメントで教えてください！  
> この記事が少しでもお役に立てればうれしいです。