【问题标题】:Identify currently-executing EC2 instance识别当前执行的 EC2 实例
【发布时间】:2011-03-20 15:30:04
【问题描述】:

我有一个运行一段时间的 EC2 实例,当它完成时,我希望它自行终止。似乎是一个简单的请求,但我不知道如何让一个实例唯一地标识自己。 AWS API 让我可以枚举正在运行的实例,但如果我有多个从同一个 AMI 启动,我如何找到当前的?

我正在使用 AWS .NET 工具包运行 Windows Server 2008 实例。

【问题讨论】:

    标签: .net windows-server-2008 amazon-ec2


    【解决方案1】:

    您可以选择的一些选择:

    1. 根据您问题的措辞,我相信您正在尝试从服务器中获取实例 ID,然后将其用作输入来终止服务器。从您的服务器内部对http://169.254.169.254/latest/meta-data/instance-id 的调用将为您提供终止机器所需的实例ID。然后,您可以将该 ID 提供给您的 TerminateInstancesRequest .NET API 并调用以终止机器。
    2. 只需编写一个程序来关闭服务器。除非我弄错了,否则关闭服务器会终止它(而不是仅仅停止它)?似乎比选项 1 容易得多。
    3. 您可以使用http://LabSlice.com 等第三方工具在固定时间段(例如,1 小时后)自动安排计算机终止。这可能不是一个坏主意...请记住,您按小时收费,而不是按分钟收费。因此,如果您有一个运行时间很短的任务,那么如果您在任务完成后(10 分钟后)立即终止服务器,或者您在恰好 1 小时后自动终止,则不会对您的账单产生影响。

    【讨论】:

    • 嗨,西蒙,您在为 LabSlice 工作(即使您的显示名称确实表明了这一点?)我们的社区对自我推销非常敏感 - 您的回答没有错,如果您有帮助把它放在帖子里。谢谢!
    【解决方案2】:

    不确定这是否有帮助,但另一种选择是将您的实例置于 Auto Scaling 组之后,并针对在实例中运行的服务端点设置心跳/健康检查 URL。

    这样,当您的服务完成处理后,它可以停止响应心跳,您的实例将被终止。

    您需要调整 ASG 的最小/最大实例属性以适应您想要满足的任何用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 2018-09-07
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      相关资源
      最近更新 更多