Skip to content

Cluster ​

The Cluster resource lets you manage AWS DocDBElastic Clusters for scalable and flexible document database solutions.

Minimal Example ​

Create a basic DocDBElastic Cluster with required properties and a couple of optional settings.

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

const docDBCluster = await AWS.DocDBElastic.Cluster("myDocDBCluster", {
  clusterName: "my-cluster",
  shardCount: 2,
  shardCapacity: 256,
  adminUserName: "admin",
  adminUserPassword: "ComplexPassword123!",
  preferredBackupWindow: "03:00-03:30",
  preferredMaintenanceWindow: "sun:05:00-sun:06:00"
});

Advanced Configuration ​

Configure a DocDBElastic Cluster with advanced settings including KMS key for encryption and VPC security groups.

ts
const advancedDocDBCluster = await AWS.DocDBElastic.Cluster("advancedDocDBCluster", {
  clusterName: "advanced-cluster",
  shardCount: 3,
  shardCapacity: 512,
  adminUserName: "adminUser",
  adminUserPassword: "AnotherComplexPassword456!",
  kmsKeyId: "arn:aws:kms:us-west-2:123456789012:key/abcd1234-5678-90ef-gh12-ijklmnopqrst",
  vpcSecurityGroupIds: ["sg-0abc12345def67890"],
  subnetIds: ["subnet-0abc12345def67890", "subnet-0def12345abc67890"],
  tags: [
    { key: "Environment", value: "Production" },
    { key: "Project", value: "DocDBElastic" }
  ]
});

Cluster with Custom Sharding ​

Create a cluster optimized with custom sharding settings for better performance.

ts
const customShardDocDBCluster = await AWS.DocDBElastic.Cluster("customShardDocDBCluster", {
  clusterName: "custom-shard-cluster",
  shardCount: 4,
  shardCapacity: 128,
  adminUserName: "customAdmin",
  adminUserPassword: "HighlySecurePassword789!",
  shardInstanceCount: 4,
  preferredBackupWindow: "02:00-02:30",
  preferredMaintenanceWindow: "sat:04:00-sat:05:00"
});

Adopt Existing Resource ​

Create a cluster while adopting an existing resource if one is already present.

ts
const adoptedDocDBCluster = await AWS.DocDBElastic.Cluster("adoptedDocDBCluster", {
  clusterName: "existing-cluster",
  shardCount: 2,
  shardCapacity: 256,
  adminUserName: "adminUser",
  adminUserPassword: "PasswordForAdoption123!",
  adopt: true // Enables adopting an existing cluster
});