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

如何使用Node.js版AWS SDK配置VPC与子网创建EC2实例

解答

代码正确性说明

你贴的官方示例基础运行逻辑没有问题,可以正常启动EC2实例,但存在一个严重的安全隐患:硬编码了访问密钥到代码中,正式使用时绝对不要这么做,本地开发请通过本地AWS凭证文件、环境变量加载密钥,部署到AWS服务上时直接绑定对应权限的IAM角色即可,SDK会自动读取凭证,避免密钥泄露。
另外代码里重复初始化了三次AWS.EC2客户端,完全可以复用最开始声明的ec2实例,减少冗余代码。

VPC与子网配置方法

VPC、子网这类EC2实例启动的专属参数,既不需要写在全局config参数中,也不需要通过AWS.config.update方法设置,直接作为入参传入runInstances方法的参数对象即可。
你现在的代码没有指定子网,运行时SDK会自动把实例部署到当前区域默认VPC的默认子网中,这也是示例代码可以直接跑通的原因。如果要指定自定义VPC和子网,只需要在instanceParams中添加对应字段:

  • SubnetId:填写你目标子网的ID,格式为subnet-xxxxxx,实例会直接启动在该子网所属的VPC下
  • SecurityGroupIds:填写该VPC下绑定的安全组ID数组,格式为sg-xxxxxx,注意VPC环境下必须传安全组ID,不能传经典网络的安全组名称

修改后的参数示例如下:

var instanceParams = {
  ImageId: 'ami-0022f774911c1d690',
  InstanceType: 't2.micro',
  KeyName: 'ec2_sampleKey1',
  MinCount: 1,
  MaxCount: 1,
  // 自定义VPC子网配置
  SubnetId: 'subnet-替换为你的实际子网ID',
  SecurityGroupIds: ['sg-替换为你的VPC下实际安全组ID']
};

注意:你填写的子网、安全组必须和当前配置的区域、使用的AMI镜像、密钥对属于同一区域,否则实例启动会报错。如果需要手动控制实例是否分配公网IP,可以额外添加NetworkInterfaces字段进行网络接口的精细化配置,也可以直接使用子网的默认公网分配规则。

内容的提问来源于stack exchange,提问作者KingShubhankar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:27:17