亚马逊AWS官方博客

借助数据标签实现跨区域数据的精准化迁移

熟悉AWS 的朋友都知道,在12年前,AWS 发布了自己的第一款产品 – 分布式对象存储服务 Amazon S3,并借此机会开启了后来一发而不可收的云端探险之旅。Amazon S3 作为 AWS 旗舰型服务会将用户的数据保存在云端指定的区域,并且保持11个9的高持久性。随着越来越多的被使用和关注,用户已经并不满足于只将数据存储于一个区域,而是根据不同业务的不同需求,将数据保存在全球的各个需要的区域。

为了帮助用户更简单快捷地将 Amazon S3 对象副本复制到其它 AWS 区域当中,AWS 已经正式推出了 Amazon S3 跨区域复制(Cross-Region Replication,简称 CRR)功能。用户可以利用这项功能满足前面提到的各项需求,包括跨区域多副本存储以及把数据部署在与用户较接近的位置。数据在云端“搬家”已经变得只需运行几条 CLI 命令或者轻点几下鼠标就能完成的任务。

之前的Amazon S3 CRR 虽然实现了自动化的跨区域数据复制,但是最大的局限来自于只支持 Amazon S3 存储桶或者带有某特定 prefix 前缀级别的数据迁移,对于用户需要将部分必要的数据而非全部数据进行复制备份的情况,会让用户陷入两难的境地。要么借助 Amazon S3 CRR 将全桶数据或某些前缀的数据“一锅端”通过AWS跨区域的高速骨干网络进行复制,再剔除多余的数据;要么自己处理整个迁移过程,为用户增加了不少工作量。

基于数据标签实现跨区域数据迁移功能的发布就是填补Amazon S3 CRR 的这块短板,借助新发布的功能,用户可以为存储在 Amazon S3 中的对象打上标签(Tag),将标签作为数据迁移的一个过滤器,这样在迁移之前用户可以定义好指定的规则,根据业务的要求,将附着指定标签的数据自动地迁移到另一个区域。现在用户可以灵活地去选择复制那些至关重要的数据到 AWS 其他区域来满足自身的业务对数据保护和合规性的要去。云端岂无双全法,可以让用户在简便与灵活之间任意进行选择。

另外,基于数据标签的迁移功能就是基于 Amazon S3 CRR 的一个增强特性,现在还暂时只支持新增数据的自动迁移能力。如果您现在已经有了不少存量的数据等待去迁移,也没有问题,需要您联系到 AWS 支持部门,帮您先加入到存量数据迁移的白名单中,这样就可以顺利的实现新老数据的复制工作了。

下面我们来看看具体是如何对 Amazon S3 中数据进行精细化的复制控制的。

首先,我们先确认创建 Amazon S3 存储桶,并且启动版本服务(Enable Versions)

图1  创建Amazon S3 源存储桶

图2  对Amazon S3 源存储桶启用版本支持

 

创建完 S3 源存储桶后,点击存储桶中的管理菜单(Management)下的复制模块(Replication),创建 Amazon CRR 复制规则。

图3  对跨区域数据复制创建复制规则

 

选择 Amazon S3 中的需要进行迁移的源数据桶,定义迁移的标签数据,这里我们指定标签 replication 值为 yes 的对象进行迁移。

图4  对源数据桶迁移规则进行定义(1)- 选择标签

图5  对源数据桶迁移规则进行定义(2)- 设定标签值

创建针对 Amazon S3 CRR 的新的 IAM Role,会自动生成包含数据迁移所需的服务权限,并且为迁移规则(Rule)进行命名,点击创建完成整个迁移策略的设置。

图6  设置完成跨区域数据复制规则

对于不同的迁移规则,有可能彼此间存在相互冲突的条目,可以同时设置规则的优先级来解决规则间的相互冲突。优先级的数值越低优先级越高,复制过程中会保证高优先级的策略优先执行。另外,用户还可以根据业务的需要制定复制后的存储类型,使得整个迁移过程变得更加灵活。

图7  设置迁移规则中优先级等属性

 

将验证的数据对象上传到源数据桶,并且打上不同的标签以示区别,其中前两个对象标签信息为 Replication=yes,第三个对象的标签信息为 Replication=no。

图8  源存储桶中上传打标签的数据

 

观察目的区域目标存储桶,验证标签 Replication 的值为 yes 的对象是否迁移成功。

图9  目标存储桶中迁移指定标签下的对象

 

如上是整个基于标签化跨区域数据迁移的全部过程,我们也提供了基于 CLI 和 API 的方式来实现此功能。通过精细化控制,我们可以实现数据迁移的细粒度控制,将迁移的控制权完全交还给用户,按照用户实际的业务需求来进行自动且灵活的迁移工作。

相关功能使用成本

基于数据标签的跨区域数据迁移功能并不会收取用户额外的费用,您将会为S3的请求、跨区域数据传输以及对象存储付费。另外对于对象标签也会存在一部分的费用。