Skip to content
v2.273.0

DatabaseClusterEngine Class ​

A database cluster engine.

Provides mapping to the serverless application used for secret rotation.

Example ​

ts
declare const vpc: ec2.Vpc;
const cluster = new rds.DatabaseCluster(this, 'Database', {
  engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_3_01_0 }),
  credentials: rds.Credentials.fromGeneratedSecret('clusteradmin'), // Optional - will default to 'admin' username and generated password
  writer: rds.ClusterInstance.provisioned('writer', {
    publiclyAccessible: false,
  }),
  readers: [
    rds.ClusterInstance.provisioned('reader1', { promotionTier: 1 }),
    rds.ClusterInstance.serverlessV2('reader2'),
  ],
  vpcSubnets: {
    subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
  },
  vpc,
});
python
# vpc: ec2.Vpc

cluster = rds.DatabaseCluster(self, "Database",
    engine=rds.DatabaseClusterEngine.aurora_mysql(version=rds.AuroraMysqlEngineVersion.VER_3_01_0),
    credentials=rds.Credentials.from_generated_secret("clusteradmin"),  # Optional - will default to 'admin' username and generated password
    writer=rds.ClusterInstance.provisioned("writer",
        publicly_accessible=False
    ),
    readers=[
        rds.ClusterInstance.provisioned("reader1", promotion_tier=1),
        rds.ClusterInstance.serverless_v2("reader2")
    ],
    vpc_subnets=ec2.SubnetSelection(
        subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS
    ),
    vpc=vpc
)
java
Vpc vpc;

DatabaseCluster cluster = DatabaseCluster.Builder.create(this, "Database")
        .engine(DatabaseClusterEngine.auroraMysql(AuroraMysqlClusterEngineProps.builder().version(AuroraMysqlEngineVersion.VER_3_01_0).build()))
        .credentials(Credentials.fromGeneratedSecret("clusteradmin")) // Optional - will default to 'admin' username and generated password
        .writer(ClusterInstance.provisioned("writer", ProvisionedClusterInstanceProps.builder()
                .publiclyAccessible(false)
                .build()))
        .readers(List.of(ClusterInstance.provisioned("reader1", ProvisionedClusterInstanceProps.builder().promotionTier(1).build()), ClusterInstance.serverlessV2("reader2")))
        .vpcSubnets(SubnetSelection.builder()
                .subnetType(SubnetType.PRIVATE_WITH_EGRESS)
                .build())
        .vpc(vpc)
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
Vpc vpc;

var cluster = new DatabaseCluster(this, "Database", new DatabaseClusterProps {
    Engine = DatabaseClusterEngine.AuroraMysql(new AuroraMysqlClusterEngineProps { Version = AuroraMysqlEngineVersion.VER_3_01_0 }),
    Credentials = Credentials.FromGeneratedSecret("clusteradmin"),  // Optional - will default to 'admin' username and generated password
    Writer = ClusterInstance.Provisioned("writer", new ProvisionedClusterInstanceProps {
        PubliclyAccessible = false
    }),
    Readers = new [] { ClusterInstance.Provisioned("reader1", new ProvisionedClusterInstanceProps { PromotionTier = 1 }), ClusterInstance.ServerlessV2("reader2") },
    VpcSubnets = new SubnetSelection {
        SubnetType = SubnetType.PRIVATE_WITH_EGRESS
    },
    Vpc = vpc
});
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
var vpc Vpc

cluster := rds.NewDatabaseCluster(this, jsii.String("Database"), &DatabaseClusterProps{
	Engine: rds.DatabaseClusterEngine_AuroraMysql(&AuroraMysqlClusterEngineProps{
		Version: rds.AuroraMysqlEngineVersion_VER_3_01_0(),
	}),
	Credentials: rds.Credentials_FromGeneratedSecret(jsii.String("clusteradmin")),
	 // Optional - will default to 'admin' username and generated password
	Writer: rds.ClusterInstance_Provisioned(jsii.String("writer"), &ProvisionedClusterInstanceProps{
		PubliclyAccessible: jsii.Boolean(false),
	}),
	Readers: []IClusterInstance{
		rds.ClusterInstance_*Provisioned(jsii.String("reader1"), &ProvisionedClusterInstanceProps{
			PromotionTier: jsii.Number(1),
		}),
		rds.ClusterInstance_ServerlessV2(jsii.String("reader2")),
	},
	VpcSubnets: &SubnetSelection{
		SubnetType: ec2.SubnetType_PRIVATE_WITH_EGRESS,
	},
	Vpc: Vpc,
})

Initializer ​

ts
new DatabaseClusterEngine()
python
DatabaseClusterEngine()
java
new DatabaseClusterEngine()
csharp
new DatabaseClusterEngine()
go
NewDatabaseClusterEngine()

Properties ​

AURORAIClusterEngineauroraIClusterEngineAURORAIClusterEngineAURORAIClusterEngineAURORAIClusterEnginerequiredstaticdeprecated#
use `AURORA_MYSQL` instead

Note: we do not recommend using unversioned engines for non-serverless Clusters, as that can pose an availability risk. We recommend using versioned engines created using the aurora() method

AURORA_MYSQLIClusterEngineaurora_mysqlIClusterEngineAURORA_MYSQLIClusterEngineAURORA_MYSQLIClusterEngineAURORA_MYSQLIClusterEnginerequiredstatic#
The unversioned 'aurora-msql' cluster engine.

Note: we do not recommend using unversioned engines for non-serverless Clusters, as that can pose an availability risk. We recommend using versioned engines created using the auroraMysql() method

AURORA_POSTGRESQLIClusterEngineaurora_postgresqlIClusterEngineAURORA_POSTGRESQLIClusterEngineAURORA_POSTGRESQLIClusterEngineAURORA_POSTGRESQLIClusterEnginerequiredstatic#
The unversioned 'aurora-postgresql' cluster engine.

Note: we do not recommend using unversioned engines for non-serverless Clusters, as that can pose an availability risk. We recommend using versioned engines created using the auroraPostgres() method

Methods ​

aurora(props: AuroraClusterEngineProps): IClusterEngine@staticmethod def aurora(props: AuroraClusterEngineProps) -> IClusterEnginepublic static IClusterEngine aurora(AuroraClusterEngineProps props)public static IClusterEngine Aurora(AuroraClusterEngineProps props)func Aurora(Props AuroraClusterEngineProps) IClusterEnginestaticdeprecated#
use `auroraMysql()` instead
auroraMysql(props: AuroraMysqlClusterEngineProps): IClusterEngine@staticmethod def aurora_mysql(props: AuroraMysqlClusterEngineProps) -> IClusterEnginepublic static IClusterEngine auroraMysql(AuroraMysqlClusterEngineProps props)public static IClusterEngine AuroraMysql(AuroraMysqlClusterEngineProps props)func AuroraMysql(Props AuroraMysqlClusterEngineProps) IClusterEnginestatic#
Creates a new Aurora MySQL database cluster engine.
auroraPostgres(props: AuroraPostgresClusterEngineProps): IClusterEngine@staticmethod def aurora_postgres(props: AuroraPostgresClusterEngineProps) -> IClusterEnginepublic static IClusterEngine auroraPostgres(AuroraPostgresClusterEngineProps props)public static IClusterEngine AuroraPostgres(AuroraPostgresClusterEngineProps props)func AuroraPostgres(Props AuroraPostgresClusterEngineProps) IClusterEnginestatic#
Creates a new Aurora PostgreSQL database cluster engine.