通过 Google 管理的专用网络进行传输

将数据从 Amazon S3 转移到 Cloud Storage 时,数据通常会通过公共互联网对等互连链路传输,AWS 会收取标准互联网数据出站流量费用。Storage Transfer Service 提供 Google 管理的专用网络选项,用于从 Amazon S3 转移数据,让您的数据通过 Google 自动预配的安全专用路由传输。

使用 Google 管理的专用网络可降低 AWS 网际网路出站流量费用,并省去配置和维护客户管理的物理互连的麻烦,从而简化网络安全。

主要优势

Google 管理的专用网络选项可为 Amazon S3 转移作业带来以下运营和财务优势:

  • 降低互联网出站流量费用:通过 Google 管理的专用网络从 Amazon S3 传输数据可避免支付标准的 AWS 互联网出站流量费。您无需支付 AWS S3 互联网出站流量费用,而是按可预测的每 GiB 数据处理费率向 Google Cloud 付费。如需了解详情,请参阅价格。标准 AWS API 请求费用(例如 Amazon S3 LISTGETHEAD 操作)仍会根据 AWS 价格表收取。

  • 避免暴露于公共互联网:数据直接通过 AWS 与 Google Cloud 之间由 Google 管理的专用互连连接传输。由于数据包永远不会遍历公共互联网路由表,因此您可消除公开拦截的风险,同时简化防火墙和零信任合规性。

  • 无需维护任何基础设施:与客户管理的专用网络不同,您无需为实体互连(例如 Cloud Interconnect 或 AWS Direct Connect)、VPN 网关或自定义 DNS 路由预配、配置或支付定期端口费用。Google 会全面管理端到端的专用网络堆栈。

  • 即时部署,无需等待:设置专用互联电路可能需要数周时间。借助 Google 管理的专用网络,您可以立即开始通过专用路由进行迁移,而无需安装或管理任何迁移代理。

带宽和性能注意事项

所有项目中的所有 Storage Transfer Service 作业(使用 Google 管理的专用网络)共享一个通用网络容量池。在全球利用率达到峰值的时段,传输速度可能会受到限制或延迟时间可能会增加。

主要由大型对象组成的工作负载比主要由小型对象组成的工作负载更容易受到高池利用率的影响。如果您的工作负载需要专用带宽,而没有共享池争用,请考虑配置客户管理的专用网络

支持的 AWS 区域

Google 管理的专用网络选项适用于从以下 Amazon S3 区域进行的无代理转移:

ap-east-1
ap-northeast-1
ap-northeast-2
ap-northeast-3
ap-south-1
ap-south-2
ap-southeast-1
ca-central-1
ca-west-1
eu-central-1
eu-central-2
eu-north-1
eu-south-1
eu-south-2
eu-west-1
eu-west-2
eu-west-3
us-east-1
us-east-2
us-west-1
us-west-2
 

准备工作

在创建转移作业之前,您必须配置 IAM 和源权限。

配置 IAM 权限

按照无代理转移权限中的说明授予所需的 Google Cloud 权限。

配置对 S3 存储桶的访问权限

按照“配置对来源的访问权限:Amazon S3”中的说明配置对 Amazon S3 中数据的访问权限。

创建 Google 管理的专用网络传输

您可以在使用 Google Cloud 控制台或 REST API 创建新的迁移作业时,或者在更新现有的 Amazon S3 迁移规范时,启用 Google 管理的专用网络选项。

控制台

在创建转移作业的选择设置步骤中,通过复选框启用 Google 管理的专用网络选项。

