Cluster
The Cluster resource lets you manage AWS Redshift Clusters which are designed for data warehousing and analytics. You can create and configure clusters with various properties including node type, number of nodes, and security settings.
Minimal Example
Section titled “Minimal Example”Create a basic AWS Redshift Cluster with required properties and a few common optional ones.
import AWS from "alchemy/aws/control";
const redshiftCluster = await AWS.Redshift.Cluster("myRedshiftCluster", { nodeType: "dc2.large", clusterType: "single-node", dbName: "analyticsdb", masterUsername: "admin", masterUserPassword: "SecurePass123!", port: 5439, tags: [ { Key: "Environment", Value: "Development" } ]});
Advanced Configuration
Section titled “Advanced Configuration”Configure a Redshift Cluster with additional settings for enhanced security and maintenance.
const advancedRedshiftCluster = await AWS.Redshift.Cluster("advancedRedshiftCluster", { nodeType: "dc2.8xlarge", clusterType: "multi-node", dbName: "productiondb", masterUsername: "admin", masterUserPassword: "SecurePass123!", port: 5439, multiAZ: true, encrypted: true, automatedSnapshotRetentionPeriod: 7, preferredMaintenanceWindow: "sun:06:00-sun:06:30", iamRoles: ["arn:aws:iam::123456789012:role/MyRedshiftRole"], clusterParameterGroupName: "default.redshift-1.0", vpcSecurityGroupIds: ["sg-0123456789abcdef0"]});
Using Snapshot Copy
Section titled “Using Snapshot Copy”Create a cluster that uses snapshot copy for disaster recovery.
const snapshotCopyCluster = await AWS.Redshift.Cluster("snapshotCopyCluster", { nodeType: "dc2.large", clusterType: "single-node", dbName: "backupdb", masterUsername: "admin", masterUserPassword: "SecurePass123!", port: 5439, snapshotCopyRetentionPeriod: 30, snapshotCopyManual: true, destinationRegion: "us-west-2"});
Defer Maintenance
Section titled “Defer Maintenance”Configure a Redshift Cluster with deferred maintenance settings.
const maintenanceCluster = await AWS.Redshift.Cluster("maintenanceCluster", { nodeType: "dc2.large", clusterType: "single-node", dbName: "maintenanceDB", masterUsername: "admin", masterUserPassword: "SecurePass123!", port: 5439, deferMaintenance: true, deferMaintenanceStartTime: "2023-11-01T00:00:00Z", deferMaintenanceDuration: 30 // Duration in minutes});