Skip to content

Workgroup ​

The Workgroup resource lets you manage AWS RedshiftServerless Workgroups and their configuration settings for serverless data warehousing.

Minimal Example ​

Create a basic RedshiftServerless Workgroup with essential properties.

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

const workgroup = await AWS.RedshiftServerless.Workgroup("defaultWorkgroup", {
  workgroupName: "default",
  baseCapacity: 2, // Minimum base capacity
  publicyAccessible: true,
  securityGroupIds: ["sg-0123456789abcdef0"],
  subnetIds: ["subnet-0123456789abcdef0"]
});

Advanced Configuration ​

Configure a workgroup with enhanced settings, including VPC routing and custom configuration parameters.

ts
const advancedWorkgroup = await AWS.RedshiftServerless.Workgroup("advancedWorkgroup", {
  workgroupName: "advanced",
  baseCapacity: 4,
  enhancedVpcRouting: true,
  configParameters: [
    {
      parameter: "enable_s3_select",
      value: "true"
    },
    {
      parameter: "enable_query_logging",
      value: "true"
    }
  ],
  tags: [
    {
      key: "Environment",
      value: "Production"
    },
    {
      key: "Owner",
      value: "DataTeam"
    }
  ]
});

Snapshot Restoration ​

Create a workgroup using a specific snapshot for restoring from a backup.

ts
const snapshotWorkgroup = await AWS.RedshiftServerless.Workgroup("snapshotWorkgroup", {
  workgroupName: "restoration-workgroup",
  snapshotArn: "arn:aws:redshift-serverless:us-west-2:123456789012:snapshot:my-snapshot",
  snapshotOwnerAccount: "123456789012",
  recoveryPointId: "rpid-0123456789abcdef0"
});

Performance Tuning ​

Configure a workgroup optimized for performance with a specific price performance target.

ts
const performanceWorkgroup = await AWS.RedshiftServerless.Workgroup("performanceWorkgroup", {
  workgroupName: "performance-optimized",
  maxCapacity: 8,
  pricePerformanceTarget: {
    target: "high"
  },
  tags: [
    {
      key: "Performance",
      value: "High"
    }
  ]
});