创建使用 VPC 对等互连的专用实例

本页面介绍如何创建具有内部 IP 地址的 Cloud Data Fusion 实例。您可以在 VPC 网络或共享 VPC 网络中创建实例。

私有 Cloud Data Fusion 实例具有以下优势:

  • 与实例的连接是通过 Google Cloud 项目中的专用 VPC 网络建立的。通过网络的流量不会经过公共互联网。

  • 该实例可以连接到您的本地资源(例如关系型数据库),因为您的本地网络通过 Cloud VPNCloud Interconnect 连接到 Google Cloud 专用 VPC 网络。您可以通过专用网络安全地访问您的本地资源,例如数据库,而无需开放对 Google Cloud 的访问权限。

目标

  • 设置 VPC 网络或共享 VPC 网络。
  • 分配一个 IP 范围,该范围将用于在租户项目中部署 Cloud Data Fusion 实例。
  • 创建 Cloud Data Fusion 私有实例。
  • 在包含 Cloud Data Fusion 实例的 VPC 与包含关联租户项目的 VPC 之间设置 VPC 网络对等互连。
  • 对于共享 VPC 网络,请设置 Identity and Access Management (IAM) 权限。
  • 如果您的专用实例使用 Cloud Data Fusion 6.2.0 或更早版本,请创建防火墙规则。
  • 通过在 Dataproc 子网上启用专用 Google 访问通道,让不同的 Google Cloud 服务能够在内部相互通信。

准备工作

  • 如需了解 Cloud Data Fusion 的部署架构,请参阅网络

设置 VPC 网络

创建 VPC 网络共享 VPC 网络(如果您尚未创建)。

如需设置 VPC 网络,您必须分配 IP 地址范围。

分配 IP 范围

VPC 网络

如果您未使用共享 VPC 网络,则 Cloud Data Fusion 会在您创建实例时默认分配 IP 范围。

共享 VPC 网络

如需使用共享 VPC,您必须为 Cloud Data Fusion 实例分配 IP 范围。

如需为 Cloud Data Fusion 实例分配 IP 范围,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 VPC 网络页面。

    进入 VPC 网络页面

  2. 名称列中,点击要在其中创建私有 Cloud Data Fusion 实例的 VPC 网络。

    系统会打开 VPC 网络详情页面。

  3. 点击专用服务连接。如果出现提示,请点击启用 API 来启用 Service Networking API。

    配置 VPC 网络详情。

  4. 点击分配 IP 范围

    1. 为您的 IP 范围指定名称。

    2. 对于 IP 范围,点击自动

    3. 指定前缀大小 22

    4. 点击分配

      分配 IP 范围。

创建私有实例

在 VPC 网络或共享 VPC 网络中创建专用 Cloud Data Fusion 实例。

VPC 网络

如需在 VPC 网络中创建实例,请使用 Google Cloud 控制台或 c网址。

如果您使用 Google Cloud 控制台创建专用实例,则 Cloud Data Fusion 会默认分配 /22 IP 地址范围。如需选择其他 IP 范围,您必须使用 c网址 命令。

控制台

  1. 转到创建 Data Fusion 实例页面。

    转到“创建 Data Fusion 实例”

  2. 为实例输入实例名称和说明。

  3. 选择要在其中创建实例的区域

  4. 选择 Cloud Data Fusion 版本版本

  5. 指定用于在 Dataproc 中运行 Cloud Data Fusion 流水线的 Dataproc 服务帐号。系统已预先选择默认的 Compute Engine 账号。

  6. 展开高级选项菜单,然后点击启用专用 IP

  7. 网络字段中,选择要在其中创建实例的网络。

  8. 点击创建。最长可能需要 30 分钟才能完成实例创建过程。

cURL

为方便起见,您可以导出以下变量,也可以直接将这些值替换为以下命令:

export PROJECT=PROJECT_ID
export LOCATION=REGION
export DATA_FUSION_API_NAME=datafusion.googleapis.com

如需创建该实例,请调用其 create() 方法:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instance_id=INSTANCE_ID -X POST -d '{"description": "Private CDF instance created through REST.", "type": "ENTERPRISE", "privateInstance": true, "networkConfig": {"network": "NETWORK_NAME", "ipAllocation": "IP_RANGE"}}'

替换以下内容:

  • INSTANCE_ID:您的新实例应获取的 ID 字符串。
  • NETWORK_NAME:您要在其中创建专用实例的 VPC 网络的名称。
  • IP_RANGE您分配的 IP 范围。如需在 Google Cloud 控制台中查找 IP 范围,请转到 VPC 网络详情 > 专用服务连接 > 内部 IP 范围

共享 VPC 网络

如需在共享 VPC 网络中创建实例,请使用 c网址,而不是 Google Cloud 控制台。

cURL

为方便起见,您可以导出以下变量。 或者,您也可以在以下命令中直接替换这些值:

export PROJECT=PROJECT_ID
export LOCATION=REGION
export DATA_FUSION_API_NAME=datafusion.googleapis.com

如需创建实例,请调用其 create() 方法:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1/projects/$PROJECT/locations/$LOCATION/instances?instanceId=INSTANCE_ID -X POST -d '{"description": "Private CDF instance created through REST.", "type": "ENTERPRISE", "privateInstance": true, "networkConfig": {"network": "projects/SHARED_VPC_HOST_PROJECT_ID/global/networks/NETWORK_NAME", "ipAllocation": "IP_RANGE"}}'

