CDK / Cloudformation versioning error creating a serverless cluster from a snapshot

0

I'm attempting to make a db replica from a snapshot and am getting this error from CloudFormation

The engine version you requested for your restored DB cluster (13.12) is
earlier than the engine version of the DB cluster snapshot (13.13). (Service: Rds, Status Code: 400, Request
ID: asdf-asdf-asdf-asdf)

But as far as I can tell both the snapshot and the cluster being created from the snapshot have their engine versions set to 13.13

CDK

const cluster = new ServerlessClusterFromSnapshot(this, 'replica-db-cluster', {
  snapshotIdentifier: snapshotArn,
  engine: DatabaseClusterEngine.auroraPostgres({
      version: AuroraPostgresEngineVersion.VER_13_13,
  }),
  copyTagsToSnapshot: false,
  vpc,
  vpcSubnets: {
    subnets: [privateDbSubnet1, privateDbSubnet2],
  },
})

Resulting CloudFormation template:

"replicadbcluster31639306": {
  "Type": "AWS::RDS::DBCluster",
  "Properties": {
    "CopyTagsToSnapshot": true,
    "DBClusterParameterGroupName": {
      "Ref": "replicadbparametergroup4CE24352"
    },
    "DBSubnetGroupName": {...},
    "Engine": "aurora-postgresql",
    "EngineMode": "serverless",
    "EngineVersion": "13.13",
    "SnapshotIdentifier": "arn:asdfasdfasdfasdf",
    "StorageEncrypted": true,
    "VpcSecurityGroupIds": [
      ...
    ]
  },
  "UpdateReplacePolicy": "Snapshot",
  "DeletionPolicy": "Snapshot",
  "Metadata": {
    "aws:cdk:path": "db-replica/replica-db-cluster/Resource"
  }
},
"replicadbparametergroup4CE24352": {
  "Type": "AWS::RDS::DBClusterParameterGroup",
  "Properties": {
    "Description": "Cluster parameter group for aurora-postgresql13",
    "Family": "aurora-postgresql13",
    "Parameters": {}
  },
  "Metadata": {
    "aws:cdk:path": "db-replica/replica-db-parameter-group/Resource"
  }
},
...

Snapshot:

Enter image description here

Am I missing something when specifying a version? Why does CloudFormation say the cluster version is 13.12?

1 Answer
1
Accepted Answer

The CDK code seems to show you are creating an Aurora Serverless v1 cluster. I'm not an expert on the old version, but I think v1 has limited support for engine versions and 13.13 simply may not be supported.

I believe you should use the CDK construct aws_cdk.aws_rds.DatabaseClusterFromSnapshot instead and specify the appropriate options for a Serverless v2 deployment, if that's what you are intending (and which I could be mistaken about): https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_rds/DatabaseClusterFromSnapshot.html

If the source system isn't a Serverless deployment at all, you would also have the broader range of engine versions available on a classical fixed-capacity Aurora cluster, without using the Serverless deployment model.

EXPERT
answered a year ago
profile picture
EXPERT
reviewed a year ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions