AWS EC2 - 如何在不更改现有公共IP的情况下升级实例?

时间:2017-09-16 09:42:56

标签: amazon-web-services amazon-ec2 ubuntu-16.04

是否可以在不更改现有公共IP地址的情况下升级EC2实例?我的移动应用程序是实时的,不幸的是我们在Web服务中没有使用弹性IP。因此,如果我升级当前实例,它将生成新的公共IP,并且旧应用程序用户无法使用移动应用程序。 有没有办法保持现有的IP?或者任何其他方式升级它而不会丢失现有用户?请建议。

2 个答案:

答案 0 :(得分:0)

这取决于您正在运行的软件类型

如果您的应用程序是无会话的,那么在另一台IP上启动另一台服务器然后使用route53来切换流量会很简单,两台服务器同时运行

如果应用程序是有状态的,并且如果它将会话本地存储在主机上那么这就更有问题了

一种可能的方法是将弹性IP绑定到正在运行的主机,重新配置您的软件以侦听所有地址(许多配置控件允许此地址为0.0.0.0)然后更改DNS并逐渐查看流量迁移弹性IP,两个地址都可以工作

一旦新地址完全使用(取决于您的TTL),通过重新分配EIP来切换到新主机变得更加容易

答案 1 :(得分:0)

请考虑这一课程,了解为何应使用负载均衡器和DNS条目,尤其是对于任何面向公众的内容。如果实例失败,你打算做什么?或者可用区域出现了问题?

我个人会在负载均衡器后面设置一个新的更大的实例,创建指向负载均衡器的Route53 DNS条目,然后向客户端发布指向DNS条目的更新。随着客户端更新,流量将逐渐转移到负载均衡器。尺寸过小的单个实例的负载将下降,因此如果它过载,它将最终恢复正常。最终,当所有/大多数客户端都已升级时,您可以终止旧实例。