メインコンテンツに移動

Amazon RDS

Amazon RDS リードレプリカ

Amazon RDS がレプリカをリードする理由

Amazon RDS リードレプリカによって、Amazon RDS データベース (DB) インスタンスのパフォーマンスと耐久性が向上します。これを使用すれば、読み取り頻度の高いデータベースのワークロードに対して、単一 DB インスタンスキャパシティーの制約を超えて伸縮自在にスケールアウトできます。ソース DB インスタンスのレプリカを複数作成し、アプリケーションの大容量読み取りトラフィックをデータの複数のコピーから提供することにより、全体の読み込みスループットを向上させることができます。必要な場合は、リードレプリカをスタンドアロンの DB インスタンスに昇格させることも可能です。リードレプリカは、Amazon Auroraだけでなく、 MySQL用Amazon RDS MariaDB用Amazon RDS、 PostgreSQL用Amazon RDS、オラクル用Amazon RDS 、SQL Server用Amazon RDS、Db2用Amazon RDS(Amazon RDS)でもご利用いただけます。

MySQL、MariaDB、PostgreSQL、Oracle、SQL Server のデータベースエンジンの場合、Amazon RDS ではソース DB インスタンスのスナップショットを使用して、2 番目の DB インスタンスを作成します。その後、ソース DB インスタンスが変更されるたびに、エンジンのネイティブ非同期レプリケーションを使用して、リードレプリカを更新します。リードレプリカは、読み取り専用接続のみ許可される DB インスタンスとして動作します。アプリケーションは、DB インスタンスの場合と同じ方法でリードレプリカに接続できます。Amazon RDS は、ソース DB インスタンスのすべてのデータベースを複製します。

Amazon Aurora は、データベースワークロード専用に構築された SSD ベースの仮想化ストレージレイヤーを採用することで、リードレプリカの利点をさらに拡大します。Amazon Aurora レプリカはソースインスタンスと同じ基盤となるストレージを共有するので、コストが抑えられ、データをレプリカノードにコピーする必要がありません。Amazon Aurora でのレプリケーションの詳細については、オンラインドキュメントを参照してください

Diagram illustrating application servers connecting to a primary database server for read/write operations and a read replica for read-only operations using asynchronous replication. Includes BI/reporting application server and general application servers.

Amazon RDS リードレプリカの利点

読み取りクエリをアプリケーションからリードレプリカにルーティングすることにより、ソース DB インスタンスへの負荷を減らすことができます。リードレプリカによって、1 つの DB インスタンスのキャパシティーを伸縮自在にスケールし、読み取り頻度の高いデータベースのワークロードを緩和できます。リードレプリカはプライマリステータスに昇格する場合があるため、シャーディングの実装として有用です。読み取りパフォーマンスを最大限に高めるため、Amazon RDS for MySQL では、プライマリに存在しないテーブルインデックスを直接リードレプリカに追加できます。

Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle、SQL Server のリードレプリカによって、Amazon RDS マルチ AZ 配置の可用性をさらに高めるメカニズムを実現できます。ソース DB インスタンスに障害が発生した場合は、リードレプリカを昇格できます。また、異なる AZ の独自のスタンバイインスタンスでリードレプリカを設定できます。これにより、マルチ AZ 配置が提供する同期レプリケーション、自動障害検出、フェイルオーバーといった機能が補完されます。

Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle、または SQL Server のリードレプリカを作成すると、Amazon RDS では、複数のリージョン間でレプリケート中であっても、ソース DB インスタンスとリードレプリカの間にパブリックキー暗号化を使用して安全な通信チャネルがセットアップされます。Amazon RDS は、セキュリティグループエントリの追加など、安全なチャネルを有効にするために必要な AWS セキュリティ設定を確立します。また、AWS Key Management Service (KMS) を使用して保存時に暗号化された Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle、SQL Server データベースインスタンス向けに、1 つのリージョンまたはリージョン間でリードレプリカを作成できます。

セットアップ

