リレーショナルデータベース - Amazon RDS と Aurora で実現する高可用性データベース

Amazon RDS と Aurora を活用したリレーショナルデータベースの構築方法を解説します。

マネージドリレーショナルデータベースの価値

リレーショナルデータベースは企業の基幹システムの中核を担い、トランザクション処理、データ整合性、複雑なクエリ処理において不可欠な存在です。Amazon RDS はフルマネージドのリレーショナルデータベースサービスで、IBM Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle Database、PostgreSQL の 6 つのエンジンをサポートします (2026 年 8 月時点の公式ドキュメント記載のエンジン)。オンプレミスでのデータベース運用では、ハードウェアの調達、OS のインストール、DB エンジンのセットアップ、パッチ適用、バックアップ、レプリケーション構成など膨大な運用タスクが発生し、こうした定型作業がデータベース担当者の時間を大きく占めます。RDS はこれらの運用タスクを AWS が管理し、DBA はスキーマ設計やクエリ最適化などの付加価値の高い業務に集中できます。自動バックアップは最大 35 日間の保持期間で、任意の時点への復元 (PITR) が 5 分間隔で可能です。

Amazon Aurora の革新的アーキテクチャ

Amazon Aurora は AWS が独自に開発したクラウドネイティブなリレーショナルデータベースで、MySQL の最大 5 倍、PostgreSQL の最大 3 倍のスループットを実現します。Aurora のストレージは 3 つのアベイラビリティゾーンにまたがる 6 つのコピーに自動的にレプリケートされ、最大 128 TB まで自動拡張します。この分散ストレージアーキテクチャにより、ストレージの事前プロビジョニングが不要で、使用した分だけの課金となります。Aurora は最大 15 のリードレプリカをサポートし、リードレプリカはプライマリと同じ分散ストレージを共有するため複製の遅延はごく小さく抑えられます。実際の遅延は CloudWatch の AuroraReplicaLag 指標で監視できます。フェイルオーバーは 30 秒以内に完了し、アプリケーションの可用性を最大化します。以下は RDS for PostgreSQL インスタンスを作成する CLI コマンドの例です。 aws rds create-db-instance \ --db-instance-identifier my-postgres-db \ --db-instance-class db.r6g.large \ --engine postgres \ --master-username admin \ --master-user-password MySecurePassword123 \ --allocated-storage 100 \ --multi-az \ --storage-encrypted なお、--engine-version を省略すると、そのエンジンの既定バージョンが選ばれます。指定できるバージョンは aws rds describe-db-engine-versions で確認できます。

Aurora Serverless によるサーバーレスデータベース

Aurora Serverless (旧称 Aurora Serverless v2) は、ワークロードの需要に応じてデータベースのキャパシティを自動的にスケールするサーバーレスオプションです。最小 0.5 ACU (Aurora Capacity Unit) から最大 256 ACU (2026 年 8 月時点の公式ドキュメント記載値) まで、0.5 ACU 単位の細かい粒度でスケールし、需要の変動に即座に対応します。最小キャパシティを 0 ACU に設定した場合は、一定時間アイドルが続いたクラスタが自動的に一時停止し、次のアクセスで再開します (一時停止までの待機時間は既定 300 秒で、300 秒から 86,400 秒の範囲で設定できます)。開発環境やテスト環境では、アイドル時のコストを最小限に抑えつつ、負荷テスト時には自動的にスケールアップします。Aurora Serverless はプロビジョンドインスタンスと同一クラスタ内で混在でき、読み取りワークロードをサーバーレスのリードレプリカに分散させるハイブリッド構成も可能です。オンプレミスのデータベースでは、ピーク時に合わせたハードウェアを常時稼働させる必要があり、閑散時も同じ費用がかかり続けます。Aurora Serverless は使用した ACU 秒単位の課金で、リソースの無駄を最小化します。

グローバル展開と災害対策

Aurora Global Database は、1 つのプライマリリージョンと最大 10 のセカンダリリージョンにまたがるグローバルなデータベースクラスタを構築できます (2026 年 8 月時点の公式ドキュメント記載値)。セカンダリの DB クラスタ数とプライマリクラスタのリードレプリカ数には合計 15 という上限があり、セカンダリを 10 リージョンまで広げた場合、プライマリのリードレプリカは 5 台までになります。セカンダリリージョンへのレプリケーション遅延は通常 1 秒未満で、リージョン障害時のフェイルオーバーは 1 分以内に完了します。これにより、RPO (目標復旧時点) 1 秒未満、RTO (目標復旧時間) 1 分未満の災害対策を実現できます。RDS のマルチ AZ 配置は、プライマリインスタンスの障害時にスタンバイインスタンスへ自動フェイルオーバーし、アプリケーションのダウンタイムを最小化します。RDS Proxy はデータベース接続のプーリングと管理を行い、Lambda などのサーバーレスアプリケーションからの大量の短命な接続を効率的に処理します。オンプレミスで同等の災害対策を構築するには、遠隔地のデータセンターとの専用線接続、レプリケーションソフトウェアの導入、フェイルオーバー手順の整備が必要で、相応の初期投資と継続的な運用体制が求められます。

RDS と Aurora の料金

料金は 2026 年 8 月時点・バージニア北部と東京の 2 リージョンのオンデマンド単価です。RDS for PostgreSQL の db.r6g.large (シングル AZ) は 1 時間あたり 0.225 USD (バージニア北部)、0.270 USD (東京) です。Aurora PostgreSQL の同じインスタンスクラスは標準構成で 1 時間あたり 0.26 USD (バージニア北部)、0.313 USD (東京) です。ストレージは RDS の gp3 (シングル AZ) が 1 GB あたり月額 0.115 USD (バージニア北部)、0.138 USD (東京)、Aurora の標準構成が 1 GB あたり月額 0.10 USD (バージニア北部)、0.12 USD (東京) です。Aurora Serverless は ACU (Aurora Capacity Unit) の従量課金で、1 ACU 時間あたり 0.12 USD (バージニア北部)、0.15 USD (東京) です。I/O 課金の変動を避けたい場合は I/O-Optimized 構成を選べますが、その場合はインスタンスとストレージの単価が上がる代わりに I/O リクエスト課金がなくなります。長期利用が前提ならリザーブドインスタンス (1 年・3 年) で単価を下げられます。割引率は契約期間と前払い方式で変わるため、実際の見積もりは公式料金表で確認してください。

まとめ - リレーショナルデータベースの最適な選択

Amazon RDS と Aurora は、リレーショナルデータベースの運用を根本的に変革するサービスです。DBA の運用負荷を大幅に削減しつつ、エンタープライズグレードの可用性と耐久性を確保できます。MySQL/PostgreSQL 互換で高性能が必要な場合は Aurora、既存エンジンとの完全互換が必要な場合は RDS を選択します。

参考資料 (AWS 公式)

本ページの一次情報は AWS 公式サイトおよび公式ドキュメントです。最新の仕様 / 料金は次の公式ページで確認できます。

本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。