概览
Amazon S3 复制是一项弹性、完全托管且成本低廉的功能,可在 Amazon S3 存储桶之间复制对象。S3 复制使您能够将数据从一个源存储桶复制到相同或不同 AWS 区域中的多个目标存储桶。无论您是想维护数据的辅助副本以保护数据,还是要将数据存储在多个地理位置以为用户提供最低延迟,S3 复制都能为您提供满足业务需求所需的控制。本 Amazon S3 入门指南向您展示了如何利用 S3 Same-Region Replication (SRR)、S3 Cross-Region Replication (CRR)、S3 Replication Time Control (S3 RTC) 和 S3 批量复制遵循 S3 复制最佳实践。
借助 S3 Same-Region Replication (SRR),您可以在同一 AWS 区域内的存储桶之间自动复制数据以帮助将日志聚合到单个存储桶中,在开发人员和测试账户之间进行复制,并遵守数据主权法。利用 S3 Cross-Region Replication (CRR),您可以将对象(及其对应的元数据和对象标签)复制到其他 AWS 区域,以降低延迟、确保合规性与安全性、实现灾难恢复和区域效率。您还可以启用 S3 Replication Time Control (S3 RTC),以帮助您满足数据复制的合规性或业务要求。S3 RTC 可以在几秒钟内复制您上传到 Amazon S3 的大部分对象,其中 99.99% 的对象会在 15 分钟内完成复制。要复制现有对象,您可以通过 S3 批量复制使用现有对象来回填新创建的存储桶,重试原先无法复制的对象,在账户之间迁移数据,或者向数据湖添加新的存储桶。有关 S3 复制的更多信息,请访问 Amazon S3 用户指南中的复制对象部分。 在本教程结束时,您将能够使用 Amazon S3 复制在 AWS 区域内和区域之间复制数据。
您将学到的内容
在本教程中,您将:
- 创建一个 S3 存储桶
- 在您的 S3 存储桶上创建一个 S3 复制规则
- 选择目标 S3 存储桶
- 选择或创建用于复制的 IAM 角色
- 指定加密类型(可选)
- 选择目标 S3 存储类
- 启用其他复制选项(可选)
先决条件
您需要一个 AWS 账户才能完成本教程。访问此支持页面,了解有关如何创建和激活新 AWS 账户的详细信息。
AWS 使用经验
新手
完成时间
20 分钟
所需费用
低于 1 美元(Amazon S3 定价页面)
需要
使用的服务
上次更新日期
2022 年 10 月 17 日
实施
步骤 1:创建 Amazon S3 存储桶
1.2 — 创建 S3 存储桶
- 从左侧导航窗格的 Amazon S3 菜单中选择 Buckets(存储桶),然后选择 Create bucket(创建存储桶)按钮。
1.3
- 为您的存储桶输入一个全局唯一的描述性名称。选择您希望在其中创建存储桶的 AWS 区域。在本示例中,选择了 EU (Frankfurt) eu-central-1 区域。S3 复制需要为源和目标 S3 存储桶启用存储桶版本控制。有关版本控制的更多信息,请参阅在 S3 存储桶中使用版本控制。
- 您可以将其余选项保留为默认值。导航到页面底部,然后选择 Create bucket(创建存储桶)。
1.4
- 重复上述步骤,创建另一个 S3 存储桶,用作复制对象的目标存储桶。确保也为目标 S3 存储桶启用存储桶版本控制。
步骤 2:在 S3 存储桶上创建 S3 复制
2.1 — 选择源 S3 存储桶
- 从 S3 存储桶列表中,选择要配置为复制源的 S3 存储桶。
2.2
选择源 S3 存储桶后,控制台会将您带到 S3 存储桶登录页面,如以下屏幕截图所示。在这里,您可以查看所选 S3 存储桶的 Objects(对象)、Properties(属性)、Permissions(权限)、Metrics(指标)、Management(管理) 和 Access Points(访问点)。
2.3 — 为选定的 S3 存储桶创建 S3 复制规则
- 选择复制源存储桶的 Management(管理)选项卡。在 Management(管理)下方,您将看到 Replication rules(复制规则)。选择 Create replication rule(创建复制规则)。
步骤 3:配置复制规则
3.1 – 启用复制规则
- 提供 Replication rule name(复制规则名称),然后在 Status(状态)部分下选择 Enabled(已启用)来启用复制规则。如果禁用了复制规则,它将无法运行。
优先级表示每当两个或多个复制规则发生冲突时,哪个规则具有优先权。您可以选择在复制配置页面上编辑每条复制规则的优先级。Amazon S3 尝试根据所有复制规则复制对象。但是,如果有两个或更多规则具有相同的目标存储桶,则会根据优先级最高的规则复制对象。优先级为 1 的规则在优先级为 2 的规则之前执行。数字越小,优先级越高。例如,假设您有一条复制规则用于复制所有带有 foo1 标签的对象,还有另一条复制规则用于复制所有带有 foo2 标签的对象。如果您有一个标有 foo1 和 foo2 标签的对象,则只会使用优先级较高的复制规则复制该对象。如果您只有一条进入一个目标存储桶的规则,则不考虑优先级。
3.2 — 选择要复制的内容
- 通过定义筛选器类型(前缀或标签)来缩小复制范围,或者选择复制整个存储桶。例如,如果您只想复制前缀 “Finance” 中的对象,请指定该范围。有关筛选复制对象的更多信息,请访问 S3 用户指南中有关指定筛选器的文档。
3.3 — 选择目标 S3 存储桶
- 通过选择 Browse S3(浏览 S3)按钮来选择目标存储桶。您可以复制到相同或不同 AWS 区域、相同或不同 AWS 账户中的目标存储桶。请注意,您需要两个不同的 S3 存储桶来配置复制,并且两个存储桶(源和目标)都必须启用 S3 版本控制。S3 控制台不提供在复制设置过程中创建新 S3 存储桶的方法。在此示例中,我们选择 “aws-s3-replication-tutorial-destination-bucket”作为目标存储桶。
3.4 - IAM 注意事项
- 从同一个源存储桶创建新的复制规则时,请确保与此配置关联的 IAM 角色有足够的权限在新目标存储桶中写入新对象。您可以选择创建新的 IAM 角色或选择具有正确权限集的现有 IAM 角色。如需更多信息,请参阅有关设置 S3 复制权限的文档。
3.5 - 加密选项(如果您的对象未加密,请跳过此步骤)
- 如果您的对象是使用 Amazon S3 托管加密密钥 (SSE-S3) 或 AWS Key Management Service (AWS KMS) 加密的,则需要在设置复制时指定加密选项。S3 复制支持 SSE-S3(默认加密)和 AWS KMS 服务器端加密。如果您选择 AWS KMS 加密,则需要提供 AWS KMS 密钥以在源中解密并在目标中重新加密。为了节省 AWS KMS 成本,您还可以选择启用 Amazon S3 存储桶密钥。
3.6 - 为您的目标选择 S3 存储类
- 接下来,您可以选择在目标存储桶为复制的对象选择不同的 S3 存储类。考虑根据您的工作负载选择成本较低的存储类。例如,如果复制的对象不经常访问但需要在毫秒内检索,则可以选择 S3 Glacier Instant Retrieval存储类;选择 S3 Glacier Deep Archive 用于存档很少需要访问的数据;选择 S3 Intelligent-Tiering 用于优化访问模式不可预测或不断变化的数据的存储成本。如需更多信息,请参阅有关使用 Amazon S3 存储类的文档。
3.7 — 其他复制选项
- 选择其他复制选项,例如启用 S3 Replication Time Control (S3 RTC)、复制指标和通知、删除标记复制和副本修改同步。S3 RTC 可帮助您满足合规性和业务要求,因为它提供 15 分钟内复制 99.99% 的对象的 SLA。RTC 可以与 S3 Cross-Region Replication (S3 CRR) 和 S3 Same-Region Replication (S3 SRR) 一起启用,并默认启用复制指标和通知。对于非 RTC 规则,您可以选择复制指标和通知,它们提供了详细的指标用于跟踪复制规则的待处理字节、待处理操作和复制延迟的每分钟进度。选择删除标记复制意味着源存储桶上的删除内容将复制到目标存储桶。如果您想使源存储桶和目标存储桶保持同步,则应启用此功能,但如果目标是防止意外或恶意删除,则不应启用此功能。要在两个 S3 存储桶之间建立双向复制,请创建双向复制规则(A 到 B,B 到 A),并为源和目标 S3 存储桶中的两个复制规则启用副本修改同步。这将帮助您在副本和源对象之间保持标签、ACL 和对象锁定设置等对象元数据的同步。
- 查看复制配置,然后选择 Save(保存)。
步骤 4:在同一个源 S3 存储桶上创建另一个 S3 复制规则到另一个目标 S3 存储桶
- 重复上述步骤,创建从同一个源 S3 存储桶到另一个目标 S3 存储桶的另一个 S3 复制规则。提供 Replication rule name(复制规则名称),然后在 Status(状态)部分下选择 Enabled(已启用)来启用复制规则。通过选择复制规则的范围来选择要复制的内容。
- 通过选择 Browse S3(浏览 S3)按钮来选择目标存储桶。在此示例中,我们选择 “ack-test-bucket-us-east-1” 作为目标存储桶。
- 选择 Destination S3 storage class(目标 S3 存储类)。在此示例中,我们选择在目标存储桶中复制到 S3 Standard(S3 标准)存储类。
- 为复制规则选择其他复制选项。在此示例中,我们选择启用 S3 复制时间控制 (RTC)。
步骤 5:查看复制配置
保存复制规则后,您将返回 S3 复制登录页面,如以下屏幕截图所示。在这里,您可以查看包含所有不同复制规则的复制配置、规则优先级和其他选项,例如加密和 RTC。
接下来,将新对象上传到复制源存储桶,以测试新添加的复制配置。确认您看到该对象已复制到新的目标存储桶。复制指标可能需要几分钟才能显示在 S3 控制台中。
步骤 6:监控复制进度
6.1
现在,您已经为该存储桶配置了复制,您可以跟踪每个目标的指标和通知。打开源存储桶的 Metrics(指标)选项卡。
6.2
向下导航以查看 Replication metrics(复制指标),然后选择一个或多个要监控的复制规则。选择 Display charts(显示图表)可查看所有复制规则的待复制操作、待复制字节数和复制延迟。
此外,您可以使用在 CloudWatch 中查看链接在 Amazon CloudWatch 上查看复制指标。在这里,您可以在一个位置全面查看每个复制规则、源存储桶和目标存储桶的复制指标。此外,您可以收集可行的见解并设置警报以监控指标。有关更多信息,请参阅使用 Amazon CloudWatch 警报。
步骤 7:监控单个对象的复制状态
您可以出于业务、合规性和法规需求,使用 Amazon S3 Inventory 来审核和报告对象的复制状态。复制状态可以帮助您确定正在复制的对象的当前状态。源对象的复制状态将返回待处理、已完成或失败。 副本的复制状态将返回副本。 有关复制状态的更多详细信息,请参阅获取复制状态信息。如需配置 Amazon S3 Inventory 报告的更多信息,请参阅有关使用 Amazon S3 Inventory 和 Amazon Athena 大规模管理和分析数据的文档。
步骤 8:清理资源
8.1 — 删除测试对象
- 如果您已注销 AWS 管理控制台会话,请重新登录。导航至 S3 控制台并选择 Buckets(存储桶)菜单选项。首先,您需要从测试存储桶中删除测试对象。选择您在本教程中使用的存储桶的名称。
- 选中测试对象名称左侧的复选框,然后选择 Delete(删除)按钮。
- 在删除对象页面上,确认您已选中要删除的正确对象,并在 Permanently delete objects(永久删除对象)确认框中输入 delete(删除)。然后,选择 Delete object(删除对象)按钮以继续。
- 接下来,您将看到一条横幅,指明删除是否成功。
8.2 – 删除测试存储桶
- 最后,您需要删除已创建的测试存储桶。回到您的账户中的存储桶列表。选择为本教程创建的源存储桶左侧的单选按钮,然后选择 Delete(删除)按钮。
- 查看警告消息。如果要继续删除此存储桶,请在 Delete bucket(删除存储桶)确认框中输入存储桶的名称,然后选择 Delete bucket(删除存储桶)。
- 重复前面的步骤,删除在本教程中创建的目标存储桶。回到您的账户中的存储桶列表。选择为本教程创建的源存储桶左侧的单选按钮,然后选择 Delete(删除)按钮。
- 查看警告消息。如果要继续删除此存储桶,请在 Delete bucket(删除存储桶)确认框中输入存储桶的名称,然后选择 Delete bucket(删除存储桶)。
总结
恭喜! 您已经学习了如何使用 S3 复制在一个或多个 AWS 区域将对象从源复制到目标 S3 存储桶,以满足合规性要求、最大限度地减少延迟并提高运营效率。
S3 复制是一项完全托管、低成本、基于策略的存储管理功能,几乎不需要手动干预。我们建议您为每个复制规则启用指标和通知,在源存储桶上打开 Amazon S3 事件通知,并启用相应的 Amazon CloudWatch 指标和警报。启用后,您将能够跟踪到一个或多个 S3 存储桶的 S3 复制进度。