如果 EC2 实例出现故障并且自动扩展启动了新实例,我如何将旧 EBS 卷自动移动到新实例?
EBS 卷可能包含大量数据,并且备份不是即时的,因此自动重定位卷可能是保存数据的最佳方式。
如果 EC2 实例出现故障并且自动扩展启动了新实例,我如何将旧 EBS 卷自动移动到新实例?
EBS 卷可能包含大量数据,并且备份不是即时的,因此自动重定位卷可能是保存数据的最佳方式。
如果 EC2 实例出现故障并且自动扩展启动了新实例,我如何将旧 EBS 卷自动移动到新实例?
没有 API 调用可以自动执行此操作。但是你可以编写一个守护进程来启动一个带有正确参数的新盒子。
不幸的是,如果您关心灾难恢复,您想要做的并不是一个好的策略:
1)当一个盒子死掉时,EBS卷可能会在分离状态“卡住”几个小时(我实际上已经看到> 24小时)。
2)如果您的区域有问题,您可以轻松地在其他区域启动实例,但您不能在区域之间移动驱动器。
相反,您最好从快照启动,这解决了这两个问题。
(您也可以考虑像 CEPH、GFS、AFS 等分布式文件系统。)
我认为您正在寻找的是S3。如果您认为某些数据需要由其他 ec2 实例共享。那么您应该将该数据保存在 S3 上,而不是 EBS 卷本身。任何 EC2 实例都可以轻松访问 S3 上的数据,即使位于网络位置之外,延迟也非常小。EBS 卷应该与该 EC2 本身相关联。
自动缩放不仅应该启动一个新实例,还应该将相同的 EBS 卷附加到它。只要先前的 EC2 实例终止,AWS 就会自动分离 EBS 卷。如果您使用的是 Elastic Beanstalk,我建议您使用ebextensions
. 否则,您应该依赖OpsWorks。
或者通过 SDK/API 手动执行此附件。