【问题标题】:Programmatically Stop and RESUME AWS EC2 based on activity根据活动以编程方式停止和恢复 AWS EC2
【发布时间】:2021-09-23 19:40:26
【问题描述】:

我的组织希望最大限度地降低 EC2 实例的成本,我正在考虑如何以编程方式暂停和恢复它。

我在 stackoverflow 上找到了一些帖子,您可以在其中设置 lambda 函数以在 EC2 实例长时间空闲时暂停它。我的问题是,当网站有请求时,如何自动恢复它。

更多信息: 我的 EC2 用于部署 Web 应用程序。它们不是静态网站。现在主要是 t2.small,但一个是 t2.xlarge,用于 ckan 开放数据门户。他们一点也不忙。有一个用于 DocuemntDB 访问。

【问题讨论】:

  • 什么网站?启动实例需要时间。无论您做什么,在使用实例之前都会有很大的延迟。
  • 你只运行一个实例吗?实例的大小是多少?你在实例上运行什么(它只是一个静态站点,还是做一些复杂的事情)?实例是否在一天中的其他时间变得非常忙碌?请编辑您的问题以提供您当前设置的完整详细信息,并回答这些问题。
  • EC2 实例上部署了什么?它有什么功能?如果您可以在操作系统/应用程序/使用方面提供更多信息,则可能有多种解决方案

标签: amazon-web-services amazon-ec2 aws-lambda amazon-elastic-beanstalk


【解决方案1】:

您可以停止 Amazon EC2 实例。

停止实例时,您可以选择关闭实例或休眠实例。

关机 就像在普通计算机上选择选项一样——操作系统会正常关机,然后计算机就会关闭。下次开机时,它会经历完整的启动过程。

休眠 将内存保存到磁盘,这样当它再次启动时,一切都与休眠前完全一样。从磁盘读取内存可能需要一段时间。

您需要做一些实验来确定实例在从休眠状态启动后再次可用的速度。

见:Hibernate your On-Demand or Reserved Linux instance - Amazon Elastic Compute Cloud

在这两种情况下,实例都已停止,并且 EC2 实例不收费(但正在使用的 Amazon EBS 磁盘存储将继续收费。)

没有提供“自动恢复”实例的方法。由于计算机已关闭,因此发送到实例的任何流量都将失败。您需要触发一些可以启动实例的外部机制,例如调用 AWS Lambda 函数或在您自己的计算机上运行 AWS CLI 命令。

如果您的目标是最大限度地降低成本,请从选择大小正确的实例开始。随着白天流量的增加,您可以将实例停止/调整大小/启动到更大的大小(但这会有中断时间),或者在负载均衡器后面运行多个实例并更改实例数量(但负载均衡器会产生额外费用)。

【讨论】:

    猜你喜欢
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多