使用 Google Cloud 跨云互连或合作伙伴互连建立的专用网络连接可为 AWS 或 Azure 与 Cloud Storage 之间的数据传输带来显著优势:
- 潜在的费用优化:有望节省出站流量费用。这对于已建立互联的客户或执行大规模或定期数据传输的客户来说非常有利,可带来可观的长期节省。
- 专用网络带宽:使用互连可提供稳定、高容量的吞吐量和更低的延迟,这对于大规模、时间敏感型迁移和实时数据同步至关重要。
- 满足合规性需求:非常适合法规要求必须将数据保留在公共互联网之外的工作负载。此功能可帮助您使用互联以私密方式传输数据,从而实现合规性、支持数据主权并简化审核。
概览
本文档将引导您完成以下步骤:
- 订购和配置跨云互连
- 在 S3 或 Azure 中创建端点
- 设置具有混合连接的区域内部代理网络负载均衡器
- 向 Service Directory 注册负载均衡器
- 创建传输作业
- 确认流量正在使用互连
所需权限
您需要拥有特定权限才能完成以下各部分。 这些权限列在该组步骤的文档中。
互连选项
Storage Transfer Service 可以通过跨云互联 (CCI) 或合作伙伴互联从 AWS 和 Azure 转移数据。
以下步骤专门针对 CCI,但也适用于为合作伙伴互连配置网络。
订购和配置跨云互连
跨云互连是 Google Cloud 与其他云服务提供商之间的专用物理连接。
如果您已建立 CCI 连接,请跳至下一部分。
AWS
按照说明连接到 Amazon Web Services,订购并配置新的跨云互连。您需要拥有适当的权限才能在 Google Cloud 和 AWS 中配置网络。
观看视频,了解如何订购和配置 AWS 与 Google Cloud 之间的 CCI。
Azure
按照连接到 Microsoft Azure 的说明订购和配置新的跨云互连。您需要拥有适当的权限才能在 Google Cloud 和 Azure 中配置网络。
观看视频,了解如何在 Azure 和 Google Cloud 之间订购和配置 CCI。
如果您的 Cloud Storage 存储桶是单区域存储桶,您应在与存储桶相同的区域中配置 CCI,以减少网络延迟。
在 S3 或 Azure 中创建端点
在您的 S3 或 Azure 账号中创建端点。
AWS
在您的 Amazon Web Services 账号中,创建一个连接到 S3 的 VPC 端点。
按照以下 AWS 说明:使用接口 VPC 端点访问 AWS 服务创建端点。
Azure
按照以下步骤在 Azure 中为存储账号配置专用端点。
Storage Transfer Service 需要 *.blob.core.microsoft.net 端点。不支持 *.dfs.core.microsoft.net 端点。
创建后,记下端点的 IP 地址。在下一部分中创建负载均衡器时,您需要指定 IP 地址。
设置具有混合连接的区域内部代理网络负载均衡器
在 Google Cloud 中,设置具有混合连接的区域级内部代理网络负载平衡器。这会提供一个内部 IP 地址,该地址仅限于与负载均衡器在同一 VPC 网络中运行的客户端,并将流量路由到您在上一个部分中创建的 S3 VPC 端点或 Azure 存储专用端点。
您应在与 Cloud Interconnect 对接的 VLAN 连接所在的同一项目和 VPC 网络中创建负载均衡器。虽然互连本身可以位于同一组织内的不同项目中,但连接必须与负载均衡器位于同一 VPC 和区域中。
当您到达标记为将端点添加到混合连接 NEG 的步骤时,请指定 S3 VPC 端点或 Azure 存储专用端点 IP 地址。
记下 NLB 的前端 IP 地址和端口,因为您需要在下一部分中指定它们。
验证连接
在继续操作之前,我们建议您验证负载平衡器是否可以连接到远程存储端点。
为此,请执行以下操作:
- 在负载平衡器所在的同一 VPC 网络中创建一个 Compute Engine 虚拟机。
在虚拟机中,使用
curl测试与负载均衡器的 IP 地址和端口的连接:curl -v --resolve HOSTNAME:LOAD_BALANCER_IP:PORT https://HOSTNAME其中:
<var>HOSTNAME</var>是源存储提供商的主机名。- 对于 AWS S3,请使用存储桶所在区域的 S3 API 端点,例如
s3.us-west-1.amazonaws.com。 - 对于 Azure 存储,请使用存储账号的 Blob 端点,例如
mystorageaccount.blob.core.windows.net。
- 对于 AWS S3,请使用存储桶所在区域的 S3 API 端点,例如
<var>PORT</var>是您在负载均衡器的转发规则中配置的端口,通常为443。<var>LOAD_BALANCER_IP</var>是负载平衡器的前端 IP 地址。
来自远程端点的响应(即使是错误)也表示连接成功。连接超时表示网络设置存在配置错误,您应先解决此问题,然后再继续操作。
向 Service Directory 注册 NLB
在 Service Directory 中注册 NLB。Storage Transfer Service 使用 Service Directory 来解析负载均衡器的地址并直接连接到该负载均衡器。
按照说明注册内部负载均衡器。在指定转发规则时,请使用您创建的负载均衡器的 IP 地址和端口。
创建后,请记下服务的自链接。其格式为 projects/{project_id}/locations/{location}/namespaces/{namespace}/services/{service}。创建转移作业时,您需要用到此值。
创建传输作业
向服务代理授予以下权限。如需了解如何检索服务代理以及向服务代理授予权限,请参阅 Google 代管式服务代理权限。
- 在包含 Service Directory 资源的项目中,拥有项目级层的 Service Directory Viewer 角色 (roles/servicedirectory.viewer)。
- 在包含 VPC 的项目级层,授予 Private Service Connect Authorized Service (roles/servicedirectory.pscAuthorizedService) 角色。
- 目标存储桶上的 Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter)。
如需创建使用跨云互连的转移作业,您必须使用 Storage Transfer Service REST API。发送如下请求。
请注意 privateNetworkService 字段,您将在其中指定 Service Directory 服务的 selfLink。
AWS
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"awsS3DataSource": {
"privateNetworkService": "SERVICE_SELF_LINK",
"bucketName": "S3_BUCKET_NAME",
"awsAccessKey": {
"accessKeyId": "ACCESS_KEY_ID",
"secretAccessKey": "SECRET_ACCESS_KEY"
}
},
"gcsDataSink": {
"bucketName": "GCS_BUCKET_NAME"
}
}
}
Azure
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"status": "ENABLED",
"projectId": "PROJECT_ID",
"transferSpec": {
"azureBlobStorageDataSource": {
"privateNetworkService": "SERVICE_SELF_LINK",
"storageAccount": "AZURE_SOURCE_NAME",
"container": "AZURE_CONTAINER",
"azureCredentials": {
"sasToken": "AZURE_SAS_TOKEN",
}
},
"gcsDataSink": {
"bucketName": "GCS_BUCKET_NAME"
}
}
}
其中:
- SERVICE_SELF_LINK 是 Service Directory 服务的自链接。其格式为
projects/{project_id}/locations/{location}/namespaces/{namespace}/services/{service}。
如需了解其他字段,请参阅 transferSpec 参考文档。
确认流量正在使用互连
使用 Cloud Monitoring 验证从 AWS 或 Azure 流经互联的流量。
- 在 Google Cloud Console 中,前往混合连接 > Cloud Interconnect。
- 选择连接到 AWS/Azure 环境的 VLAN 连接。
- 在连接的详情页面上,选择监控标签页。查找指示数据转移的指标。具体而言:
- 入站字节数:此指标显示从 AWS 或 Azure 进入 Google Cloud VPC 的数据量。
- 运行状态:确保物理连接和 BGP 会话都处于正常运行状态。