【问题标题】:Self stopping EC2 once task complete?任务完成后自动停止 EC2?
【发布时间】:2022-05-08 01:25:54
【问题描述】:

我有一个每小时启动一个 EC2 的 lambda。 EC2 上的(Windows)操作系统在启动时运行一个脚本。该任务可能需要 1 分钟到 45 分钟。一旦脚本运行,我希望 EC2 停止。

我可以想到一种方法来实现这一点。我可以在 EC2 本身上安装 aws cli 并运行类似 aws ec2 stop-instances --instance-ids i-07c1849fe7abcdef 的东西。这样做感觉很奇怪。有没有更好的办法?

注意

为了清楚起见,我不想简单地在实例上设置一个计时器。假设我设置了一个 45 分钟的计时器,即使任务只需要 3 分钟,我也会支付 45 分钟的费用。无论脚本运行多长时间,我都希望实例在脚本运行后立即停止。

【问题讨论】:

  • 您为什么不想使用 AWS CLI 自行停止实例?我认为这没有任何问题。
  • @CharlieFish 在 EC2 本身上安装 aws cli(使用凭据)是不好的做法吗?我的直觉是,这是不好的做法?
  • 我不知道。 AWS Linux 事物默认安装了 CLI。所以一些 EC2 实例已经拥有它。对于 IAM 角色,这很常见。我认为这没有任何问题。
  • @CharlieFish 是对的,您不需要凭据 - 只需一个授予权限的实例角色...但您也可以使用 shutdown 命令简单地关闭实例电源。 EC2 基础设施看到了这种情况,实例转换到 Stopped 状态,停止计费。你试过吗?
  • @Michael-sqlbot 这真的很方便。我已经完成了创建 IAM 的一半(仅限 EC2 停止权限)。我会尝试你推荐的关机方法,因为它更简单。很高兴我知道这两种方法

标签: amazon-web-services amazon-ec2


【解决方案1】:

您的实例可以使用操作系统命令关机

在 Linux 上,它会是:

sudo shutdown now -h

-h表示Halt,会触发关机。如果不包含,操作系统会停止,但实例会继续运行。)

这可以与Instance Initiated Shutdown Behavior 结合使用,可以:

  • 停止实例(听起来像您所寻求的)
  • 终止实例(如果每次都启动一个新实例则很好)


(来源:amazon.com

此方法不需要 IAM 权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2014-06-26
    • 2020-08-12
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多