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.