小编kos*_*hei的帖子

根据网络请求自动启动 AWS EC2 实例(LAN 唤醒)

我想按需启动一个 EC2 实例,并在它闲置一段时间(例如,>= 1 小时没有网络活动)时将其关闭,但我不知道什么是标准方法鉴于 AWS 不支持 LAN 唤醒,因此在 AWS 中执行此操作看起来像这样。

我打算运行的服务需要持久的网络连接,例如 ssh。

我想要的用户体验是这样的:

  • 如果用户尝试连接时服务已启动,则用户可以立即访问该服务。
  • 如果用户尝试连接时服务已关闭,则用户会收到“服务正在启动”回复(并且连接将关闭)。用户在几分钟后重试并成功连接(或者如果重试太早,则会再次收到“开始”消息)。在最后一个用户断开连接后,该服务最多仍保持一个小时。

我的动机主要是节省成本。需求将是高度不可预测的(因此计划实例不太适合),每天的活动时间可能少于 12 小时,并且用户愿意等待几分钟以便服务启动。我不想将预留实例定价锁定在 1 年以上的期限内。

我也对如何实现这一目标进行了一些大胆的尝试,并且希望得到关于它们的合理性/合理性的反馈:

  1. 使用自动缩放组将服务从 0 个实例“缩放”到最多 1 个实例。但我不知道如果没有实例运行,我如何能够发出“服务正在启动”回复。
  2. 当服务关闭时运行 t2.micro 实例,其唯一目的是捕获连接尝试,发出“启动”回复,触发启动实际服务实例,然后终止。当服务实例由于不活动而关闭时,需要再次启动 t2.micro 实例。

谢谢!

networking wake-on-lan amazon-ec2 amazon-web-services autoscaling

6
推荐指数
1
解决办法
6384
查看次数