如需使用 Google 管理的专用网络创建新作业,请执行以下操作:

  1. 前往 Google Cloud 控制台中的 Storage Transfer Service 页面。

    前往 Storage Transfer Service

  2. 点击创建转移作业。 系统随即会显示创建转移作业页面。

  3. 来源类型下,选择 Amazon S3

  4. 目标类型中,选择 Google Cloud Storage

  5. 选择时间安排模式批量转移是一次性或按计划执行的。事件驱动型转移会持续监控来源,并在添加或修改数据时转移数据。

    如需配置事件驱动型转移,请按照事件驱动型转移中的说明操作。

  6. 点击下一步

  7. 存储桶或文件夹名称字段中,输入数据源存储桶名称。

    存储桶名称是其在 AWS 管理控制台中显示的名称。

  8. 选择 Amazon Web Services (AWS) 身份验证方法。如需了解详情,请参阅配置对来源的访问权限:Amazon S3

    • Secret 资源:选择此选项可使用保存在 Secret Manager 中的 Amazon 凭据。从列表中选择一个 Secret,或以 projects/PROJECT_NUMBER/secrets/SECRET_NAME 格式手动输入一个 Secret。

    • 访问密钥:在访问密钥 ID 字段中输入访问密钥,在私有访问密钥字段中输入与访问密钥关联的 Secret。

    • 适用于身份联合的 AWS IAM 角色:在 AWS IAM 角色 ARN 字段中输入您的 ARN,语法如下:

      • 标准 AWS 区域:

        arn:aws:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME
      • AWS GovCloud 区域:

        arn:aws-us-gov:iam::AWS_ACCOUNT:role/AWS_ROLE_NAME

      替换以下内容:

      • AWS_ACCOUNT:不含连字符的 AWS 账号 ID。
      • AWS_ROLE_NAME:AWS 角色名称。如果贵组织使用路径来整理角色,请在角色名称中添加路径。例如 developers/transfer_user

      如需详细了解 ARN,请参阅 IAM ARN

  9. 如果是事件驱动型转移,请输入 Amazon SQS 队列 ARN,格式如下:

    • 标准 AWS 区域:

      arn:aws:sqs:us-east-1:1234567890:event-queue
    • AWS GovCloud 区域:

      arn:aws-us-gov:sqs:us-gov-east-1:1234567890:event-queue
  10. (可选)选择按前缀过滤对象或按上次修改日期过滤对象。如果您指定了文件夹作为源位置,则前缀过滤条件是相对于该文件夹的。例如,如果您的来源是 my-test-bucket/path/,那么包含过滤条件 file 会包含所有以 my-test-bucket/path/file 开头的文件。

  11. 点击下一步

  12. 存储桶或文件夹字段中,输入目标存储桶以及(可选)文件夹名称,或点击浏览从当前项目的现有存储桶列表中选择一个存储桶。 如需创建新存储桶,请点击 存储桶图标 创建新存储桶

  13. 点击下一步

  14. 选择时间安排选项:

    注意:Storage Transfer Service 以本地时区时间显示转移作业时间表,但会以世界协调时间 (UTC) 存储作业时间。如果您所在的区域使用夏令时 (DST),则夏令时开始或结束时您的转移作业时间表可能会发生变化。

    1. 运行一次下拉列表中,选择以下选项之一:

      • 运行一次:从您选择的时间开始运行一次转移作业。
      • 每天运行:每天从您选择的时间开始,每天运行转移作业。

        您可以输入可选的结束日期,或者将结束日期留空以持续运行转移作业。

      • 每周运行:从您选择的时间开始,每周运行一次转移作业。
      • 按自定义频率运行:按您选择的频率运行转移作业。您可以选择按照小时的固定间隔来重复运行转移作业。

        您可以输入可选的结束日期,或者将结束日期留空以持续运行转移作业。

      • 按需运行:创建此转移作业时不会触发运行。您需要手动启动作业
    2. 立即开始下拉列表中,选择以下选项之一:

      • 立即开始:点击创建后开始转移作业。
      • 开始日期:在您选择的日期和时间开始转移作业。点击日历,以显示一个日历来选择开始日期。
  15. 点击下一步

  16. 选择转移作业的设置。

    1. 说明字段中,输入转移作业的说明。最佳做法是输入有意义且唯一的说明,以便区分作业。

    2. (可选)提供清单以指定要转移的确切对象。

    3. 元数据选项下,选择所需的存储类别和创建时间行为。如需了解详情,请参阅元数据保留

    4. 何时覆盖下,选择以下选项之一:

      • 永不:如果源文件与目标文件同名,则不覆盖目标文件。系统会跳过源文件。
      • 如果不同:如果同名的源文件具有不同的 ETag 或校验和值,则覆盖目标文件。
      • 始终:当源文件同名时,即使源文件相同,也始终覆盖目标文件。
    5. 何时删除下,选择以下选项之一:

      • 永不:永不从源或目标中删除文件。
      • 在转移文件后从数据源删除文件:将文件转移到目标位置后,从数据源中删除文件。如果源文件未转移(例如,因为目标位置中已存在该文件),则不会删除源文件。

        重要提示:如果您没有本地备份,则此选项是不可逆转的操作。

      • 如果文件不在数据源中则从目标位置删除文件:如果目标 Cloud Storage 存储桶中的文件也不在数据源中,则从 Cloud Storage 存储桶中删除文件。

        此选项可确保目标 Cloud Storage 存储桶与您的数据源完全匹配。

    6. 选择网络路由选项

      • 选择使用托管式专用网络
    7. 日志记录选项下,如果您想生成对每个传输的文件执行的操作的详细记录,请选择在 Cloud Logging 中启用日志记录。需支付 Cloud Logging 费用。 如需了解详情,请参阅记录转移操作

    8. (可选)选择通过 Cloud Pub/Sub 通知获取传输操作状态更新,然后选择您的 Pub/Sub 主题,并选择哪些事件会触发通知。如需了解详情,请参阅 Pub/Sub 通知

    9. 选择服务账号下,选择要使用的身份:

      • Storage Transfer Service 服务代理:系统会自动向默认的 Google 代管式服务代理授予对源存储分区和目标存储分区的访问权限。
      • 用户管理的服务代理:使用您创建的自定义服务账号。在选择此选项之前,请确保您的服务账号有权访问源存储桶、目标存储桶和 Pub/Sub。请参阅使用用户代管式服务代理
  17. 点击创建以创建转移作业。

