自动停止实例 amazon ec2

自动停止实例 amazon ec2

我如何才能自动安排 Amazon EC2 Micro 实例停止运行?我还没有创建 Amazon 账户;我只是想知道我是否可以这样做。

例如,让实例从凌晨 1 点到早上 7 点关闭,然后重新打开。

我打算在上面托管一个 minecraft 服务器,我不确定微型服务器是否太小。我还担心上传/下载速率是多少

答案1

答案2

您可以像在任何其他服务器上一样在实例本身上执行 cron 关机 (/sbin/shutdown -h now)。

您将遇到的问题是凌晨 1 点重新启动它。您需要使用命令行工具通过另一台服务器启动实例:ec2start实例 ID或 Web 控制台。https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances

答案3

上传/下载费率会因您托管的可用区域而异。对于美国/欧盟,在传输量达到 10TB 之前,每 GB 收费 0.12 美元(亚洲更贵)。我不知道 Minecraft 服务器需要多少传输量,但一旦超过该级别,价格就会便宜一些。

定价全部显示在一页上:

http://aws.amazon.com/ec2/pricing/

答案4

为了实现您想要的功能,您很可能需要有一些外部主机,您可以在给定的开始时间编写微型 EC2 实例初始化脚本,然后您可以配置实例本身以运行 cron 作业来关闭。

微型 EC2 实例是 EBS 支持的实例,这意味着图像在关闭后仍然存在,而大型实例存储实例在每次从 AMI 重新启动时都会重新开始。这允许您在操作时根据需要设置和配置所有内容,包括 cron 作业执行。这确实意味着您将为您的实例支付 EBS 卷存储费用,但这些成本通常可以忽略不计。

一些人提到的使用自动扩展的问题在于,自动扩展是一种在达到某些指标时扩大然后缩小的手段。自动扩展不是为了在特定时间启动和关闭实例。为了让您的实例在您所建议的凌晨 1 点启动,您需要从控制台、API CLI 或脚本中自行启动它。我编写了启动实例的脚本,使用 Python 并使用了 Boto 模块。编写一个脚本来检查实例是否已在运行,如果没有启动,那么编写起来相当简单,可以通过具有互联网连接的外部主机上的 cron 执行。然后,关闭将由在微实例本身上执行的 cron 作业处理。

至于带宽问题。我运行了大约十几个实例,为相当大用户群提供 Web 服务,我发现与实例的每小时运行时间相比,带宽成本实际上可以忽略不计。现在我要说的是,鉴于我全天候运行我们的 EC2 实例,而不仅仅是每天几个小时。您可以使用AWS 简单月度计算器让您大致了解成本。如果您还没有数据可供参考,则需要估算您认为的数字。我在启动之前使用了这个计算器以及我自己的电子表格公式来获得一个想法,然后在几个月的常规使用后再次检查它们,发现它们相当准确,但取决于数据的准确性。

相关内容