You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Typescript版AWS CDK向现有CloudFormation栈新增实例

结论

完全可以直接在原有TypeScript版AWS CDK栈中新增第二个实例,无需单独创建新栈,CDK原生支持对已部署栈做增量更新。

操作步骤

  1. 修改原有CDK栈代码
    直接复用你栈中已定义的VPC、安全组变量,新增第二个EC2实例的定义即可,原有资源的配置不要做任何改动:
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class YourExistingStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // --- 下方是原有已部署的资源配置,保持不动 ---
    const vpc = new ec2.Vpc(this, 'MyVpc', {
      // 你原来的VPC配置
    });
    const instanceSg = new ec2.SecurityGroup(this, 'InstanceSg', {
      vpc,
      // 你原来的安全组配置
    });
    const instance1 = new ec2.Instance(this, 'Instance1', {
      vpc,
      securityGroup: instanceSg,
      // 你原来的实例1配置
    });
    // --- 原有资源配置结束 ---

    // 新增第二个实例,直接复用上面的vpc和instanceSg变量
    const instance2 = new ec2.Instance(this, 'Instance2', {
      vpc,
      securityGroup: instanceSg,
      instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.MICRO),
      machineImage: new ec2.AmazonLinux2023Image(),
      // 按需配置其他实例参数
    });
  }
}
  1. 预览变更(可选,推荐)
    执行cdk diff命令,CDK会对比本地代码和云端已部署栈的差异,确认输出中只有新增Instance2相关的资源,没有其他修改操作后再执行部署,避免误改原有资源。
  2. 执行部署
    直接运行cdk deploy即可,CDK会自动向原有CloudFormation栈中新增第二个实例,原有VPC、安全组、实例1不会受到任何影响。

注意事项

新增实例的构造ID(代码中new ec2.Instance的第二个参数,比如上面的Instance2)不能和栈内已有资源的ID重复,否则会触发部署报错。

内容的提问来源于stack exchange,提问作者Palakonda Shiva Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:06:03