我有一个 AWS 实例,比如说从另一个 Aws 实例的快照创建的 DB 实例 (快照->图像->AWS 实例)。是否可以使用增量更新之类的方式定期更新同一快照,从而还可以使用新更改动态更新我的 AWS DB 实例,因为它是之前从此快照创建的。
答案1
我认为您无法从新的卷快照更新正在运行的实例。使用一些自定义工具可能可以找出新旧之间的差异,但我不知道有任何这样的工具。
然而你可以尝试从一种不可变的基础设施看法:
使用 2 个 EBS 卷从快照创建实例:
- 第一的是配置的根/OS 卷。切勿在此卷上进行任何重要更改。
- 第二数据量(例如数据库数据)
当有新的快照/AMI 可用时,用从新的根/OS 卷和旧数据量与原始实例分离。
或者将数据存储在其他存储器上,例如 EFS。
你甚至可以通过Auto Scaling 组- 每当 ASG 使用新的 AMI 更新时,就滚动更新实例。
这可能是您能获得的最接近且最干净的。
希望有帮助:)
答案2
您无法使用 AWS 的内置功能增量传输快照增量。如果您只写入一个实例,则可以克隆它,丢弃旧克隆并安装新克隆。
如果您需要数据在两个实例上同步可用,则您有三个选择:
1) 使用一个挂载在两个实例上的卷。您将需要一个集群文件系统来同时在两侧挂载读写,例如 GFS2。
2)与1)类似,但不是在节点之间挂载共享卷,而是使用DRBD在两个节点之间同步复制块级别的数据。
3)GlusterFS。
如果异步复制足以满足您的要求,则您有两个选择:
1)lsyncd
2) 具有定期快照和增量传输的 ZFS。请注意,这要求辅助节点是只读的。这可能是最接近您在问题中描述的解决方案。