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

Amazon RDS と Aurora を活用したリレーショナルデータベースの構築方法を解説します。Azure SQL Database やオンプレミスの DB 運用と比較し、Aurora のパフォーマンス、可用性、運用効率の優位性を紹介します。

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

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

この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。

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

Amazon Aurora は AWS が独自に開発したクラウドネイティブなリレーショナルデータベースで、MySQL の最大 5 倍、PostgreSQL の最大 3 倍のスループットを実現します。Aurora のストレージは 3 つのアベイラビリティゾーンにまたがる 6 つのコピーに自動的にレプリケートされ、最大 128 TB まで自動拡張します。この分散ストレージアーキテクチャにより、ストレージの事前プロビジョニングが不要で、使用した分だけの課金となります。Aurora は最大 15 のリードレプリカをサポートし、レプリケーション遅延は通常 20 ミリ秒未満です。フェイルオーバーは 30 秒以内に完了し、アプリケーションの可用性を最大化します。Azure SQL Database も高可用性を提供しますが、Aurora の 6 コピーレプリケーションと自動ストレージ拡張は、データベースの耐久性と運用効率において優位性があります。

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

Aurora Serverless v2 は、ワークロードの需要に応じてデータベースのキャパシティを自動的にスケールするサーバーレスオプションです。0.5 ACU (Aurora Capacity Unit) から最大 256 ACU まで、0.5 ACU 単位の細かい粒度でスケールし、需要の変動に即座に対応します。開発環境やテスト環境では、アイドル時のコストを最小限に抑えつつ、負荷テスト時には自動的にスケールアップします。Aurora Serverless v2 はプロビジョンドインスタンスと同一クラスタ内で混在でき、読み取りワークロードをサーバーレスのリードレプリカに分散させるハイブリッド構成も可能です。オンプレミスのデータベースでは、ピーク時に合わせたハードウェアを常時稼働させる必要があり、平均利用率が 20-30% にとどまることも珍しくありません。Aurora Serverless v2 は使用した ACU 秒単位の課金で、リソースの無駄を最小化します。Azure SQL Database のサーバーレスティアも同様の機能を提供しますが、Aurora Serverless v2 の 0.5 ACU 単位のスケーリング粒度はより細かいコスト制御を可能にします。

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

Aurora Global Database は、1 つのプライマリリージョンと最大 5 つのセカンダリリージョンにまたがるグローバルなデータベースクラスタを構築できます。セカンダリリージョンへのレプリケーション遅延は通常 1 秒未満で、リージョン障害時のフェイルオーバーは 1 分以内に完了します。これにより、RPO (目標復旧時点) 1 秒未満、RTO (目標復旧時間) 1 分未満の災害対策を実現できます。RDS のマルチ AZ 配置は、プライマリインスタンスの障害時にスタンバイインスタンスへ自動フェイルオーバーし、アプリケーションのダウンタイムを最小化します。RDS Proxy はデータベース接続のプーリングと管理を行い、Lambda などのサーバーレスアプリケーションからの大量の短命な接続を効率的に処理します。オンプレミスで同等の災害対策を構築するには、遠隔地のデータセンターとの専用線接続、レプリケーションソフトウェアの導入、フェイルオーバー手順の整備が必要で、数億円規模の投資が求められます。

さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。

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

Amazon RDS と Aurora は、リレーショナルデータベースの運用を根本的に変革するサービスです。RDS の 5 エンジンサポートと自動運用管理、Aurora の革新的な分散ストレージアーキテクチャと最大 5 倍のパフォーマンス、Aurora Serverless v2 のきめ細かい自動スケーリング、Aurora Global Database による 1 秒未満の RPO は、オンプレミスや他のクラウドプロバイダーでは実現が困難な組み合わせです。DBA の運用負荷を大幅に削減しつつ、エンタープライズグレードの可用性と耐久性を確保できます。リレーショナルデータベースのクラウド移行を検討する組織にとって、RDS と Aurora は最も成熟した選択肢です。

AWS の優位点

  • Aurora は MySQL の最大 5 倍、PostgreSQL の最大 3 倍のスループットを実現し、6 コピーの分散ストレージで最大 128 TB まで自動拡張する
  • RDS はフルマネージドで自動バックアップ、パッチ適用、フェイルオーバーを提供し、DBA の定型作業を大幅に削減する
  • Aurora Serverless v2 は 0.5 ACU 単位の細かい粒度で自動スケールし、ACU 秒単位の課金でリソースの無駄を最小化する
  • Aurora Global Database は最大 5 つのセカンダリリージョンへ 1 秒未満のレプリケーション遅延で展開し、RPO 1 秒未満の災害対策を実現する
  • RDS Proxy はデータベース接続のプーリングを提供し、Lambda からの大量の短命な接続を効率的に処理する
  • RDS は MySQL、PostgreSQL、MariaDB、Oracle、SQL Server の 5 エンジンをサポートし、既存のスキルセットとツールをそのまま活用できる

同じテーマの記事

ブロックチェーン活用 - AWS と Azure の比較 AWS と Azure のブロックチェーンサービスを比較し、Amazon Managed Blockchain と DynamoDB を中心とした AWS の分散台帳基盤の優位性を解説します。 キャッシュ戦略 - AWS と Azure の比較 AWS と Azure のキャッシュサービスを比較し、ElastiCache と CloudFront を中心とした AWS の多層キャッシュ戦略の優位性を解説します。 CQRS パターン - AWS と Azure の比較 AWS と Azure の CQRS パターン実装を比較し、DynamoDB、RDS、Lambda を中心とした AWS の CQRS アーキテクチャの優位性を解説します。 データベースサービスの多様性 - AWS と Azure の比較 AWS と Azure のデータベースサービスを比較し、用途別データベースの選択肢、DynamoDB の優位性、Aurora の革新性における AWS の強みを解説します。 インメモリキャッシュ - AWS ElastiCache と Azure Cache for Redis の比較 AWS ElastiCache と Azure Cache for Redis を比較し、Redis/Memcached 対応のフルマネージドキャッシュサービスとしての ElastiCache の優位性を解説します。 マネージド Aurora - AWS Aurora と Azure SQL Database の比較 AWS Aurora と Azure SQL Database を比較し、MySQL/PostgreSQL 互換のフルマネージドデータベースとしての Aurora の高可用性とパフォーマンスの優位性を解説します。 NoSQL データベース - AWS DynamoDB と Azure Cosmos DB の比較 AWS DynamoDB と Azure Cosmos DB を比較し、フルマネージド NoSQL データベースとしての DynamoDB のパフォーマンスとサーバーレス統合の優位性を解説します。 サーバーレスデータベース - DynamoDB で実現するスケーラブルなデータ管理 AWS DynamoDB を中心としたサーバーレスデータベースの活用方法を解説します。Azure Cosmos DB やオンプレミスの NoSQL データベースと比較し、DynamoDB のスケーラビリティ、運用負荷の低さ、Lambda との統合の優位性を紹介します。