RDS と Aurora

Amazon RDS(Relational Database Service)は、リレーショナルデータベースのセットアップ・運用・スケーリングをAWSが代わりに管理するマネージドサービスです。Aurora はAWS独自のクラウドネイティブなリレーショナルDBで、RDSのラインナップの中でも特に高性能・高耐久です。

概要

リレーショナルデータベース(RDB)は、表形式でデータを管理し、SQLを使って操作するデータベースです。従来は自社サーバー上にデータベースを構築・管理していましたが、RDSを利用することでOSのパッチ適用・バックアップ・フェイルオーバーといった運用作業をAWSに委任できます。

ただし、マネージドサービスであっても、データベース内のデータ・ユーザー管理・クエリのチューニングはユーザーの責任です。このAWSと利用者の責任範囲の違いはCP試験頻出テーマです(責任共有モデル参照)。

CP試験で押さえるポイント

RDSの対応データベースエンジン

Amazon RDSは以下の6種類のデータベースエンジンをサポートしています。

マルチ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向けアプリケーションをほぼそのまま移行できます。

関連サービスとの違い・使い分け

RDS・Aurora は構造化データを扱うリレーショナルDBです。スキーマが不要なNoSQLや分析用途のデータベースは別のサービスを使います。

サービス 種類 主な用途・選定理由
Amazon RDS リレーショナルDB(マネージド) ECサイト・業務システムなどSQLが必要な用途。既存エンジンを移行したい場合
Amazon Aurora リレーショナルDB(クラウドネイティブ) 高いパフォーマンスと耐久性が必要なリレーショナルDB用途
Amazon DynamoDB NoSQL(キーバリュー型) スキーマが柔軟・大規模トラフィック・サーバーレス向け(詳細はこちら)
Amazon Redshift データウェアハウス 大量データの分析・BIレポート(OLAP用途)(詳細はこちら)

確認問題

付録:公式ドキュメント・Black Belt 動画

さらに深く学びたい方は、AWS公式の以下のリソースを参照してください(いずれも外部サイトが開きます)。

公式ドキュメント

AWS Black Belt Online Seminar(動画・解説資料)