Amazon EC2 - 保留私有地址

Amazon EC2 - 保留私有地址

我在 Amazon EC2 上运行了一个私有 DNS 服务器。我不需要公共 IP 地址,因为它仅用于私有寻址 web1.xxx.internal database1.xxx.internal

问题是我最近不得不终止该实例并启动一个新实例。这意味着 DNS 服务器的私有 IP 地址发生了变化,我必须逐个登录其他 15 台服务器,并将 DNS 地址更改为指向新的 DNS 服务器。

一定有更好的方法来做到这一点,如果有,那是什么?

答案1

使用 puppet 保持配置同步。更改 puppet 服务器上的配置将会复制到所有其他服务器上。

您也可以使用 bcfg2 或 cfengine,这是您的选择。

仅需进行简单的文件同步,您就可以使用 unison。

答案2

我设置了一个脚本来处理这个问题,它会在我的其中一台服务器上设置一个带有别名的 hosts 文件,然后将其 scp 到各个实例。因此,它使用 ec2-describe-instances 列出所有机器,实例的名称标签也是该机器的名称。这适用于 Windows 和 Unix ec2-instances 的混合。

因此 ec2-describe-instance 返回(缩写):-

db domu-blah.amazonaws-1.com 74.23.65.256
etc...

然后我使用 awk 建立一个 hosts 文件,如下所示:-

127.0.0.1 localhost localhost.localdomain
74.23.65.256 db
etc...

然后使用 scp 将其发送到系统中的所有机器。看起来效果不错!

答案3

对于在 EC2 上安装多节点的情况,我使用了这个 Exapark 实用程序:http://www.exapark.com/product.html

它安装起来非常简单,运行起来也很快。它获取实例的名称标签及其私有 IP,并将其放在 hosts 文件中。因此,您可以配置实例间连接,并将持久名称解析为私有 IP。

答案4

如果服务器的流量与 DNS 服务器一样少,那么在内部使用弹性 IP(如果有多余的)可能是有意义的。

顺便说一句,一个有用的事实是,实例的公共 DNS 名称从 EC2 内部解析为其内部 IP — — 即使正在使用弹性 IP:

ip-10-170-25-38:~$ host ec2-50-18-56-241.us-west-1.compute.amazonaws.com
ec2-50-18-56-241.us-west-1.compute.amazonaws.com has address 10.160.171.207

相关内容