繁体   English   中英

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

[英]How to get the public DNS address of a second ec2 instance while inside the first instance

建立这个问题:

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

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

我的想法是,我将运行约50个实例,其中一个或两个将是一直运行的竞价型实例。 所有其他辅助实例都需要知道该实例或主实例的公用DNS名称,才能在我的应用程序中连接到该实例。 我怎样才能做到这一点?

另一方面,是否可以创建我的竞价型主实例的备份? 万一失败,我想立即使用另一个竞价型实例,但是我的worker ec2实例将必须更新有关竞价型实例的公共dns地址的信息。

我认为获取其他实例的公共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. 点击实例
  2. 选择要从中创建AMI的实例
  3. 点击“操作”,然后选择“创建图像”
  4. 设置图像名称和其他信息并保存

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM