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

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

使用 Google 云存储配置AWS DataSync传输

以下教程显示了AWS DataSync如何使用将对象从 Google Cloud Storage 存储桶迁移到 Amazon S3 存储桶。

概览

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

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

  2. 代理使用基于哈MAC 散列消息认证码(HMAC)密钥读取 Google Cloud Storage 散列消息认证码(HMAC)密钥。

  3. 您的 Google Cloud Storage 存储分区中的对象通过公共终端节点安全地通过 TLS 1.2 移入。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. 代理使用基于哈MAC 散列消息认证码(HMAC)密钥读取 Google Cloud Storage 散列消息认证码(HMAC)密钥。

  3. 通过使用私有 VPC 终端节点,您的 Google Cloud Storage 存储分区中的AWS Cloud对象通过 TLS 1.2 安全地移动到。

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

下图说明了该传输。

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

成本

与本次迁移相关的费用包括:

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

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

  • 使用以下方式传输数据 DataSync

  • 将数据传输出谷歌云存储

  • Amazon S3 中存储数据

先决条件

开始之前,请执行以下操作(如果尚未完成):

第 1 步:为Google Cloud Storage Bucket Bucket

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

创建 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 中创建 VPC。

  2. 为您的 VPC 创建私有子网

  3. 使用@@ 为创建 VPC 终端节点AWS PrivateLink。DataSync

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

    要进行必要的配置更改,您可以修改与 VPC 终端节点关联的安全组。有关安全组的更多信息,请参阅《Amazon VPC 用户指南》中的使用安全组控制到资源的流量

步骤 3:创建DataSync代理

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

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

开始之前安装谷歌云命令行界面

为谷歌云创建代理
  1. 通过 https://console.aws.amazon.com/datasync/ 打开AWS 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 CLI 命令,将代理.vmdk文件导入谷歌云中:

    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. 为刚刚导入的代理映像创建并启动虚拟机实例。

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

    • 对于机器类型,请选择以下选项之一:

      • e2-standard-8 — 适用于传输多达 2000 万个文件的DataSync任务。

      • e2-standard-16 — 适用于传输超过 2000 万个文件的DataSync任务。

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

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

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

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

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

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

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

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

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

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

    • 选择 “获取密钥”。

  10. 为您的代理命名,然后选择 “创建代理”。

您的代理已联机并准备好移动数据。

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

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

为您的 VPC 创建代理
  1. 打开 终端。确保将您的配置AWS CLI文件配置为使用与您的 S3 存储桶关联的账户。

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

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

    该值是您指定区域的DataSync Amazon Machinch Image(AMI)ID。例如,AMI ID 可能如下所示ami-1234567890abcdef0

  4. 复制以下 URL。同样,替换vpc-region为您的 VPCAWS 区域 所在的位置。然后,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. 对于 key p air,选择现有密钥对,或新建一个密钥对。

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

  9. 选择 Launch instance (启动实例)

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

  11. 激活您的代理

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

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

创建DataSync源位置
  1. 通过 https://console.aws.amazon.com/datasync/ 打开AWS DataSync主机。

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

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

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

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

  6. 存储分区名称中,输入您的 Google 云存储分区的名称。

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

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

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

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

  9. 选择 “创建地点”。

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

你需要一个DataSync位置,用于存放你希望数据存放到哪里。

创建DataSync目标位置
  1. 通过 https://console.aws.amazon.com/datasync/ 打开AWS DataSync主机。

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

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

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

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

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

创建和启动DataSync任务
  1. 通过 https://console.aws.amazon.com/datasync/ 打开AWS DataSync主机。

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

  3. 在 Conf igure L ogs 页面上,执行以下操作:

    1. 选择 “选择现有地点”。

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

  4. 在 Conf igure L ogs 页面上,执行以下操作:

    1. 选择 “选择现有地点”。

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

  5. 在 Conf igure L aunch 页面上,执行以下操作:

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

      重要

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

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

  6. 在 Reviu ch 页面上,检查您的设置,然后选择 Creviuch Ta unch 页面上。

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

    • 要在不修改的情况下运行任务,请选择 “以默认值启动”。

    • 要在运行任务之前对其进行修改,请选择 “使用替代选项开始”

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