我正在考虑使用 DNS 推出我们的 Web 应用程序的新版本。
我们目前正在使用 EC2 托管我们的应用程序,因此我的想法是,我们可以启动一个新实例,将新的应用程序版本部署到该实例,运行一些测试以确保一切顺利运行,然后将我们的域指向新实例的 IP。
这是我们应该考虑的事情吗?对我来说这似乎是个好主意,但我对服务器托管也是新手。如果你尝试过这个,你遇到过什么问题吗?
谢谢您的反馈。
答案1
Amazon 支持将实时服务从一个实例切换到另一个实例所需的确切功能。它称为“弹性 IP 地址”,描述如下:
涉及的初始步骤包括:
分配弹性 IP 地址。
将弹性 IP 地址与您的实例关联。
将您的 DNS 设置为永久指向弹性 IP 地址(这样就不会出现 DNS 缓存/传播延迟)。
步骤 1 和 2 可以通过 EC2 命令行或 Web 控制台完成。步骤 3 可以通过常用的 DNS 服务完成。
当您准备切换到不同的 EC2 实例时,只需更改与新实例关联的弹性 IP 地址即可。更改需要几秒钟才能通过 EC2 网络设备进行过滤,然后您就可以恢复业务了。
使用弹性负载均衡器也可以做到这一点,但对于单个实例来说,弹性 IP 地址可能更简单。
弹性 IP 地址还可用于通过 CNAME 技巧解析当前实例的(正在更改的)内部 IP 地址。这是我写的一篇关于此内容的文章:
使用弹性 IP 识别 Amazon EC2 上的内部实例
http://alestic.com/2009/06/ec2-elastic-ip-internal
答案2
它可以工作,但是您需要记住 DNS 需要时间来传播。另外,用户可能正在使用他们的本地 DNS 缓存。您可以这样做,但暂时关闭“旧版本”服务器的首页并设置重定向到“新”服务器的 IP。这应该可以解决极端情况。