![](/img/trans.png)
[英]Public ip address of ec2 instance is None while the instance is initializing
[英]How to get the public DNS address of a second ec2 instance while inside the first instance
建立这个问题:
我知道如何获取ec2实例自己的公共DNS地址。 我需要的是此实例获取第二个ec2实例的公共DNS实例的方法。
我的想法是,我将运行约50个实例,其中一个或两个将是一直运行的竞价型实例。 所有其他辅助实例都需要知道该实例或主实例的公用DNS名称,才能在我的应用程序中连接到该实例。 我怎样才能做到这一点?
另一方面,是否可以创建我的竞价型主实例的备份? 万一失败,我想立即使用另一个竞价型实例,但是我的worker ec2实例将必须更新有关竞价型实例的公共dns地址的信息。
我认为获取其他实例的公共DNS的唯一方法是使用亚马逊提供的命令行界面或Web API。
您需要的具体命令是ec2-describe-instances ,它提供有关每个实例的公共DNS设置的数据。
当然,您可以通过Web API进行相同的操作:
http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html
关于备份,您可以将竞价型实例映射到EBS(首选),然后进行快照备份。 快照备份仍可在Amazon控制台中手动触发(或再次通过命令行工具和Web API)。 快照应适合常规备份。
您还可以使用http://www.skeddly.com/之类的服务来自动执行EC2快照备份。
如果要备份竞价型实例的完整AMI映像,则可以在以后从头重新创建它,或者从同一映像创建多个实例,等等。请转到管理控制台并执行以下操作:
一种替代方法是使用S3。 当竞价型实例出现时,它将读取自己的公共地址并将其写入S3中的存储桶。 其他实例将在他们第一次需要存储桶时使用该值。 如果竞价型实例发生故障,工作人员将定期轮询存储桶,直到出现新的竞价型实例并更新存储桶。
确保将存储桶设置为仅允许经过身份验证的访问,以便只有您的应用程序才能对其进行修改。
这种方法具有安全性优势,因为VM不需要访问您的EC2凭据。 他们只需要访问特定的S3存储桶。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.