📜  AWS |跨区域复制

📅  最后修改于: 2020-11-06 13:55:46             🧑  作者: Mango

跨区域复制

  • 跨区域复制是一项功能,可将数据从一个存储桶复制到可能位于不同区域的另一个存储桶。
  • 它提供跨存储桶对象的异步复制。假设X是源存储桶,Y是目标存储桶。如果X要将其对象复制到Y存储桶,则不会立即复制对象。

跨区域复制需要记住的几点

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

跨区域复制的用例

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

让我们通过示例了解跨区域复制的概念。

  • 登录到AWS管理控制台。
  • 现在,我们将文件上传到jtpbucket中。 jtpbucket是我们创建的s3存储桶。

  • 将文件添加到存储桶中。

  • 现在,我们在存储桶中添加了两个文件,即version.txt和download.jpg。

  • 现在,我们创建一个新的存储桶,其名称为jtp1bucket ,具有不同的区域。

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

  • 点击jtpbucket,然后移动到jtpbucket的管理。

  • 单击复制。单击后,将显示如下屏幕:

  • 单击入门按钮。
  • 启用两个存储桶的版本控制。
  • 您可以将整个存储桶或标签复制到目标存储桶。假设您要复制整个存储桶,然后单击“下一步”。

  • 输入您的目标存储桶,即jtp1bucket。

  • 创建一个新的IAM角色,角色名称为S3CRR,然后单击“下一步”。

  • 保存设置后,屏幕显示如下:

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

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

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

  • 安装后,打开cmd并键入aws configure

  • 现在,我们需要生成作为用户名的访问密钥ID和作为密码的秘密访问密钥。为此,我们首先需要创建一个IAM组。

  • 设置组名称,即javatpoint。

  • 检查AdministratorAccess策略以通过AWS CLI访问AWS控制台。
  • 现在,创建一个IAM用户。
  • 添加具有程序访问权限的用户名。

  • 将用户添加到一个组,即javatpoint。

  • 最后,创建用户。

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

  • 将访问密钥和秘密访问密钥复制到cmd。

  • 要查看S3存储桶,请运行命令aws s3 ls

  • 要将jtpbucket的对象复制到jtp1bucket,请运行命令aws s3 cp?recursive s3:// jtpbucket s3:// jtp1bucket

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

  • 点击“ jtp1bucket”

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

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

要记住的重要点:

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