使用谷歌云存储配置 AWS DataSync 传输 - AWS DataSync

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用谷歌云存储配置 AWS DataSync 传输

以下教程展示了 AWS DataSync 如何使用将对象从 Google 云存储存储分区迁移到 Amazon S3 存储桶。

概览

由于 DataSync 与 Google 云存储 XML API 集成,因此您无需编写代码即可将对象复制到 Amazon S3。其工作原理取决于您在何处部署便于传输的 DataSync 代理。

Agent in Google Cloud
  1. 您在自己的 Google 云环境中部署 DataSync 代理。

  2. 代理使用 HMAC 散列消息认证码(HMAC)密钥读取 Google Cloud Storage 存储桶。

  3. Google Cloud Storage 存储分区中的对象使用公共终端节点通过 TLS 1.3 安全地传输到中。 AWS Cloud

  4. 该 DataSync 服务将数据写入您的 S3 存储桶。

下图说明了该传输。

DataSync 传输示例显示了对象数据如何从 Google Cloud Storage 存储分区传输到 S3 存储桶。首先, DataSync 代理部署在您的 Google Cloud 环境中。然后, DataSync 代理读取 Google 云存储桶。数据通过公共终端节点安全地移动到 AWS,在那里将对象 DataSync 写入与您正在使用的 AWS 区域 位置相同的 S3 存储桶 DataSync。
Agent in your VPC
  1. 您在 AWS 环境中的虚拟私有云 (VPC) 中部署 DataSync 代理。

  2. 代理使用 HMAC 散列消息认证码(HMAC)密钥读取 Google Cloud Storage 存储桶。

  3. 您的 Google 云存储分区中的对象使用私有 VPC 终端节点通过 TLS 1.3 安全地传输到中。 AWS Cloud

  4. 该 DataSync 服务将数据写入您的 S3 存储桶。

下图说明了该传输。

DataSync 传输示例显示了对象数据如何从 Google Cloud Storage 存储分区传输到 S3 存储桶。首先, DataSync 代理部署在中的 VPC 中 AWS。然后, DataSync 代理读取 Google 云存储桶。数据通过 VPC 终端节点安全地移动到 AWS,在那里将对象 DataSync 写入与 VPC AWS 区域 相同的 S3 存储桶。

成本

与此迁移相关的费用包括:

  • 运行 Google Compute En gine 虚拟机 (VM) 实例(如果您在 Google Cloud 中部署 DataSync 代理)

  • 运行 A mazon EC2 实例(如果您在其中的 VPC 中部署 DataSync 代理 AWS)

  • 使用传输数据 DataSync,包括与 Google 云存储Amazon S3 相关的请求费用(如果 S3 是您的传输地点之一)

  • 将数据从 Google Cloud Storage 中传出

  • Amazon S3 中存储数据

先决条件

开始之前,请完成以下先决条件(如果尚未完成):

为 Google Cloud Storage 存储桶创建 HMAC 密钥

DataSync 使用与您的 Google 服务帐号关联的 HMAC 密钥对您要从中传输数据的存储桶进行身份验证和读取。(有关如何创建 HMAC 密钥的详细说明,请参阅 Google Cloud Storage 文档。)

创建 HMAC 密钥
  1. 为您的 Google 服务帐号创建 HMAC 密钥。

  2. 请确保您的 Google 服务帐号至少具有 Storage Object Viewer 权限。

  3. 将 HMAC 密钥访问 ID 和私有密钥存储在安全位置。

    稍后您将需要这些物品来配置您的 DataSync 来源位置。

第 2 步:配置网络

此迁移的网络要求取决于您要如何部署 DataSync 代理。

如果您想在 Google Cloud 中托管 DataSync 代理,请将您的网络配置为允许通过公共端点进行 DataSync 传输

如果要在中托管代理 AWS,则需要一个带有接口终端节点的 VPC。 DataSync 使用 VPC 终端节点来促进传输。

