亚马逊EC2 – 保留的私人地址

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

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

要做到这一点,一定有更好的办法,如果是的话,那是什么?

使用木偶保持configuration同步。 更改您的木偶服务器上的configuration将被复制到所有其他服务器上。

您也可以使用bcfg2或cfengine,是您的select。

只要简单的文件同步,你可以使用统一。

我有一个脚本设置来处理这个问题,在这里设置一个在我的服务器上有一个别名的hosts文件,然后scp到不同的实例。 所以它使用ec2-describe-instances列出所有机器,实例的名称标签也是机器被称为的名称。 这是针对windows和unix ec2实例的混合。

所以ec2-describe-instance返回(缩短): –

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

然后,我使用awk构build一个hosts文件,如下所示:

 127.0.0.1 localhost localhost.localdomain 74.23.65.256 db etc... 

然后使用scp将其发送到系统中的所有机器。 似乎工作得很好!

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

安装起来非常简单,而且运行起来很快。 它将实例的名称标签和它们的私有IP放在主机文件中。 因此,您可以configuration实例间连接,并将永久性名称parsing为专用IP。

如果服务器的stream量和DNS服务器一样小,那么在内部使用弹性IP可能是有意义的,如果有空闲的话。

顺便提一下,一个有用的事实是,一个实例的公有DNS名称从EC2内部parsing到其内部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