Amazon web services 如何在第一个实例内获取第二个ec2实例的公共DNS地址

Amazon web services 如何在第一个实例内获取第二个ec2实例的公共DNS地址,amazon-web-services,amazon-ec2,dns,Amazon Web Services,Amazon Ec2,Dns,基于这个问题: 我知道如何获取ec2实例自己的公共DNS地址。我需要的是这个实例获取第二个ec2实例的公共DNS实例的方法 我的想法是,我将有大约50个实例在运行,其中一个或两个将是持续运行的spot实例。所有其他工作实例都需要知道spot或master实例的公共DNS名称,才能在我的应用程序中连接到它。我该怎么做 另一方面,是否有一种方法可以创建spot主实例的备份?如果它失败了,我希望另一个spot实例立即取代它,但是我的worker ec2实例必须更新关于spot实例的公共dns地址的信

基于这个问题:

我知道如何获取ec2实例自己的公共DNS地址。我需要的是这个实例获取第二个ec2实例的公共DNS实例的方法

我的想法是,我将有大约50个实例在运行,其中一个或两个将是持续运行的spot实例。所有其他工作实例都需要知道spot或master实例的公共DNS名称,才能在我的应用程序中连接到它。我该怎么做


另一方面,是否有一种方法可以创建spot主实例的备份?如果它失败了,我希望另一个spot实例立即取代它,但是我的worker ec2实例必须更新关于spot实例的公共dns地址的信息。

我认为获取其他实例的公共dns的唯一方法是使用amazon提供的命令行界面或Web API

您需要的具体命令是ec2 descripe instances,它为每个实例提供有关公共DNS设置的数据

当然,您也可以通过Web API执行相同的操作:

关于备份,您可以将spot实例映射到EBS(这是首选),然后进行快照备份。快照备份仍然在amazon控制台中手动触发(或者再次通过命令行工具和Web API触发)。快照应该适合于常规备份

您还可以使用类似的服务来自动执行EC2快照备份

如果要备份spot实例的完整AMI映像,以便稍后从头开始重新创建,或从同一映像创建多个实例等。请转到管理控制台并执行以下操作:

  • 点击实例
  • 选择要从中创建AMI的实例
  • 单击“操作”并选择“创建图像”
  • 设置图像名称和其他信息并保存

  • 另一种方法是使用S3。当spot实例出现时,它将读取自己的公共地址并将其写入S3中的一个bucket中。其他实例将在第一次需要时查找bucket并使用该值。如果spot实例出现故障,工作人员将定期轮询bucket,直到出现新的spot实例并更新bucket

    确保将bucket设置为仅允许经过身份验证的访问,以便只有您的应用程序才能修改它


    这种方法具有安全优势,因为VM不需要访问您的EC2凭据。他们只需要访问特定的S3存储桶。

    有趣的是,我假设spot实例将创建他们自己的存储桶,这取决于您想要完成什么。通常,每个应用程序都有一个固定的bucket,服务器将其详细信息作为文件写入bucket中。让应用程序变得更容易,因为每个应用程序都可以有一个单独的bucket。啊,如果我从我的一台机器创建一个AMI实例,它会包括我的用户数据引导配置吗?由于我传入的用户数据操作,当前启动实例大约需要5分钟。如果我创建一个自定义的AMI,我也可以跳过加载时间?