当使用具有新IP的新应用程序实例时,维护用于连接客户端的DNS解析



我有一个Ansible的剧本,用于构建一个全新的GNU/Linux盒子和安装vsftpd。

我有一个客户端,它需要通过SFTP发送夜间文件。我已指示发送到ftp.example.com.

我需要能够非常快速地针对任何基础设施提供商(如DigitalOcean、AWS、Rackspace等)运行剧本,并且在客户端没有任何更改的情况下,即使服务器的IP发生了变化,也仍然可以接收夜间文件上传。因此,一天晚上服务器可能在纽约的DigitalOcean盒子上,下一天晚上在爱尔兰的AWS盒子上。

现在,很明显,我可以使用一个DNS名称服务器提供程序,它有一个好的API来编码和重置a记录,作为剧本运行的一个阶段。然而,这可能意味着,在刷新客户端的DNS缓存之前,他们仍然会将ftp.example.com视为以前的服务器。

那么,我怎么能保证这将在没有客户端任何交互的情况下工作呢。

非常感谢

在DNS方面,你不能。Evan如果你在DNS记录上设置了一个低TTL(生存时间/过期时间),许多DNS服务会缓存长达72小时的短TTL。

我的建议是不要有一个需要不断更改IP的基础设施。

更好的解决方案是使用像BitTorrentSync这样的分布式服务。

您也可以托管自己的BIND服务器,并要求您的客户端将其DNS指向您的BIND server,避免任何第三方DNS。

真正的解决方案是坚持保留一个持久的实例。如果钱是个问题,你可以在亚马逊AWS 中暂停你在计算上的实例保存

最新更新