如何通过CloudFormation将VPC关联到Redshift Serverless工作组?
如何通过CloudFormation将VPC关联到Redshift Serverless工作组?
AWS::RedshiftServerless::Workgroup的CloudFormation规范没有单独的VPC属性,而是通过**子网(SubnetIds)和安全组(SecurityGroupIds)**来关联VPC。示例代码如下:
RedshiftServerlessNamespace: Type: AWS::RedshiftServerless::Namespace Properties: DbName: <redacted> NamespaceName: <redacted> IamRoles: - <redacted> RedshiftServerlessWorkgroup: Type: AWS::RedshiftServerless::Workgroup Properties: BaseCapacity: 8 NamespaceName: <redacted> WorkgroupName: <redacted> SubnetIds: - <redacted> DependsOn: RedshiftServerlessNamespace
当尝试添加不同VPC的子网时,会收到如下错误:
更新工作组时使用来自不同VPC的子网ID[...]目前不受支持
解决方法
Redshift Serverless工作组的VPC关联是通过指定的子网自动绑定的,但有核心限制:工作组的子网只能在创建时指定,且所有子网必须属于同一个VPC;创建完成后,无法将工作组的子网切换到另一个VPC。
针对不同场景的处理方式:
新创建工作组
直接在Properties中添加目标VPC下的同VPC子网ID列表(可以是多个同VPC子网),同时按需添加该VPC下的安全组ID:RedshiftServerlessWorkgroup: Type: AWS::RedshiftServerless::Workgroup Properties: BaseCapacity: 8 NamespaceName: <redacted> WorkgroupName: <redacted> # 所有子网必须属于同一个目标VPC SubnetIds: - subnet-xxxxxx1 - subnet-xxxxxx2 # 可选:添加目标VPC下的安全组 SecurityGroupIds: - sg-xxxxxx DependsOn: RedshiftServerlessNamespace已存在的工作组需要切换VPC
由于无法直接更新工作组到不同VPC的子网,需要先删除现有工作组,再重新创建并指定目标VPC的子网。注意:删除工作组前需确保数据已妥善备份,且业务能承受短暂中断。
内容的提问来源于stack exchange,提问作者user602525
相关产品推荐
相关产品推荐

