跨区域复制

17 Mar 2025 | 4 分钟阅读
  • 跨区域复制是一项功能,可以将数据从一个存储桶复制到另一个存储桶,而后者可能位于不同的区域中。
  • 它提供跨存储桶的对象异步复制。假设 X 是源存储桶,Y 是目标存储桶。如果 X 想要将其对象复制到 Y 存储桶,则不会立即复制这些对象。

跨区域复制需要记住的一些要点

  • 创建两个存储桶: 在 AWS 管理控制台中创建两个存储桶,其中一个存储桶是源存储桶,另一个是目标存储桶。
  • 启用版本控制: 只有在启用两个存储桶的版本控制后,才能实现跨区域复制。
  • Amazon S3 使用 SSL 加密跨 AWS 区域传输的数据: 当数据跨不同区域传输时,它也提供安全性。
  • 已经上传的对象不会被复制: 如果存储桶中已经存在任何类型的数据,则在执行跨区域复制时,不会复制该数据。

跨区域复制的用例

  • 合规性要求
    默认情况下,Amazon S3 将数据存储在不同的地理区域或可用区中,以确保数据的可用性。有时,可能存在合规性要求,您希望将数据存储在某些特定区域中。跨区域复制允许您在某些特定区域复制数据以满足要求。
  • 最大限度地减少延迟
    假设您的客户位于两个地理区域。为了最大限度地减少延迟,您需要在地理位置上更靠近用户的 AWS 区域中维护数据副本。
  • 在不同的所有权下维护对象副本: 无论谁拥有源存储桶,您都可以告诉 Amazon S3 将所有权更改为拥有目标存储桶的 AWS 账户用户。这被称为所有者覆盖选项。

让我们通过一个例子来理解跨区域复制的概念。

  • 登录 AWS 管理控制台。
  • 现在,我们将文件上传到 jtpbucket。 jtpbucket 是我们创建的 s3 存储桶。
Cross Region Replication
  • 将文件添加到存储桶中。
Cross Region Replication
  • 现在,我们在存储桶中添加两个文件,即 version.txt 和 download.jpg。
Cross Region Replication
  • 现在,我们创建一个新存储桶,其名称为 jtp1bucket,位于不同的区域中。
Cross Region Replication

现在,我们在 s3 中有两个存储桶,即 jtpbucket 和 jtp1bucket。

  • 单击 jtpbucket,然后转到 jtpbucket 的管理。
Cross Region Replication
  • 单击复制。单击后,屏幕显示如下
Cross Region Replication
  • 单击 开始使用 按钮。
  • 启用两个存储桶的版本控制。
  • 您可以将整个存储桶或标签复制到目标存储桶。假设您要复制整个存储桶,然后单击下一步。
Cross Region Replication
  • 输入您的目标存储桶,即 jtp1bucket。
Cross Region Replication
  • 创建一个新的 IAM 角色,角色名称为 S3CRR,然后单击下一步。
Cross Region Replication
  • 保存设置后,屏幕显示如下
Cross Region Replication

上面的屏幕显示跨区域复制已成功更新。我们还可以看到源存储桶和目标存储桶及其关联的权限。

  • 现在,我们将查看文件是否已从 jtpbucket 复制到 jtp1bucket。单击 jtp1bucket
Cross Region Replication

上面的屏幕显示存储桶是空的。因此,我们可以说对象不会自动从一个存储桶复制到另一个存储桶,我们只能通过 AWS CLI(命令行界面)进行复制。要使用 AWS CLI,您需要安装 CLI 工具。

  • 安装完成后,打开 cmd 并键入 aws configure
Cross Region Replication
  • 现在,我们需要生成访问密钥 ID(用户名)和秘密访问密钥(密码)。为了实现这一点,我们首先需要创建一个 IAM 组。
Cross Region Replication
  • 设置组名,即 javatpoint。
Cross Region Replication
  • 选中 AdministratorAccess 策略以通过 AWS CLI 访问 AWS 控制台。
  • 现在,创建一个 IAM 用户。
  • 使用编程访问添加用户名。
Cross Region Replication
  • 将用户添加到组,即 javatpoint。
Cross Region Replication
  • 最后,创建了用户。
Cross Region Replication

从上面的屏幕中,我们观察到已生成访问密钥和秘密访问密钥。

  • 将访问密钥和秘密访问密钥复制到 cmd。
Cross Region Replication
  • 要查看 S3 存储桶,请运行命令 aws s3 ls
Cross Region Replication
  • 要将 jtpbucket 的对象复制到 jtp1bucket,请运行命令 aws s3 cp?recursive s3://jtpbucket s3://jtp1bucket
Cross Region Replication

上面的屏幕显示 jtpbucket 的对象已复制到 jtp1bucket

  • 单击 "jtp1bucket"
Cross Region Replication

从上面的屏幕中,我们观察到原始存储桶中的所有文件都已复制到另一个存储桶,即 jtp1bucket。

注意:如果原始存储桶中进行任何进一步的更改,都将始终复制到其复制的存储桶。

要记住的要点

  • 必须在源存储桶和目标存储桶上都启用版本控制。
  • 两个存储桶的区域必须是唯一的。
  • 原始存储桶中的所有文件不会自动复制,可以通过 AWS CLI 复制。所有后续文件都会自动复制。
  • 文件中的文件无法复制到多个存储桶。
  • 删除标记不会被复制。
  • 删除版本或删除标记不会被复制。

下一个主题生命周期管理