1、要解决的问题
当你对服务器进行打补丁或升级(来增加处理能力)时,你需要停止服务器。由于停止服务器会导致服务的中断,所以你需要将停机时间降至最低。
对于网络服务器,你可以使用DNS来置换服务器。然而,在这种情况下,通常的置换时间不能缩短至生存时间(TTL)值以内,所以这就不适合即时交换。
2、云模式的说明
过去使用物理服务器,你必须提供一个备用服务器来为原服务器的停用做准备。当撤下一个实际的服务器后,你必须启动备用服务器来接管处理工作,并且为它设置IP地址(与之前那个服务器相对应)。
你可以轻松地使用AWS云来快速完成上述操作。准备一个机器映像,使你能够随时启动所需的虚拟服务器。此外,因为可以使用一个API来指定IP地址,所以可以编写一个脚本来自动化通过设置IP地址启动服务器的过程。
3、实施
AWS中所使用的静态IP地址就是所谓的“弹性IP地址(EIP)”。可以使用它来重新分配IP地址。你可以从现有的EC2实例中解除绑定的EIP,然后将此EIP与另一个EC2实例进行绑定,以此来置换提供服务的虚拟服务器。
(步骤)
为一个EC2实例分配一个EIP。
当这个实例失效或需要升级时,创建一个新的EC2实例。此时可以应用Stamp模式。也可以预先创建好其他的EC2实例来更加快速地执行交换。
创建好实例后,从目前的EC2实例中分离出EIP,并将其添加到新的实例上。
4、配置
5、好处
你可以在不受DNS的TTL 影响之下,仅仅通过重新分配EIP来交换服务器。
当进行升级时,一旦置换了EIP的服务器发生错误时,可以通过将EIP指定给原来的服务器来保证及时地返回。??
因为你可以跨越不同的AZ来应用EIP,所以即使出现一个AZ级别的失效,你也能将EIP重新分配给处于不同AZ的服务器。
6、注意事项
改变EIP通常需要几秒的时间。
在虚拟私有云(VPC)中,你可以创建额外的虚拟网卡,称之为弹性网络接口(或ENI)。他们会使用固定IP地址(注意:从基础设施的角度看是“固定的”或“不变的”,但是从操作系统的角度来看它是动态的)。你可以分配并转移一个带有 私有地址的ENI和(如果适用)EIP给另一个EC2实例,使你甚至可以在一个私有网络内使用这个模式。注意,由于他们的主IP是固定的,所以ENI被限制于VPC的一个子网中。
当你为一个新的实例建立一个SSH连接而未考虑EIP时, 会发出一个潜在的安全问题警告,这可能导致无法登陆。
7、其他
你可以使用如HeartBeat、Nagios或Zabbix这一类的软件来侦察错误。因为你可以使用程序来执行EIP的重分配,所以你可以通过结合监控软件来自动化这一过程。
你可以同时使用服务器交换模式,不仅可以重分配EIP,还可以交换EBS来保证数据的继承。
有一个不需要使用EIP来切换至备用服务器的技术方法:利用ELB,通过增加或删除一个健康检查文件即可。
8、Q&A
Q1:弹性IP模式使用了哪些其他的模式?
A1:在创建新的替换实例时,使用了Stamp印章模式。