当前位置:  开发笔记 > 运维 > 正文

即使公共IP地址可能发生变化,Amazon EC2实例也可以拥有静态公共DNS吗?

如何解决《即使公共IP地址可能发生变化,AmazonEC2实例也可以拥有静态公共DNS吗?》经验,为你挑选了1个好方法。

请注意,我希望AWS为我的EC2实例分配静态IP地址.请花些时间阅读这个问题.

每次我停止并启动我的EC2实例时,我都可以使用Amazon AWS分配新的IP地址.但是,Amazon AWS还会根据此IP地址分配公共DNS主机名.这完全违背了首先拥有主机名的目的,因为主机名应该可以帮助您找到服务器,即使其IP地址已更改.

例如,如果IP地址是12.34.56.78,则AWS分配公共DNS名称,如下所示:

ec2-12-34-56-78.ap-location-1.compute.amazonaws.com

我曾经假设有一个选项可以获得亚马逊可以在内部解析到正确实例的固定公共DNS,就像我的想象力示例:

ec2-myinstance1-112233445566.ap-location-1.compute.amazonaws.com

myinstance1我在EC2控制台中定义的实例名称在哪里,112233445566是我的帐户ID.

这样,即使公共IP地址更改为23.45.67.89,公共DNS仍将与基于固定详细信息的完全相同.

我注意到使用名为"No-IP"的外部第三方服务可以进行类似的设置.但是这会创建外部依赖关系并需要在实例中的操作系统级别进行配置,以启动守护程序服务来执行更新.听起来好像AWS端IP地址更改和No-IP端相应更新之间可能存在延迟.(试过它,它给出了一个简短而又整洁的地址myhostname.ddns.net.这应该适用于现在,操作系统级别的配置非常简单易用.)

但亚马逊AWS应该能够反正在内部管理此(因为实例标识符是子子子域amazonaws.com),并在该实例操作系统本身绝对没有改变.

他们为什么不提供这个选项?是否采用No-IP或类似的第三方服务?或者我找不到隐藏的宝藏?



1> E.J. Brennan..:

当人们问一个问题时,我永远无法理解,问题的前提是"我知道这个问题的解决方案是什么,但我不想使用它" - 解决方案是分配弹性IP - 即弹性IP会为你做什么 - 即给你一个你可以分配和使用的IP,无论底层实例......也就是说,一般来说我经常听到AWS发言者使用你需要的类比来对待你的服务器一个鸡农对待他们的鸡,而不是像家人一样对待它的宠物.

宠物有名字,当宠物生病时,你将它们带到兽医处并让它们恢复健康.鸡农(无论如何都是大鸡),不要给他们的鸡命名,当他们生病时他们不会把它们带到兽医那里 - 他们让他们死了,然后在他们的地方放一个新的(我知道,残酷的类比) ,但重点是正确的).

您没有为服务器命名 - 它们是一次性的.Web服务器(例如)通常位于负载均衡器后面,它们在自动扩展组内启动和停止,并且当实例成为ASG的一部分或离开时通知负载均衡器 - 这就是您管理服务器的方式,它们是不需要有名字.

如果你绝对,肯定必须像对待宠物一样对待你的服务器,并给它一个名字,然后使用AWS提供的设施 - 弹性IP,这是最简单的解决方案.(是的,EIP是一种付费服务,就像所有其他AWS服务一样 - 它们毕竟是一项业务),如果你真的不想使用EIP选项,那么你在运行自定义脚本时会遇到负担.您的实例启动时会使用新的IP地址更新您的route-53/dns记录.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有