Experimental
@aws-cdk/aws-redshift-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
ClusterProps Struct
Properties for a new database cluster.
Example
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as iam from 'aws-cdk-lib/aws-iam';
declare const vpc: ec2.Vpc;
const defaultRole = new iam.Role(this, 'DefaultRole', {
assumedBy: new iam.ServicePrincipal('redshift.amazonaws.com'),
},
);
new Cluster(this, 'Redshift', {
masterUser: {
masterUsername: 'admin',
},
vpc,
roles: [defaultRole],
defaultRole: defaultRole,
});
Properties
availabilityZoneRelocationoptionalbooleanavailability_zone_relocationoptionalboolavailabilityZoneRelocationoptionalBooleanAvailabilityZoneRelocationoptionalboolAvailabilityZoneRelocationoptional*bool= false#classicResizingoptionalbooleanclassic_resizingoptionalboolclassicResizingoptionalBooleanClassicResizingoptionalboolClassicResizingoptional*bool#Default: Elastic resize type
notes
When resizing a cluster, classic resizing will always provision a new cluster and transfer the data there.
Classic resize takes more time to complete, but it can be useful in cases where the change in node count or the node type to migrate to doesn't fall within the bounds for elastic resize.
clusterNameoptionalstringcluster_nameoptionalstrclusterNameoptionalStringClusterNameoptionalstringClusterNameoptional*string#Default: A name is automatically generated.
clusterTypeoptionalClusterTypecluster_typeoptionalClusterTypeclusterTypeoptionalClusterTypeClusterTypeoptionalClusterTypeClusterTypeoptionalClusterType= `ClusterType.MULTI_NODE`#defaultDatabaseNameoptionalstringdefault_database_nameoptionalstrdefaultDatabaseNameoptionalStringDefaultDatabaseNameoptionalstringDefaultDatabaseNameoptional*string= default_db#defaultRoleoptionalIRoledefault_roleoptionalIRoledefaultRoleoptionalIRoleDefaultRoleoptionalIRoleDefaultRoleoptionalIRole#Default: No default role is specified for the cluster.
The default role must be included in the roles list.
elasticIpoptionalstringelastic_ipoptionalstrelasticIpoptionalStringElasticIpoptionalstringElasticIpoptional*string#Default: No Elastic IP
encryptedoptionalbooleanencryptedoptionalboolencryptedoptionalBooleanEncryptedoptionalboolEncryptedoptional*bool= true#encryptionKeyoptionalIKeyRefencryption_keyoptionalIKeyRefencryptionKeyoptionalIKeyRefEncryptionKeyoptionalIKeyRefEncryptionKeyoptionalIKeyRef#Default: AWS-managed key, if encryption at rest is enabled
enhancedVpcRoutingoptionalbooleanenhanced_vpc_routingoptionalboolenhancedVpcRoutingoptionalBooleanEnhancedVpcRoutingoptionalboolEnhancedVpcRoutingoptional*bool= false#loggingoptionalClusterLoggingloggingoptionalClusterLoggingloggingoptionalClusterLoggingLoggingoptionalClusterLoggingLoggingoptionalClusterLogging#Default: no logging
maintenanceTrackNameoptionalMaintenanceTrackNamemaintenance_track_nameoptionalMaintenanceTrackNamemaintenanceTrackNameoptionalMaintenanceTrackNameMaintenanceTrackNameoptionalMaintenanceTrackNameMaintenanceTrackNameoptionalMaintenanceTrackName#Default: undefined - Redshift default is current
multiAzoptionalbooleanmulti_azoptionalboolmultiAzoptionalBooleanMultiAzoptionalboolMultiAzoptional*bool= false#nodeTypeoptionalNodeTypenode_typeoptionalNodeTypenodeTypeoptionalNodeTypeNodeTypeoptionalNodeTypeNodeTypeoptionalNodeType= `NodeType.RA3_LARGE`#numberOfNodesoptionalnumbernumber_of_nodesoptionalint | floatnumberOfNodesoptionalNumberNumberOfNodesoptionaldoubleNumberOfNodesoptional*float64#Default: 2 if clusterType is ClusterType.MULTI_NODE, undefined otherwise
Value must be at least 2 and no more than 100.
parameterGroupoptionalIClusterParameterGroupparameter_groupoptionalIClusterParameterGroupparameterGroupoptionalIClusterParameterGroupParameterGroupoptionalIClusterParameterGroupParameterGroupoptionalIClusterParameterGroup#Default: No parameter group.
Default: The default for the engine is used.
preferredMaintenanceWindowoptionalstringpreferred_maintenance_windowoptionalstrpreferredMaintenanceWindowoptionalStringPreferredMaintenanceWindowoptionalstringPreferredMaintenanceWindowoptional*string#Default: 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
Example: 'Sun:23:45-Mon:00:15'
publiclyAccessibleoptionalbooleanpublicly_accessibleoptionalboolpubliclyAccessibleoptionalBooleanPubliclyAccessibleoptionalboolPubliclyAccessibleoptional*bool= false#rebootForParameterChangesoptionalbooleanreboot_for_parameter_changesoptionalboolrebootForParameterChangesoptionalBooleanRebootForParameterChangesoptionalboolRebootForParameterChangesoptional*bool= false#removalPolicyoptionalRemovalPolicyremoval_policyoptionalRemovalPolicyremovalPolicyoptionalRemovalPolicyRemovalPolicyoptionalRemovalPolicyRemovalPolicyoptionalRemovalPolicy= RemovalPolicy.RETAIN#resourceActionoptionalResourceActionresource_actionoptionalResourceActionresourceActionoptionalResourceActionResourceActionoptionalResourceActionResourceActionoptionalResourceAction#Default: no operation
rolesoptionalIRole[]rolesoptionaltyping.List[IRole]rolesoptionalList<IRole>RolesoptionalIRole[]Rolesoptional*[]IRole#Default: No role is attached to the cluster.
The maximum number of roles to attach to a cluster is subject to a quota.
securityGroupsoptionalISecurityGroup[]security_groupsoptionaltyping.List[ISecurityGroup]securityGroupsoptionalList<ISecurityGroup>SecurityGroupsoptionalISecurityGroup[]SecurityGroupsoptional*[]ISecurityGroup#Default: a new security group is created.
subnetGroupoptionalIClusterSubnetGroupsubnet_groupoptionalIClusterSubnetGroupsubnetGroupoptionalIClusterSubnetGroupSubnetGroupoptionalIClusterSubnetGroupSubnetGroupoptionalIClusterSubnetGroup#Default: a new subnet group will be created.
vpcSubnetsoptionalSubnetSelectionvpc_subnetsoptionalSubnetSelectionvpcSubnetsoptionalSubnetSelectionVpcSubnetsoptionalSubnetSelectionVpcSubnetsoptionalSubnetSelection#Default: private subnets