AWS Certified - Database Specialty(DBS-C01)の勉強をしていたとき、問題集でAuroraやRDSの違いに関する問題をやたらとみかけたので、自分用にメモとしてまとめました。
この記事では、そのメモをベースとした、試験対策やデータベースアーキテクチャ選定の際の参考資料として活用できるチートシートをご紹介します。
チートシート
項目 | Amazon Aurora | Amazon RDS |
---|---|---|
インスタンスとストレージの分離 | あり(独立してスケーリング可能) | なし |
レプリカ | Auroraレプリカ(最大15個まで) | スタンバイインスタンスとリードレプリカ |
ストレージの指定と料金 | 指定不要、使用分のみ料金発生 | ストレージタイプと容量を指定、料金はプランによる |
Aurora Serverless | あり(インスタンスタイプ指定なし、自動スケーリング) | なし |
Advanced Auditing | あり(Aurora独自の監査機能) | なし(AWS CloudTrailや外部監査ツールを使用) |
クエリの並列化 | あり(インスタンスとストレージの分離による高速データ処理) | 一部DBエンジンで可能(パフォーマンスはAuroraより劣る可能性あり) |
クラスターパラメータグループで設定変更 | あり(バイナリログやS3との連携設定など) | あり(DBパラメータグループを利用) |
ゼロダウンタイムパッチ適用 (ZDP) | あり(データベースパッチ適用時のダウンタイム最小限) | なし(メンテナンスウィンドウ内でパッチ適用) |
Point-In-Time Recovery (PITR) | あり(復元時間が5分以内) | あり(復元時間が5分以上) |
SQLクエリ形式でS3へデータをエクスポート | あり(データのバックアップや外部システムへの移行が容易) | 一部DBエンジンで可能(機能はAuroraより限定的かも) |
CloudWatchメトリクス | あり(豊富なメトリクスで運用監視が容易) | あり(Auroraほどのメトリクスは提供されていない可能性あり) |
障害挿入クエリ | あり(システムの耐障害性を試験的に確認) | なし |
データベースアクティビティストリーム | あり(Kinesis Data Streamsとリアルタイム連携) | 一部DBエンジンで可能(機能はAuroraより限定的かも) |
Aurora MySQLからLambda関数を呼び出す | あり(データベースとサーバーレスアーキテクチャの統合) | 一部DBエンジンで可能(機能はAuroraより限定的かも) |
機械学習サービスとの連携 | あり(Amazon SageMakerやAmazon Comprehendと連携可能) | 一部DBエンジンで可能(機能はAuroraより限定的かも) |
補足説明
各項目について、簡単に補足します。
インスタンスとストレージの分離
Amazon Auroraでは、インスタンス(計算能力)とストレージ(データ保存)が分離されています。この設計により、インスタンスとストレージのスケーリングが独立して行われ、リソース使用率が最適化されます。また、ストレージの自動拡張機能があり、利用量に応じて容量が自動的に増減されるため、ストレージ管理が容易になります。
レプリカ
Auroraレプリカは、Amazon RDSのスタンバイインスタンスとリードレプリカを兼ねており、読み取り専用のインスタンスとして機能します。これにより、リードトラフィックを複数のインスタンスに分散させることができ、パフォーマンスの向上が期待できます。また、最大15個のAuroraレプリカを作成できるため、大規模な読み取り負荷にも対応できます。
ストレージの指定と料金
Auroraでは、ストレージタイプと容量を指定する必要がありません。料金は使用分のみ発生します。
Aurora Serverless
Aurora Serverlessは、インスタンスタイプを指定せずに自動的にCPUやメモリをスケーリングするオプションです。これにより、データベースの容量プロビジョニングやスケーリングに関する運用負荷が軽減され、コスト効率が向上します。
Advanced Auditing
Advanced Auditingは、Aurora独自の監査機能で、データベースのアクセスや操作に関する詳細なログを取得できます。これにより、セキュリティ監査や運用監視が容易になります。
クエリを並列化
Auroraでは、インスタンスとストレージが分離されていることから、クエリの並列処理が可能になります。これにより、高速なデータ処理やレスポンスが実現され、パフォーマンスが向上します。
クラスターパラメータグループで設定変更
Auroraでは、DBクラスターパラメータグループを利用して、バイナリログやS3との連携設定などのデータベース設定を変更できます。これにより、データベースの挙動を柔軟にカスタマイズすることができます。
ゼロダウンタイムパッチ適用(ZDP)
Auroraでは、ゼロダウンタイムパッチ適用(ZDP)という機能があります。これにより、データベースのパッチを適用する際に、システムのダウンタイムを最小限に抑えることができます。これにより、システムの可用性が向上し、運用負荷が軽減されます。
Point-In-Time Recovery(PITR)
Auroraでは、Point-In-Time Recovery(PITR)を利用して、データベースを特定の時点まで復元することができます。AuroraのPITRは、復元時間が5分以内と短く、RDSの5分よりも高速に復元を行うことができます。これにより、データ損失のリスクを最小限に抑えることができます。
SQLクエリ形式でS3へデータをエクスポート
Auroraでは、SQLクエリ形式でデータをS3にエクスポートすることができます。これにより、データのバックアップや外部システムへの移行が容易になります。
CloudWatchメトリクス
Auroraでは、Amazon CloudWatchメトリクスを利用して、データベースのパフォーマンスやリソース使用状況を監視できます。クラスターメトリクス(ストレージ使用量、IOPS)やインスタンスメトリクス(CPU/メモリ使用率)など、豊富なメトリクスが提供されており、運用監視が容易になります。
障害挿入クエリ
Auroraでは、障害挿入クエリを使用して、インスタンスやストレージの障害を意図的に発生させることができます。これにより、システムの耐障害性を試験的に確認することができます。
データベースアクティビティストリーム
データベースアクティビティストリームを利用することで、データベースのアクセスや操作に関する情報をリアルタイムでAmazon Kinesis Data Streamsに連携できます。これにより、セキュリティ監査や運用監視がより効率的に行えます。
Aurora MySQLからLambda関数を呼び出す
Aurora MySQLでは、Lambda関数を呼び出すことができます。これにより、データベータベースとサーバーレスアーキテクチャを統合し、柔軟なアプリケーション開発が可能になります。Aurora MySQLを使用することで、データベースからAWS Lambda関数を直接呼び出すことができます。これにより、データベースのイベントやトリガーに基づいてサーバーレスアーキテクチャを利用したアプリケーション開発が容易になります。
機械学習サービスとの連携
Auroraは、Amazon SageMakerやAmazon Comprehendなどの機械学習サービスと連携が可能です。これにより、データベース内のデータを活用して、機械学習モデルの学習や推論を行うことができます。データ分析や予測など、機械学習を活用したアプリケーション開発が容易になります。
参考資料