使用 Google Cloud Storage 配置 AWS DataSync 传输 - AWS DataSync

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

使用 Google Cloud Storage 配置 AWS DataSync 传输

借助 AWS DataSync,您可以在 Google Cloud Storage 与以下 AWS 存储服务之间传输数据:

  • Amazon S3

  • Amazon EFS

  • Amazon FSx for Windows File Server

  • 适用于 Lustre 的 Amazon FSx

  • Amazon FSx for OpenZFS

  • Amazon FSx for NetApp ONTAP

要开始传输设置,请为 Google Cloud Storage 创建一个位置。此位置可以用作传输源或传输目标位置。只有在 Google Cloud Storage 和 Amazon EFS 或 Amazon FSx 之间传输数据时,或者使用基本模式任务时,才需要使用 DataSync 代理。Google Cloud Storage 和 Amazon S3 之间的增强模式数据传输不需要代理。

注意

要在 Google Cloud Storage 与 AWS 之间建立私有云连接,请使用带代理的基本模式。

概览

DataSync 使用 Google Cloud Storage XML API 进行数据传输。此 API 提供了兼容 Amazon S3 的接口,用于通过 Google Cloud Storage 存储桶读取和写入数据。

使用基本模式进行传输时,可以在 Google Cloud Storage 或 Amazon VPC 中部署代理。

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

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

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

  4. DataSync 服务会将数据写入 S3 存储桶。

下图说明了该传输。

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

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

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

  4. DataSync 服务会将数据写入 S3 存储桶。

下图说明了该传输。

DataSync 传输示例展示了对象数据如何从 Google Cloud Storage 存储桶传输到 S3 存储桶。首先,将 DataSync 代理部署到 AWS 中的 VPC。然后,DataSync 代理会读取 Google Cloud Storage 存储桶。数据通过 VPC 端点安全地移动到 AWS,在此处,DataSync 将对象写入与 VPC 处于同一 AWS 区域 中的 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. 如果没有,请创建与 S3 储存桶处于同一 AWS 区域 中的 VPC

  2. 为 VPC 创建私有子网

  3. 为 DataSync 创建 VPC 服务端点

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

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

第 3 步:创建 DataSync 代理(可选)

只有在使用基本模式任务时才需要 DataSync 代理。如果使用增强模式在 Google Cloud Storage(GCS)和 Amazon S3 之间进行传输,则无需代理。如果想使用基本模式,则需要一个可以访问 GCS 存储桶的 DataSync 代理。

在此情况下,DataSync 代理将在 Google Cloud 环境中运行。

开始之前安装 Google Cloud CLI

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

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

  3. 对于虚拟机监控程序,选择 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. 为您的代理指定名称,然后选择 创建代理

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

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

开始之前设置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 Amazon 机器映像(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 管理控制台 中的 Amazon EC2 实例启动页面。

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

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

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

  9. 选择 启动实例

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

  11. 激活您的代理

第 4 步:为您的 Google Cloud Storage 存储桶创建 DataSync 源位置

要为您的 Google Cloud Storage 存储桶创建 DataSync 位置,您需要在步骤 1 中创建的 HMAC 密钥的访问 ID 和私有密钥。

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

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

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

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

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

  6. 对于 文件夹,请输入对象前缀。

    DataSync 仅复制带有此前缀的对象。

  7. 如果传输需要代理,请选择使用代理,然后选择在步骤 3 中创建的代理。

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

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

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

    • 对于私有密钥,可以直接输入 HMAC 密钥的私有密钥,也可以指定包含该密钥的 AWS Secrets Manager 密钥。有关更多信息,请参阅为存储位置提供凭证

  10. 选择创建位置

第 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. 数据传输配置下,展开 其他设置,然后清除 复制对象标签复选框。

      重要

      由于 Google Cloud Storage XML API 不支持读取或写入对象标签,因此如果尝试复制对象标签,DataSync 任务可能会失败。

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

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

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

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

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

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