【问题标题】:EC2 start and stop automationEC2 启动和停止自动化
【发布时间】:2020-08-09 02:53:13
【问题描述】:

我在运行 CICD 的生产环境中有 EC2 实例。 现在我们只有在生产部署时才使用这个EC2。生产部署一个月几乎不会有一次。但是这个生产部署时间并不固定。

因此,为了节省成本,我们希望仅在要部署时运行此 EC2。 我们不想使用控制台手动启动和停止这个 EC2。

在 adhoc basic 上自动启动/停止 EC2 的最佳方法是什么? 注意:这里没有预定义我们要运行 EC2 的时间。

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    理想的“按需”方法是使用 AWS CodePipeline 服务来组织 CI/CD 流程。这样,资源只会在您需要时提供,并且会自动触发流程。

    除此之外,如果使用模式不可预测,IMO 最简单的方法是在 CI/CD 触发阶段触发实例唤醒,无论是使用 SDK 还是 AWS CLI。

    【讨论】:

    • AWS CodePiple 未在我的商店中授权服务。如果我使用 AWS SDK 如果我编写 python boto3 代码,我将如何在需要时调用?
    • 这完全取决于你如何触发构建过程。从头顶开始,我会启动实例,使用aws ec2 wait instance-running 直到实例启动,然后继续构建。然后停止实例作为成功构建的最后一步。
    • 但是在哪里运行aws ec2 wait instance-running,因为没有运行实例?当 master 分支有提交时,构建过程将开始。
    • 好吧,那是你的问题。如果您的 CI/CD 管道托管在单个实例上,它不会削减它,您需要一些中间件来为您唤醒它,例如连接到 lambda 函数的 API 网关 web-hook。这就是我推荐 CodePipeline 的原因。在不知道您的设置的情况下,很难告诉您如何组织它。
    • 我可以使用 API Gateway 和 Lambada 功能,但我如何使用它们来启动/停止 EC2。我知道我可以编写 bto3 代码来启动/停止 EC2,但是如何确定何时调用它?
    猜你喜欢
    • 2020-05-21
    • 2018-08-15
    • 2020-04-23
    • 2019-08-03
    • 2022-12-13
    • 2011-10-29
    • 1970-01-01
    • 2016-04-04
    • 1970-01-01
    相关资源
    最近更新 更多