Skip to content

DBCluster

The DBCluster resource allows you to manage AWS RDS DBClusters and their associated configurations. This resource facilitates the creation and management of highly available and scalable database clusters.

Minimal Example

Create a basic DBCluster with essential properties and common optional configurations.

ts
import AWS from "alchemy/aws/control";

const dbCluster = await AWS.RDS.DBCluster("myDbCluster", {
  Engine: "aurora",
  DBClusterIdentifier: "my-cluster-id",
  MasterUsername: "adminUser",
  MasterUserPassword: "securePassword123",
  VpcSecurityGroupIds: ["sg-12345678"],
  DBSubnetGroupName: "my-subnet-group",
  Tags: [{ Key: "Environment", Value: "Production" }]
});

Advanced Configuration

Configure a DBCluster with advanced options such as performance insights and backup settings.

ts
const advancedDbCluster = await AWS.RDS.DBCluster("advancedDbCluster", {
  Engine: "aurora",
  DBClusterIdentifier: "my-advanced-cluster",
  MasterUsername: "adminUser",
  MasterUserPassword: "securePassword123",
  VpcSecurityGroupIds: ["sg-87654321"],
  DBSubnetGroupName: "my-subnet-group",
  PerformanceInsightsEnabled: true,
  PerformanceInsightsRetentionPeriod: 7,
  BackupRetentionPeriod: 30,
  EnableIAMDatabaseAuthentication: true,
  Tags: [{ Key: "Environment", Value: "Staging" }]
});

Read Replica Configuration

Create a DBCluster configured as a read replica of an existing cluster.

ts
const readReplicaDbCluster = await AWS.RDS.DBCluster("readReplicaDbCluster", {
  Engine: "aurora",
  DBClusterIdentifier: "my-read-replica-cluster",
  MasterUsername: "adminUser",
  MasterUserPassword: "securePassword123",
  SourceDBClusterIdentifier: "my-cluster-id",
  VpcSecurityGroupIds: ["sg-12345678"],
  DBSubnetGroupName: "my-subnet-group",
  Tags: [{ Key: "Environment", Value: "Development" }]
});

Serverless Configuration

Set up a serverless DBCluster with scaling configurations.

ts
const serverlessDbCluster = await AWS.RDS.DBCluster("serverlessDbCluster", {
  Engine: "aurora",
  DBClusterIdentifier: "my-serverless-cluster",
  MasterUsername: "adminUser",
  MasterUserPassword: "securePassword123",
  VpcSecurityGroupIds: ["sg-12345678"],
  DBSubnetGroupName: "my-subnet-group",
  ServerlessV2ScalingConfiguration: {
    MinCapacity: "ACU_4",
    MaxCapacity: "ACU_16"
  },
  Tags: [{ Key: "Environment", Value: "Testing" }]
});