【问题标题】:Scheduling to start and stop Ec2 instance in aws compaired to azure?计划在与 azure 比较的 aws 中启动和停止 Ec2 实例?
【发布时间】:2020-10-29 05:06:47
【问题描述】:

我正在尝试在一天中的特定时间启动和停止我的 EC2 实例。 Azure 中有一个计划的启动和停止 VMS 选项。

我想知道 AWS 中是否存在类似的东西。 如果不是,实现它的最佳方法是什么? 假设早上 7 点我启动我的 EC2 并在 IST 晚上 9 点停止它。我也知道与 lamnda 选项集成的云观看事件

【问题讨论】:

    标签: amazon-web-services azure amazon-ec2 lambda amazon-cloudwatch


    【解决方案1】:

    基于 cmets。

    如果您想使用 CloudWatch (CW) 事件规则触发 lambda 函数,则仅需要启动您的实例。原因是,您可以使用 CW built-in targets 直接停止实例:

    内置目标:EC2 CreateSnapshot API 调用、EC2 RebootInstances API 调用、EC2 StopInstances API 调用和 EC2 TerminateInstances API 调用。

    遗憾的是,没有用于启动实例的内置目标,因此需要 lambda 函数。

    【讨论】:

    • 只是好奇您打算使用哪个 CloudWatch 事件来触发 EC2 终止? OP 是关于调度的。
    【解决方案2】:

    创建两个不同的 Lambda 函数来启动和终止 EC2 实例和 schedule them via CloudWatch。对于 Lambda,您可以使用来自 AWS SDK 的任何语言。要选择要终止的特定实例,EC2 实例可以是tagged 来隔离它。 Here 是相同的解决方案。

    【讨论】:

    • 为什么需要两个函数?
    • @Marcin - 一个用于启动,另一个用于终止 EC2 实例。
    • 嗨@Marcin 希望你做得很好。我有 lambda 的云监视事件的想法。我们可以通过检查实例的当前状态在一个函数中处理它。但是有没有别的办法。 Azure 为此提供了一个内置选项,AWS 中是否存在类似的东西?
    • Here 是 Boto3 API (Python AWS SDK) 获取 EC2 实例状态的链接。其他语言也可以获得类似的 API。一个 Lambda 更有意义,少了一件需要担心的事情:)
    • @sumanthshetty 嗨。我很好,谢谢你。 CloudWatch Event 将是执行此操作的正常方式。但是只需要 lambda 来启动实例。停止可以直接使用 CW 事件规则目标完成。
    【解决方案3】:

    这里是完整指南https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/。让我知道这是否有帮助。

    正如 Praveen Sripati https://aws.amazon.com/solutions/implementations/instance-scheduler/ 所建议的,效果很好。

    【讨论】:

    • AWS 知识中心解决方案存在缺陷,因为 EC2 实例 ID 是硬编码到其中的。在触发 Lambda 之前,必须修改 EC2 实例 ID,这对于自动化来说没有多大意义。标记 EC2 是我可以考虑缩小 EC2 实例关闭范围的一种方法。
    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 2017-01-07
    • 2016-11-22
    • 2022-11-18
    • 2019-08-29
    • 2018-08-15
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多