AWS マネジメントコンソールを使用して、リードレプリカを既存の DB インスタンスに簡単に追加できます。AWS マネジメントコンソールの DB インスタンスに対応する [Create Read Replica] (リードレプリカを作成) オプションを使用します。Amazon RDS for MySQL、Amazon RDS for PostgreSQL、Amazon RDS for MariaDB、および Amazon RDS for SQL Server では、各 DB インスタンスに最大 15 個のリードレプリカを追加できます。Amazon RDS for Oracle では、各 DB インスタンスに最大 5 個のリードレプリカを追加できます。

Amazon RDS for MySQL、Amazon RDS for PostgreSQL、Amazon RDS for MariaDB、および Amazon RDS for Oracle では、データベースストレージに SSD ベースの 2 つの選択肢を提供しています。つまり汎用とプロビジョンド IOPS です。これらのエンジンのリードレプリカについては、プライマリ DB インスタンスと同じストレージタイプを使用する必要がありません。パフォーマンスや支出を最適化するため、リードレプリカには別のストレージタイプを選択できます。 詳細については、Amazon RDS for MySQL、MariaDB 用 Amazon RDS PostgreSQL 用 Amazon RDS、Oracle 用 Amazon RDS、SQL Server 用 Amazon RDS、Amazon Aurora のレプリカドキュメントを参照してください。

リードレプリカ、マルチ AZ 配置、およびマルチリージョン配置

Amazon RDS リードレプリカはマルチ AZ 配置を補完します。どちらの機能もデータのセカンドコピーを維持しますが、2 つの間には以下の違いがあります。

Multi-AZ deployments
Multi-Region deployments
Read replicas
主な目的は高可用性です

主な目的は災害復旧とローカルパフォーマンスです

主な目的はスケーラビリティです

Aurora 以外: 同期レプリケーション、Aurora: 同期レプリケーション

非同期レプリケーション

非同期レプリケーション

Aurora 以外: プライマリインスタンスのみがアクティブです。Aurora: すべてのインスタンスがアクティブです。

すべてのリージョンにアクセスでき、読み取りに使用できます

すべてのリードレプリカにアクセス可能で、読み込みのスケーリングに使用可能

Aurora 以外: 自動バックアップはスタンバイから取得されます。Aurora: 自動バックアップは共有ストレージレイヤーから取得されます。

各リージョンで自動バックアップを取得できます

デフォルトではバックアップは構成されない

1 つのリージョン内に常に 2 つ以上のアベイラビリティーゾーンを展開

各リージョンに対してマルチ AZ 配置が可能

アベイラビリティーゾーン内、AZ 間、またはリージョン間に配置可能

Aurora 以外: データベースエンジンのバージョンアップグレードはプライマリで実施されます。Aurora: すべてのインスタンスが一緒に更新されます。

Aurora 以外: データベースエンジンのバージョンアップグレードは各リージョンで独立しています。Aurora: すべてのインスタンスが一緒に更新されます。

Aurora 以外: データベースエンジンのバージョンアップグレードは、ソースインスタンスから独立しています。Aurora: すべてのインスタンスが一緒に更新されます。

問題が検出された場合のスタンバイ (Aurora 以外) またはリードレプリカ (Aurora) への自動フェイルオーバー

Aurora は、セカンダリリージョンのプロモーションをプライマリにすることができます

手動でスタンドアロンのデータベースインスタンス (Aurora 以外) またはプライマリインスタンス (Aurora) に昇格できます

リードレプリカを他の Amazon RDS 機能と組み合わせて、それぞれの利点を享受できます。たとえば、ソースデータベースをマルチ AZ として高可用性で構成し、リードレプリカをリードスケーラビリティで (シングル AZ に) 作成できます。または、 Aurora グローバルデータベースを使用して、マルチ AZ Aurora 配置のデータを他のリージョンに複製することもできます。

MySQL 用 RDS、MariaDB 用の RDS、PostgreSQL 用の RDS、および Oracle 用の RDS を使用すると、リードレプリカをマルチ AZ として設定して、リードレプリカを DR ターゲットとして使用することもできます。スタンドアロンデータベースにリードレプリカをプロモートさせると、もうマルチ AZ は有効になっています。