为 VPC 端点配置您的网络
  1. 如果您没有 VPC,请在与您的 S3 存储桶 AWS 区域 相同的 VPC 中创建

  2. 为 VPC 创建私有子网

  3. 为创建 VPC 服务终端节点 DataSync。

  4. 将您的网络配置为允许通过 VPC 服务终端节点进行 DataSync 传输

    为此,请修改与 VPC 服务端点关联的安全组

步骤 3:创建 DataSync代理

您需要一个可以访问和读取您的 Google 云存储分区的 DataSync 代理。

在这种情况下, DataSync 代理将在您的 Google Cloud 环境中运行。

开始之前安装 Google Cloud CLI

为 Google Cloud 创建代理
  1. 打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧的导航窗格中,选择 代理,然后选择 创建代理

  3. 对于 Hypervisor VMware ESXi,选择,然后选择 “下载映像” 以下载包含代理的.zip文件。

  4. 打开终端。运行以下命令来对映像解压缩:

    unzip AWS-DataSync-Agent-VMWare.zip
  5. 运行以下命令提取以 aws-datasync 开头的代理 .ova 文件中的内容:

    tar -xvf aws-datasync-2.0.1655755445.1-x86_64.xfs.gpt.ova
  6. 运行以下 Google Cloud CLI 命令,将代理的 .vmdk 文件导入到 Google Cloud 中:

    gcloud compute images import aws-datasync-2-test \ --source-file INCOMPLETE-aws-datasync-2.0.1655755445.1-x86_64.xfs.gpt-disk1.vmdk \ --os centos-7
    注意

    导入 .vmdk 文件最多可能需要两个小时。

  7. 为您刚刚导入的代理映像创建并启动 VM 实例。

    该实例需要为代理进行以下配置。(有关如何创建实例的详细说明,请参阅 Google 云计算引擎文档。)

    • 对于计算机类型,请选择下列选项之一:

      • e2-standard-8 — 适用于处理多达 2000 万个对象的 DataSync任务执行。

      • e2-standard-16 — 适用于处理超过 2000 万个对象的 DataSync任务执行。

    • 对于启动磁盘设置,请转到自定义映像部分。然后选择您刚刚导入的 DataSync 代理映像。

    • 对于服务帐号设置,请选择 Google 服务帐号(与您在第 1 步 中使用的帐号相同)。

    • 对于防火墙设置,请选择允许 HTTP(端口 80)通信的选项。

      要激活您的 DataSync 代理,必须在代理上打开端口 80。不要求该端口可供公开访问。激活后, DataSync 关闭端口。

  8. VM 实例运行后,记录其公有 IP 地址。

    您需要此 IP 地址来激活代理。

  9. 返回 DataSync 控制台。在下载代理映像的 创建代理屏幕上,执行以下操作以激活代理:

    • 对于端点类型,选择公共服务端点选项(例如,美国东部俄亥俄州的公共服务端点)。

    • 对于激活密钥,选择自动从代理处获取激活密钥

    • 对于代理地址,输入您刚创建的代理 VM 实例的公有 IP 地址。

    • 选择 获取密钥

  10. 为您的代理指定名称,然后选择 创建代理

代理处于在线状态,可以随时传输数据。

在这种情况下,代理在与您的关联的 VPC 中作为 Amazon EC2 实例运行 AWS 账户。

开始之前设置 AWS Command Line Interface (AWS CLI)

