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

时间:2014-09-29 22:10:47

标签: amazon-web-services amazon-ec2 dns

建立这个问题:

https://unix.stackexchange.com/questions/24355/is-there-a-way-to-get-the-public-dns-address-of-an-instance

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

我的想法是运行~50个实例,其中一个或两个将是一个不断运行的点实例。所有其他工作者实例都需要知道在我的应用程序中连接到它的spot或master实例的公共DNS名称。我怎么能这样做?

另一方面,有没有办法可以创建我的现货主实例的备份?如果它失败了,我想有另一个立即取代它的现场实例,但是我的工作者ec2实例必须更新它们关于spot实例的公共DNS地址的信息。

2 个答案:

答案 0 :(得分:1)

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

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

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeInstances.html

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

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html

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

您还可以使用http://www.skeddly.com/之类的服务来自动执行EC2快照备份。

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

  1. 点击Instances
  2. 中选择要创建AMI的实例
  3. 点击"操作"并选择"创建图像"
  4. 设置图像名称和其他信息并保存

答案 1 :(得分:0)

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

确保将存储桶设置为仅允许经过身份验证的访问,以便只有您的应用程序才能对其进行修改。

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