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

如何通过Node.js创建并管理AWS实例,实现实例管控及Docker镜像部署

使用Node.js AWS SDK实现EC2实例管控及Docker部署指引

前置准备

  • 本地安装Node.js 14+版本,完成AWS凭证配置,可通过~/.aws/credentials文件或者AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY环境变量配置,对应账号需持有EC2操作、IAM角色绑定相关权限
  • 安装AWS SDK v3(推荐使用,v2已进入维护阶段),执行命令:
    npm install @aws-sdk/client-ec2 @aws-sdk/util-waiter

管控实例创建代码实现

以下为创建带Docker预装、拥有EC2管控权限的实例示例代码:

const { EC2Client, RunInstancesCommand, waitUntilInstanceRunning } = require("@aws-sdk/client-ec2");
// 配置EC2客户端,替换为你需要的AWS区域
const ec2Client = new EC2Client({ region: "cn-north-1" });

// 实例初始化脚本:自动安装Docker并启动、拉取示例镜像
const initScript = `#!/bin/bash
yum update -y
amazon-linux-extras install docker -y
systemctl start docker
systemctl enable docker
usermod -aG docker ec2-user
# 可替换为你需要部署的Docker镜像
docker pull nginx:alpine
`;

const createControlInstance = async () => {
  const createParams = {
    // 替换为对应区域的Amazon Linux 2 AMI ID
    ImageId: "ami-xxxxxxxxx",
    // 可替换为你需要的实例规格
    InstanceType: "t2.medium",
    // 替换为你提前创建的EC2密钥对名称
    KeyName: "your-key-pair",
    MinCount: 1,
    MaxCount: 1,
    // 替换为你配置好的安全组ID,需开放SSH等必要端口
    SecurityGroupIds: ["sg-xxxxxxxxx"],
    // 传入初始化脚本,需要转base64编码
    UserData: Buffer.from(initScript).toString('base64'),
    // 替换为你提前创建的IAM实例配置文件,对应角色需绑定EC2管控权限
    IamInstanceProfile: {
      Name: "EC2-Control-Role"
    }
  };

  const res = await ec2Client.send(new RunInstancesCommand(createParams));
  const instanceId = res.Instances[0].InstanceId;
  console.log("管控实例创建成功,实例ID:", instanceId);

  // 等待实例启动完成,最长等待5分钟
  await waitUntilInstanceRunning({client: ec2Client, maxWaitTime: 300}, {InstanceIds: [instanceId]});
  console.log("管控实例已启动完成,Docker已预装");
};

createControlInstance();

管控其他EC2实例的配置说明

  • 给管控实例绑定的IAM角色,按需附加EC2操作权限,生产环境建议配置最小权限,避免直接授予全权限策略
  • 操作其他实例时,可直接在管控实例中调用AWS EC2 SDK执行开关机、配置修改、镜像部署等操作,无需手动配置密钥
  • 如需在其他实例中批量部署Docker环境,可通过SSM远程命令执行功能批量推送安装脚本,无需连接实例SSH

注意事项

  • 安全组仅开放必要端口,避免全端口暴露到公网
  • 密钥对、AWS凭证不要硬编码到代码中,避免泄露
  • 正式上线前建议先在测试环境验证权限配置、实例创建逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:09:02