使用连接的EBS卷和MongoDB服务器终止EC2实例的最安全方法是什么

时间:2011-11-25 11:51:26

标签: mongodb amazon-s3 amazon-ec2 backup snapshot

我目前处于将使用Mongo作为其数据存储的系统的开发阶段。数据库服务器将在EC2实例上运行,实际数据库位于单独的EBS卷上。

我的问题是这样 - 假设数据库已启动并正在运行,但没有数据被写入或读取数据,从数据库数据完整性方面来说,从AWS控制台终止EC2实例有多危险?正如我所说,我并不担心任何部分写入的数据或类似的东西,我实际上是指数据库中已有的数据。

此外,有人可以解释EBS卷的快照对快照中数据完整性的影响吗?在我的本地开发服务器上,在将rsync备份到本地存储之前,我总是停止使用Mongo,因此我不清楚在数据库运行时获取EBS卷的S3快照的含义。

谢谢!

3 个答案:

答案 0 :(得分:2)

从AWS控制台终止EC2实例与从VM内部选择操作系统关闭功能相同,因此如果Mongo遵循标准的关闭协议并优雅地停止任何打开的数据库通道,一切都会很好,并且没有完整性关于EBS卷的问题。

快照EBS存储不是原子时间点进程 - 根据EBS卷的大小和自上次快照以来的更改量,创建新快照需要一定的时间。因此,如果需要考虑数据完整性,则应在抢购EBS数据存储之前始终停顿数据库服务。同样,如果要捕获VM根EBS卷,则应首先停止VM。

答案 1 :(得分:0)

此外,请注意,快照EBS卷可能会影响该EBS卷的性能。

当我们对EBS卷进行快照时,我们会看到延迟增加。

答案 2 :(得分:0)

根据我的经验,这不是实际发生的事情。 对于Linux EC2实例,终止实例会模拟电源故障而非正常关闭。 /etc/rc.d关闭脚本不会运行。