Aurora と RDS コンソールから Amazon Relational Database Service (Amazon RDS) for PostgreSQL インスタンスの Amazon Aurora リードレプリカを作成しようとしています。しかし、そのためのオプションが Aurora と RDS コンソールではグレー表示されています。
簡単な説明
Amazon RDS for PostgreSQL DB インスタンスを使用して、移行プロセスに Aurora リードレプリカを使用することにより、新しい Amazon Aurora PostgreSQL 互換エディション DB クラスターを作成できます。この場合、Aurora クラスターはリーダーインスタンスで作成されます。このクラスターはレプリカクラスターと呼ばれ、RDS for PostgreSQL インスタンスのリードレプリカとして機能します。レプリカクラスターを作成し、レプリケーションラグが 0 の状態で Aurora にデータを移行したら、Aurora リードレプリカを昇格することでカットオーバーを実行できます。
移行プロセス用に Aurora リードレプリカを作成するには、「Creating an Aurora read replica」(Aurora リードレプリカの作成) を参照してください。
Aurora と 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 のエンジンバージョンと互換性があるかどうかを確認できます。
Aurora と 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
関連情報
Migrating data from an RDS for PostgreSQL DB instance to an Aurora PostgreSQL DB cluster using an Aurora read replica (Aurora リードレプリカを使用して RDS for PostgreSQL DB インスタンスから Aurora PostgreSQL DB クラスターにデータを移行する)