【问题标题】:Start/stop particular EC2 instance from other EC2 instance in same AWS account从同一 AWS 账户中的其他 EC2 实例启动/停止特定 EC2 实例
【发布时间】:2020-02-26 16:54:19
【问题描述】:

从同一 AWS 账户中的另一个 EC2 实例(运行节点)启动/停止特定(例如,使用硬编码标识符)EC2 实例的简单方法是什么?

我熟悉 Node,但不熟悉 AWS SDK,我想我必须学习。同时我想知道是否有另一个 AWS 服务可以让我更轻松地将 HTTP 资源(例如,可通过凭据 PUT/DELETE 修改)与特定 EC2 实例的状态(运行/停止)相关联。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-sdk aws-api-gateway aws-sdk-nodejs


    【解决方案1】:

    您可以使用AWS CLI或SDK进行操作。

    AWS CLI

    一个非常简单的方法就是在第二个实例上安装 aws cli 并运行

    aws ec2 start-instances --instance-ids i-1234567890abcdef0
    

    aws ec2 stop-instances --instance-ids i-1234567890abcdef0
    

    SDK

    如果您想坚持使用节点,那么您可以使用 SDK 以这种方式启动/停止实例:

     var params = {
      InstanceIds: [
         "i-1234567890abcdef0"
      ]
     };
    
     /* Start */
     ec2.startInstances(params, function(err, data) {
       if (err) console.log(err, err.stack); // an error occurred
       else     console.log(data);           // successful response
     });
    
     /* Stop */
     ec2.stopInstances(params, function(err, data) {
       if (err) console.log(err, err.stack); // an error occurred
       else     console.log(data);           // successful response
     });
    

    重要提示

    请注意,实例的 IAM 角色需要包含以下策略(或等效策略)

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances"
          ],
          "Resource": "*"
        }
      ]
    }
    

    希望对你有帮助!

    【讨论】:

    • 谢谢。我只是在阅读有关 IAM 角色的信息,以尝试更了解它。
    【解决方案2】:

    aws ec2 stop-instances --instance-ids i-1234567890abcdef0 --region us-east-2 实例 ID 是一个空格分隔的列表 如果您的实例在自动缩放组中,那么您还可以使用带有标签的过滤器,这样您就不必担心实例 ID

    【讨论】:

      猜你喜欢
      • 2019-08-03
      • 2016-11-22
      • 1970-01-01
      • 2022-11-18
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      相关资源
      最近更新 更多