为 VPC 创建代理
  1. 打开终端。请务必将您的 AWS CLI 个人资料配置为使用与您的 S3 存储桶关联的账户。

  2. 复制以下 命令。将 vpc-region 替换为您的 VPC 所在的 AWS 区域 (例如,us-east-1)。

    aws ssm get-parameter --name /aws/service/datasync/ami --region vpc-region
  3. 运行命令。在输出中,记录 "Value" 属性。

    此值是您指定区域的 DataSync 亚马逊系统映像 (AMI) ID。例如,AMI ID 可能类似于 ami-1234567890abcdef0

  4. 复制以下 URL。再次将 vpc-region 替换为您的 VPC 所在的 AWS 区域 。接着,将 ami-id 替换为您在上一步中记录的 AMI ID。

    https://console.aws.amazon.com/ec2/v2/home?region=vpc-region#LaunchInstanceWizard:ami=ami-id
  5. 将该 URL 粘贴到浏览器中。

    屏幕中 AWS Management Console 显示了 Amazon EC2 实例启动页面。

  6. 对于实例类型,请为 DataSync 代理选择一个推荐的 Amazon EC2 实例

  7. 对于密钥对,选择现有密钥对或新建一个密钥对。

  8. 对于网络设置,选择要部署代理的 VPC 和子网。

  9. 选择 启动实例

  10. Amazon EC2 实例运行后,选择您的 VPC 终端节点

  11. 激活您的代理

第 4 步:为您的 Google 云存储分区创建 DataSync源位置

要为您的 Google Cloud Storage 存储分区设置 DataSync 位置,您需要在步骤 1 中创建的 HMAC 密钥的访问权限 ID 和密钥。

创建 DataSync 源位置
  1. 打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧导航窗格中,展开数据传输,然后选择 位置创建位置

  3. 对于 位置类型,选择 对象存储

  4. 对于代理,选择您在步骤 3 中创建的代理。

  5. 对于服务器,输入 storage.googleapis.com

  6. 对于存储桶名称,输入您的 Google Cloud Storage 存储桶的名称。

  7. 展开 其他设置。对于服务器协议,请选择 HTTPS。对于服务器端口,请选择 443

  8. 向下滚动到身份验证部分。确保选中 需要凭据复选框,然后执行以下操作:

    • 对于访问密钥,输入您的 HMAC 密钥访问 ID。

    • 对于私有密钥,输入您的 HMAC 密钥的私有密钥。

  9. 选择创建位置

步骤 5:为您的 S3 存储桶创建 DataSync 目标位置

你需要一个 DataSync 位置来存放你想要的数据存放位置。

创建 DataSync 目标位置
  1. 打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧导航窗格中,展开数据传输,然后选择 位置创建位置

  3. 为 S3 存储桶创建 DataSync 位置

    如果您在您的 VPC 中部署了 DataSync 代理,则本教程假定 S3 存储桶与您的 VPC 和 DataSync 代理位于同一 AWS 区域 位置。

步骤 6:创建并启动 DataSync 任务

配置好源位置和目标位置后,就可以开始将数据移入 AWS了。

创建并启动 DataSync 任务
  1. 打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧导航窗格中,展开数据传输,然后选择任务,然后选择创建任务

  3. 配置源位置页面上,执行以下操作:

    1. 选择 选择现有位置

    2. 选择您在第 4 步 中创建的源位置,然后选择 下一步

  4. 配置目标位置页面上,执行以下操作:

    1. 选择 选择现有位置

    2. 选择您在第 5 步 中创建的目标位置,然后选择 下一步

  5. 配置设置 页面上,执行以下操作:

    1. 数据传输配置下,展开 其他设置,然后清除 复制对象标签复选框。

      重要

      由于使用 Amazon S3 API DataSync 与 Google 云存储进行通信,因此如果您尝试复制对象标签,则存在一个限制,可能会导致 DataSync 任务失败。

    2. 配置所需的任何其他任务设置,然后选择 下一步

  6. 审核页面上,审核您的设置,然后选择 创建任务

  7. 在任务的详细信息页面上,选择开始,然后选择以下选项之一:

    • 如需运行任务而不进行修改,请选择从默认值开始

    • 如需修改任务再运行,请选择使用覆盖选项开始

任务完成后,您会在 S3 存储桶中看到 Google Cloud Storage 存储桶中的对象。