RDS for PostgreSQL インスタンス用に Aurora リードレプリカを作成できないのはなぜですか?

最終更新日: 2022 年 6 月 8 日

RDS コンソールから Amazon Relational Database Service (Amazon RDS) for PostgreSQL インスタンス用に Amazon Aurora リードレプリカを作成しようとしています。しかし、Amazon RDS コンソールでは、このオプションはグレー表示されています。

簡単な説明

Amazon RDS for PostgreSQL DB インスタンスで、移行プロセスのために Aurora リードレプリカを使用して、新しい Amazon Aurora PostgreSQL 互換エディション DB クラスターを作成できます。この場合、Aurora クラスターはリーダーインスタンスで作成されます。レプリカクラスターと呼ばれるこのクラスターは、RDS for PostgreSQL インスタンスのリードレプリカとして機能します。レプリカクラスターを作成し、レプリケーションラグを 0 にして Aurora にデータを移行した後、Aurora リードレプリカを昇格させることでカットオーバーを実行できます。

移行プロセスのために Aurora リードレプリカを作成するには、「Aurora リードレプリカの作成」を参照してください。

Amazon RDS コンソールを使用して Aurora リードレプリカを作成するオプションが使用できない場合は、ご利用の Aurora PostgreSQL バージョンが RDS for PostgreSQL バージョンと互換性があることを確認してください。

解決方法

Aurora リードレプリカオプションは、同じ AWS リージョンとアカウント内の移行のためにのみ使用できます。このオプションは、ご利用の RDS for PostgreSQL DB インスタンス用に、互換性のあるバージョンの Aurora PostgreSQL をリージョンが提供している場合にのみ使用できます。Aurora PostgreSQL のバージョンは、RDS for PostgreSQL バージョンと同じか、同じメジャーバージョンファミリー内の上位のマイナーバージョンである必要があります。

例えば、この手法を用いて RDS for PostgreSQL 11.14 DB インスタンスを移行するには、リージョンが次のいずれかを提供する必要があります。

  • Aurora PostgreSQL バージョン 11.14
  • PostgreSQL バージョン 11 ファミリーの上位のマイナーバージョン

新しく作成された DB インスタンスの使用可能なバージョンとデフォルトのリストを表示するには、AWS コマンドラインインターフェイス (AWS CLI) コマンド describe-db-engine-versions を実行します。

aws rds describe-db-engine-versions --engine postgres --query DBEngineVersions[*].EngineVersion
aws rds describe-db-engine-versions --engine aurora-postgresql --query DBEngineVersions[*].EngineVersion

注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

両方のコマンドの結果を比較して、Aurora PostgreSQL のエンジンバージョンが RDS for PostgreSQL のエンジンバージョンと互換性があるかどうかを確認できます。

RDS コンソールでリードレプリカを作成するオプションが使用できない場合は、AWS CLI を使用して Aurora リードレプリカを作成します。

AWS CLI を使用してソース RDS for PostgreSQL DB インスタンスから Aurora リードレプリカを作成するには、create-db-cluster コマンドを実行します。必ず replication-source-identifier パラメータを、ソースインスタンスの ARN に設定してください。このコマンドを実行すると、ヘッドレス Aurora DB クラスターが作成されます。ヘッドレスクラスターは、インスタンスのないクラスターストレージです。

クラスターが作成されたら、create-db-instance コマンドを使用して DB クラスターのプライマリインスタンスを作成します。

aws rds create-db-cluster --db-cluster-identifier example-aurora-cluster --db-subnet-group-name example-db-subnet --vpc-security-group-ids example-security-group --engine aurora-postgresql --engine-version <same-as-your-rds-instance-version> --replication-source-identifier example-rds-source-instance-arn 
aws rds create-db-instance --db-cluster-identifier example-aurora-cluster --db-instance-class example-instance-class --db-instance-identifier example-instance identifier --engine aurora-postgresql