RDS と Aurora
Amazon RDS(Relational Database Service)は、リレーショナルデータベースのセットアップ・運用・スケーリングをAWSが代わりに管理するマネージドサービスです。Aurora はAWS独自のクラウドネイティブなリレーショナルDBで、RDSのラインナップの中でも特に高性能・高耐久です。
概要
リレーショナルデータベース(RDB)は、表形式でデータを管理し、SQLを使って操作するデータベースです。従来は自社サーバー上にデータベースを構築・管理していましたが、RDSを利用することでOSのパッチ適用・バックアップ・フェイルオーバーといった運用作業をAWSに委任できます。
ただし、マネージドサービスであっても、データベース内のデータ・ユーザー管理・クエリのチューニングはユーザーの責任です。このAWSと利用者の責任範囲の違いはCP試験頻出テーマです(責任共有モデル参照)。
CP試験で押さえるポイント
- RDSはパッチ適用・バックアップ・フェイルオーバーをAWSが管理する。ただしデータとアクセス権限はユーザーの責任
- マルチAZ配置はスタンバイ用に別AZへ自動同期レプリカを持ち、障害時に自動フェイルオーバーする(可用性向上が目的)
- リードレプリカは読み取り専用のコピーを作成し、SELECT系クエリを分散させる(読み取りパフォーマンス向上が目的)
- マルチAZとリードレプリカの違い(目的・フェイルオーバー可否)はCP最頻出。混同しないこと
- RDS対応エンジンは6種類(MySQL・PostgreSQL・MariaDB・Oracle・SQL Server・Amazon Aurora)
- AuroraはMySQL/PostgreSQL互換のクラウドネイティブDB。標準MySQLの最大5倍の性能
RDSの対応データベースエンジン
Amazon RDSは以下の6種類のデータベースエンジンをサポートしています。
- MySQL:広く使われるオープンソースRDB
- PostgreSQL:高機能なオープンソースRDB
- MariaDB:MySQLから派生したオープンソースRDB
- Oracle:エンタープライズ向け商用RDB
- Microsoft SQL Server:Windowsシステムに多い商用RDB
- Amazon Aurora:AWSが開発したクラウドネイティブRDB
マルチAZ配置とリードレプリカ
この2つの概念はCP試験で最も頻繁に問われるトピックです。目的・動作・フェイルオーバーの有無を正確に区別して覚えましょう。
| 機能 | 目的 | 仕組み | フェイルオーバー | 読み書き |
|---|---|---|---|---|
| マルチAZ配置 | 可用性向上(HA) | 別AZにスタンバイを同期レプリケーション。プライマリ障害時に自動で切り替わる | 自動(数分以内) | スタンバイは通常アクセス不可(待機専用) |
| リードレプリカ | 読み取りパフォーマンス向上 | 非同期レプリケーションで読み取り専用レプリカを作成。SELECT系クエリを分散できる | 自動ではない(手動昇格が必要) | 読み取り専用(書き込みはプライマリへ) |
よくある誤解:「マルチAZにすればパフォーマンスが上がる」→ 誤りです。マルチAZのスタンバイはアクティブに読み書きできないため、負荷分散には使えません。読み取り性能向上にはリードレプリカが必要です。
EC2上の自前DBとRDSの責任範囲の違い
EC2インスタンス上にMySQLなどを自分でインストールして使う場合と、RDSを利用する場合では管理する責任範囲が異なります。
| 管理項目 | EC2上の自前DB | Amazon RDS |
|---|---|---|
| OSのパッチ適用 | ユーザーが実施 | AWSが実施 |
| DBエンジンのパッチ | ユーザーが実施 | AWSが実施(自動化可能) |
| バックアップ設定 | ユーザーが実施 | AWSが実施(自動バックアップ) |
| フェイルオーバー | ユーザーが設計・実施 | AWSが自動実施(マルチAZ時) |
| データ・ユーザー管理 | ユーザーが実施 | ユーザーが実施 |
Amazon Aurora
Auroraは、AWSがクラウド向けに独自開発したリレーショナルデータベースエンジンです。MySQL互換版とPostgreSQL互換版の2種類があり、既存のMySQLやPostgreSQL向けアプリケーションをほぼそのまま移行できます。
- 高性能: 標準MySQLの最大5倍、PostgreSQLの最大3倍のスループットを実現
- 高耐久: データは3つのAZにわたり6か所にレプリケーションされる
- 自動スケーリング: Aurora Serverlessを使うと、トラフィックに応じてDBインスタンスの容量が自動でスケールイン・アウトする
- コスト: 商用DBと比較して低コストだが、RDSのMySQL/PostgreSQLより若干高い
関連サービスとの違い・使い分け
RDS・Aurora は構造化データを扱うリレーショナルDBです。スキーマが不要なNoSQLや分析用途のデータベースは別のサービスを使います。
| サービス | 種類 | 主な用途・選定理由 |
|---|---|---|
| Amazon RDS | リレーショナルDB(マネージド) | ECサイト・業務システムなどSQLが必要な用途。既存エンジンを移行したい場合 |
| Amazon Aurora | リレーショナルDB(クラウドネイティブ) | 高いパフォーマンスと耐久性が必要なリレーショナルDB用途 |
| Amazon DynamoDB | NoSQL(キーバリュー型) | スキーマが柔軟・大規模トラフィック・サーバーレス向け(詳細はこちら) |
| Amazon Redshift | データウェアハウス | 大量データの分析・BIレポート(OLAP用途)(詳細はこちら) |
確認問題
付録:公式ドキュメント・Black Belt 動画
さらに深く学びたい方は、AWS公式の以下のリソースを参照してください(いずれも外部サイトが開きます)。