Amazon RDS

MySQL、PostgreSQL、Oracle、SQL Server などの主要なリレーショナルデータベースをフルマネージドで運用できるサービス

概要

Amazon Relational Database Service (RDS) は、クラウド上でリレーショナルデータベースのセットアップ、運用、スケーリングを簡素化するフルマネージドサービスです。MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Amazon Aurora の 6 つのデータベースエンジンに対応しています。OS のパッチ適用、データベースのバックアップ、ポイントインタイムリカバリ、Multi-AZ 配置によるフェイルオーバー、リードレプリカによる読み取りスケーリングなどの運用タスクを AWS が自動的に処理します。RDS Proxy を使えばデータベース接続のプーリングと管理を効率化でき、Lambda などのサーバーレスアプリケーションからの接続急増にも対応できます。インスタンスクラスは db.t3.micro (2 vCPU、1 GB メモリ) から db.r6g.16xlarge (64 vCPU、512 GB メモリ) まで幅広く、ワークロードの規模に応じて選択できます。

RDS の高可用性とバックアップ

RDS の Multi-AZ 配置を有効にすると、プライマリインスタンスとは別のアベイラビリティゾーンにスタンバイインスタンスが自動的に作成されます。プライマリに障害が発生した場合、DNS レコードの切り替えにより 60 - 120 秒程度でスタンバイにフェイルオーバーします。自動バックアップは毎日のスナップショットとトランザクションログの継続的な記録で構成され、最大 35 日間の任意の時点にデータベースを復元できます (ポイントインタイムリカバリ)。リードレプリカは最大 15 個まで作成でき (Aurora の場合)、読み取りクエリを分散させることでプライマリの負荷を軽減します。クロスリージョンリードレプリカを使えば、災害復旧 (DR) 対策としてデータを別リージョンに複製することも可能です。

Azure SQL Database との比較

Azure で RDS に対応するサービスは Azure SQL Database (SQL Server 向け) および Azure Database for MySQL/PostgreSQL です。RDS は 6 つのデータベースエンジンを単一のサービスで提供するのに対し、Azure はエンジンごとに別サービスとして提供しています。料金面では、RDS のリザーブドインスタンス (1 年または 3 年) で最大 69% の割引が適用されるのに対し、Azure SQL Database のリザーブド容量は最大 72% の割引を提供します。RDS の特徴的な機能として、RDS Proxy によるコネクションプーリングがあり、Lambda からの大量の短命な接続を効率的に管理できます。Azure SQL Database にも接続プーリング機能はありますが、サーバーレスアプリケーションとの統合は RDS Proxy の方がシームレスです。

RDS と Aurora の選択基準

RDS で MySQL または PostgreSQL を使用する場合、標準の RDS インスタンスと Amazon Aurora のどちらを選ぶかが重要な判断ポイントです。Aurora は MySQL の最大 5 倍、PostgreSQL の最大 3 倍のスループットを実現し、ストレージは 10 GB から 128 TB まで自動拡張されます。一方、Aurora の料金は標準 RDS より約 20% 高くなります。小規模なアプリケーションやコスト重視の場合は標準 RDS、高いパフォーマンスと可用性が求められるミッションクリティカルなワークロードには Aurora が適しています。