gcloud CLI

gcloud CLI 不支持通过 Google 管理的专用网络配置转移作业。使用 Google Cloud 控制台或 REST API 启用此选项。

客户端库

Storage Transfer Service 客户端库不支持配置通过 Google 管理的专用网络进行的转移。您可以使用 Google Cloud 控制台或 REST API 启用此选项。

REST API

如需使用 REST API 配置转移,请在调用 transferJobs.createtransferJobs.patch 时,将 JSON 请求载荷中的布尔值字段 transferSpec.awsS3DataSource.managedPrivateNetwork 设置为 true

HTTP 请求

POST https://storagetransfer.googleapis.com/v1/transferJobs

请求正文

{
  "description": "S3 to Cloud Storage over Google-managed private network",
  "status": "ENABLED",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "awsS3DataSource": {
      "bucketName": "AWS_SOURCE_NAME",
      "managedPrivateNetwork": true,
      "awsAccessKey": {
        "accessKeyId": "AWS_ACCESS_KEY_ID",
        "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
      }
    },
    "gcsDataSink": {
      "bucketName": "GCS_SINK_NAME"
    },
    "transferOptions": {
      "overwriteWhen": "DIFFERENT",
      "deleteObjectsFromSourceAfterTransfer": false
    }
  }
}

此示例使用 AWS 访问凭据进行身份验证。如需详细了解如何在 Secret Manager 中使用联合身份或凭据,请参阅配置对 Amazon S3 的访问权限

监控和验证专用网络路由

启动转移作业后,验证数据是否通过 Google 管理的专用网络出站:

  1. Cloud Logging:启用 transfer-logs (--log-actions=COPY,DELETE,FAILED) 后,检查迁移操作的结构化日志。COPY 操作日志中的连接元数据确认已通过专用网络路径成功复制。

  2. 结算验证:查看 AWS 和 Google Cloud 结算信息中心。在 AWS 账单上,您会看到转移的对象没有产生任何公共互联网数据传出 (DataTransfer-Out-Bytes) 费用。相反,每 GiB 数据处理费会显示在您的 Google Cloud 账单中的 Storage Transfer Service 下。

替代网络路由选项

如果 Google 管理的专用网络无法满足您的工作负载要求,Storage Transfer Service 还支持 Amazon S3 的其他几种网络路由选项:

  • 公共互联网路由:通过 Amazon S3 和 Google Cloud 之间的标准公共互联网对等互连链接进行数据转移。所有 API 命令、身份验证标头和对象数据流在传输过程中均使用 HTTPS 和传输层安全协议 (TLS 1.3) 进行端到端加密。适用标准的 AWS 互联网数据出站费率。如需了解详情,请参阅从 Amazon S3 转移数据

  • 客户管理的专用网络:数据通过您预先配置的混合连接基础设施(例如 Cloud Interconnect、Cloud VPN 或 AWS Direct Connect)以专用 IP 地址传输。此选项可让您完全掌控架构,并获得专用的可预测网络带宽。有关详情,请参阅通过客户管理的专用网络进行传输

  • Amazon CloudFront CDN 路由:通过位于 S3 存储桶前面的 Amazon CloudFront 分发检索数据。与直接从公共 S3 下载相比,这可以减少互联网出站费用,具体取决于您的 AWS CloudFront 价格层级和数据量。如需了解详情,请参阅通过 CloudFront 从 S3 转移