替换以下内容:

  • INSTANCE_ID:您的新实例应获取的 ID 字符串。
  • SHARED_VPC_HOST_PROJECT_ID托管共享 VPC 网络的项目的 ID。
  • NETWORK_NAME:您要在其中创建专用实例的 VPC 网络的名称。
  • IP_RANGE您分配的 IP 范围。如需在 Google Cloud 控制台中查找 IP 范围,请转到 VPC 网络详情页面 > 专用服务连接 > 内部 IP 范围

设置 VPC 网络对等互连

您在设计环境中使用的 Cloud Data Fusion 服务(例如 Wrangler、Connection Manager 和 Schema Validation)可启动从租户项目 VPC 到源系统的网络连接。Cloud Data Fusion 使用 VPC 网络对等互连与包含实例的 VPC 或共享 VPC 建立网络连接。VPC 网络对等互连允许 Cloud Data Fusion 使用您自己的 VPC 及其控件通过内部 IP 地址访问网络中的资源。如需连接另一个网络中的资源,请参阅连接用例的步骤

以下部分介绍了如何在您的网络和 Cloud Data Fusion 租户项目网络之间创建对等互连配置

获取租户项目 ID

如需创建对等互连配置,您需要租户项目 ID。

  1. 转到 Cloud Data Fusion 实例页面。

    转到“实例”

  2. 实例名称列中,选择相应实例。

  3. 实例详情页面上,复制租户项目 ID,您在后续步骤中创建对等互连连接时需要用到该 ID。

创建对等连接

  1. 前往 VPC 网络对等互连页面。

    打开“VPC 网络对等互连”

  2. 依次点击创建连接 > 继续

  3. 在打开的创建对等互连连接页面上,执行以下操作:

    1. 输入对等互连连接的名称
    2. 对于您的 VPC 网络,请选择包含您的 Cloud Data Fusion 实例的网络。
    3. 对于对等互连的 VPC 网络,选择在其他项目中
    4. 对于项目 ID,输入您之前在本教程中找到的租户项目 ID
    5. VPC 网络名称部分,选择一个网络或输入 INSTANCE_REGION-INSTANCE_ID

      替换以下内容:

      • INSTANCE_REGION:您在其中创建了 Cloud Data Fusion 实例的区域。
      • INSTANCE_ID:您的 Cloud Data Fusion 实例的 ID。
    6. 选择对等互连连接的互联网协议版本,以便在 VPC 网络和对等互连 VPC 网络之间交换 IPv4 和 IPv6 路由。如需了解详情,请参阅 VPC 网络对等互连

    7. 选择导出自定义路由,以将自定义路由从您的 VPC 网络导出到租户 VPC 网络。

    8. 选择是否允许将具有公共 IPv4 的子网路由导入或导出到您的 VPC 网络。

    9. 点击创建

    VPC 网络对等互连创建后很快就会变为活跃状态。

设置 IAM 权限

VPC 网络

跳过此步骤,转到创建防火墙规则

共享 VPC 网络

如果您在共享 VPC 网络中创建 Cloud Data Fusion 实例,则必须向以下服务帐号授予 Compute Network User 角色。如需授予对所有子网的权限,请将该角色授予共享 VPC 宿主项目。

如需进一步控制访问权限,请改为将角色授予特定子网,并授予宿主项目的 Network Viewer 角色

  • Cloud Data Fusion 服务账号:service-PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com
  • Dataproc 服务账号:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com

PROJECT_NUMBER 是包含您的 Cloud Data Fusion 实例的 Google Cloud 项目的编号。

如需了解详情,请参阅向所需服务帐号授予访问权限

创建防火墙规则

在 VPC 网络上创建防火墙规则,以允许来自您在创建私有 Cloud Data Fusion 实例时所指定 IP 范围的入站 SSH 连接。

6.2.0 之前的 Cloud Data Fusion 版本必须执行此步骤。它允许 Cloud Data Fusion 与运行流水线的 Dataproc 集群之间进行通信。

您可以使用 Google Cloud 控制台使用 gcloud CLI 创建防火墙规则。

控制台

请参阅创建防火墙规则

gcloud

运行以下命令:

gcloud compute firewall-rules create FIREWALL_NAME-allow-ssh --allow=tcp:22 --source-ranges=IP_RANGE --network=NETWORK_NAME --project=PROJECT_ID

替换以下内容:

  • FIREWALL_NAME:要创建的防火墙规则的名称。
  • IP_RANGE您分配的 IP 范围
  • NETWORK_NAME:防火墙规则挂接到的网络的名称。这是您在其中创建了专用实例的 VPC 网络的名称。
  • PROJECT_ID托管 VPC 网络的项目的 ID。

连接用例的步骤

以下部分介绍了专用实例的连接相关用例。

启用专用 Google 访问通道

为了通过内部 IP 地址访问资源,Cloud Data Fusion 必须创建 Dataproc 集群,并在具有专用 Google 访问通道的子网中运行数据流水线。您必须为包含 Dataproc 集群的子网启用专用 Google 访问通道。

  • 如果启动 Dataproc 集群的区域中只有一个子网,则集群会在该子网中启动。
  • 如果一个区域中有多个子网,则必须将 Cloud Data Fusion 配置为选择具有专用 Google 访问通道的子网来启动 Dataproc 集群。

如需为子网启用专用 Google 访问通道,请参阅专用 Google 访问通道配置

可选:连接到其他来源

在 Cloud Data Fusion 中创建专用实例后,您可以连接到其他来源,例如以下使用场景:

可选:启用 DNS 对等互连

在以下情况下,请启用 DNS 对等互连

  • 当 Cloud Data Fusion 通过主机名(而不是 IP 地址)连接到系统时
  • 将目标系统部署在负载均衡器后面(例如在某些 SAP 部署中)时

后续步骤