Esta página descreve como estabelecer ligação a aplicações de software como serviço (SaaS), como o Salesforce, e serviços na nuvem de terceiros, como o Amazon S3, a partir de uma instância privada do Cloud Data Fusion quando desenvolve um pipeline.
Ao longo deste guia, são usados os termos saída e controlo de saída:
A saída refere-se ao tráfego de rede que sai Google Cloud através da Internet pública. Normalmente, a saída ocorre quando cria um pipeline que lê ou escreve num serviço de SaaS, como o Salesforce, ou num serviço de nuvem pública, como o Amazon S3.
O controlo de saída define restrições para o tráfego de saída através de uma VM proxy, que permite que o tráfego de saída para um conjunto de domínios pré-configurados seja bem-sucedido e que todos os outros falhem. Permite um perímetro de segurança mais elevado para o tráfego de saída e pode impedir a saída indesejada de uma instância privada.
O diagrama de arquitetura do sistema seguinte mostra como uma instância privada do Cloud Data Fusion se liga à Internet pública quando desenvolve um pipeline:
Quando cria o pipeline neste cenário, o Cloud Data Fusion encaminha o tráfego de saída através do seu projeto de cliente na pré-visualização do Cloud Data Fusion ou no Wrangler. Este processo usa os seguintes recursos:
Uma rota de rede VPC personalizada: uma rota de rede VPC personalizada encaminha o tráfego através de uma rota personalizada importada para VMs de gateway, que exportam para uma VPC de projeto de inquilino através do intercâmbio da rede da VPC.
Uma VM de gateway: uma VM de gateway encaminha o tráfego de saída do projeto de inquilino do Cloud Data Fusion para uma nuvem SaaS ou de terceiros através da Internet pública. Google Cloud Esta VM é gerida no seu projeto de cliente. Pode configurá-lo num ambiente de alta disponibilidade (HA) através de um equilibrador de carga interno (ILB). Recomendamos que reutilize a VM para várias instâncias privadas do Cloud Data Fusion na mesma VPC.
Para obter informações sobre a configuração do controlo de saída nos seus ambientes de conceção e execução, consulte o artigo Controlar a saída numa instância privada.
Antes de começar
Pode estabelecer ligação a uma origem pública a partir de uma instância privada nas versões 6.4 ou posteriores do Cloud Data Fusion. Para usar uma dessas versões, pode criar uma nova instância privada do Cloud Data Fusion ou atualizar uma instância existente para a versão 6.4.0.
Quando criar uma ligação de peering de rede de VPC para a sua instância, selecione Exportar rotas.
Configure a conetividade à Internet
Os passos seguintes descrevem como aceder a um contentor do Amazon S3 a partir de uma instância privada do Cloud Data Fusion no Wrangler. Os mesmos passos aplicam-se ao acesso a qualquer origem de dados através da Internet pública quando cria um pipeline na pré-visualização ou no Wrangler.
Neste guia, é usada apenas uma VM, mas, para aplicações essenciais, recomendamos que crie VMs com balanceamento de carga. Para mais informações, consulte o artigo Configure a VM de alta disponibilidade.
Crie um gateway de NAT
Crie um gateway Cloud NAT na mesma região e rede VPC que a sua instância privada do Cloud Data Fusion.
Crie uma instância de VM de gateway e regras de firewall
Consola
Aceda à página Instâncias de VM.
Clique em Criar instância. Recomendamos que use uma VM sem um IP externo.
Use a mesma VPC que tem o intercâmbio de redes configurado com a instância privada do Cloud Data Fusion. Para mais informações sobre a interligação de redes VPC neste cenário, consulte a secção Antes de começar.
Ative o encaminhamento de IP para a instância na mesma rede que a instância do Cloud Data Fusion.
No campo Script de arranque, introduza o seguinte script:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-save
Para mais informações, consulte o artigo Executar scripts de arranque.
Para obter o intervalo de IPs atribuído à instância do Cloud Data Fusion, aceda à página Detalhes da instância do Cloud Data Fusion.
gcloud
Para criar a VM de gateway e as regras de firewall, execute o seguinte script na CLI do Google Cloud:
export CDF_PROJECT=CDF_PROJECT export GATEWAY_VM=GATEWAY_VM_NAME export ZONE=VM_ZONE export SUBNET=SUBNET export VPC_NETWORK=VPC_NETWORK export COMPUTE_ENGINE_SA=COMPUTE_ENGINE_SA gcloud beta compute --project=$CDF_PROJECT instances create $GATEWAY_VM --zone=$ZONE --machine-type=e2-medium --subnet=$SUBNET --network-tier=PREMIUM --metadata=startup-script=\#\!\ /bin/bash$'\n'echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward$'\n'iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf$'\n'iptables-save --can-ip-forward --no-address --maintenance-policy=MIGRATE --service-account=$COMPUTE_ENGINE_SA --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append --tags=http-server,https-server --image=debian-10-buster-v20210316 --image-project=debian-cloud --boot-disk-size=10GB --boot-disk-type=pd-balanced --boot-disk-device-name=$GATEWAY_VM --no-shielded-secure-boot --shielded-vtpm --shielded-integrity-monitoring --reservation-affinity=any gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-http --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:80 --source-ranges=CDF_IP_RANGE --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create egress-allow-https --direction=INGRESS --priority=1000 --network=$VPC_NETWORK --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE --target-tags=https-server
Substitua o seguinte:
- CDF_PROJECT: o identificador exclusivo personalizável do seu projeto
- GATEWAY_VM: o nome da VM que quer configurar
- ZONE: a zona da sua VM
- SUBNET: a sub-rede
- VPC_NETWORK: o nome da sua VM
- COMPUTE_ENGINE_SA: o nome da sua conta de serviço do Compute Engine
- CDF_IP_RANGE: o intervalo de IP atribuído à instância do Cloud Data Fusion
Usar uma VPC partilhada
Se usar uma VPC partilhada para ligar a sua instância privada do Cloud Data Fusion a origens na Internet pública, crie uma VM de gateway no projeto anfitrião onde o peering de rede VPC está configurado com o projeto de inquilino.
Crie um trajeto personalizado
Crie uma rota personalizada para estabelecer ligação à instância de VM de gateway que criou.
Consola
Para criar o seu trajeto na Google Cloud consola, consulte o artigo Adicionar um trajeto estático.
Quando configura o trajeto:
- Defina a Prioridade como superior ou igual a
1001
. Defina o destino para o intervalo de IP atribuído à instância do Cloud Data Fusion. - Use o mesmo projeto e VPC que a instância privada do Cloud Data Fusion.
- Certifique-se de que a configuração do peering de rede VPC permite a exportação de rotas, para que a VPC do projeto de inquilino do Cloud Data Fusion importe esta rota personalizada através do peering de rede VPC.
gcloud
Para criar a sua rota na CLI gcloud:
export ROUTE=ROUTE gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-instance=$GATEWAY_VM \ --next-hop-instance-zone=$ZONE
Substitua o seguinte:
- ROUTE: o nome do trajeto personalizado.
Valide a configuração
Depois de realizar os passos anteriores, verifique se consegue aceder aos serviços de contentores S3 (ou a outro serviço SaaS ou na nuvem pública) na pré-visualização e no Wrangler.
Configure um gateway de alta disponibilidade
Recomendado: para aplicações de missão crítica, recomendamos que crie VMs com balanceamento de carga.
Crie regras de firewall para verificações de funcionamento
Crie regras de firewall para permitir:
- Porta 80 (HTTP) e porta 443 (HTTPS) de todos os intervalos de origem.
Tráfego TCP, UDP e ICMP dos endereços IP do teste de funcionamento Por exemplo:
130.211.0.0/22,35.191.0.0/16
.
Consola
Crie regras de firewall para permitir portas de todos os intervalos de origem e regras de firewall para permitir tráfego TCP, UDP e ICMP de endereços IP de sondas de verificação de funcionamento, como 130.211.0.0/22,35.191.0.0/16
.
Consulte o artigo Criar verificações de funcionamento.
gcloud
Crie uma regra de firewall para verificações de funcionamento:
export CDF_PROJECT=PROJECT_ID export VPC_NETWORK=VPC_NETWORK gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-http \ --direction=INGRESS --priority=1000 \ --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:80 \ --source-ranges=CDF_IP_RANGE \ --target-tags=http-server gcloud compute --project=$CDF_PROJECT firewall-rules create vpc-allow-https \ --direction=INGRESS --priority=1000 --network=$VPC_NETWORK \ --action=ALLOW --rules=tcp:443 --source-ranges=CDF_IP_RANGE \ --target-tags=https-server gcloud compute --project=$CDF_PROJECT firewall-rules create allow-health-checks \ --network=$VPC_NETWORK \ --action=allow --direction=ingress \ --target-tags=allow-health-checks \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
Substitua o seguinte:
- PROJECT_ID: o identificador exclusivo personalizável do seu projeto.
- VPC_NETWORK: o nome da sua rede VPC.
- CDF_IP_RANGE: o intervalo de endereços IP atribuído ao Cloud Data Fusion.
Crie um modelo de instância de VM de gateway
Consola
Quando cria um modelo de instância na consola:
- Crie-o na mesma VPC que a instância do Cloud Data Fusion.
- Recomendado: use uma VM com um endereço IP privado.
- Ative as portas HTTP/HTTPS.
- Ative o encaminhamento de IP
No campo Script de arranque, introduza o seguinte script:
#! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -j MASQUERADE echo net.ipv4.ip_forward=1 > /etc/sysctl.d/11-gce-network-security.conf iptables-save
Para mais informações, consulte o artigo Executar scripts de arranque.
Para obter o intervalo de IPs atribuído à instância do Cloud Data Fusion, aceda à página Detalhes da instância do Cloud Data Fusion.
gcloud
Crie um modelo de instância:
export TEMPLATE_NAME=TEMPLATE_NAME export REGION=REGION export SUBNET=SUBNET export SERVICE_ACCOUNT=SERVICE_ACCOUNT gcloud beta compute --project=$CDF_PROJECT instance-templates create $TEMPLATE_NAME \ --machine-type=e2-medium \ --subnet=projects/$CDF_PROJECT/regions/$REGION/subnetworks/$SUBNET \ --network-tier=PREMIUM --metadata=startup-script=sudo\ bash\ -c\ \"echo\ 1\ \>\ /proc/sys/net/ipv4/ip_forward\"$'\n'sudo\ iptables\ -t\ nat\ -A\ POSTROUTING\ -s\ 0.0.0.0/0\ -j\ MASQUERADE$'\n'sudo\ bash\ -c\ \"echo\ net.ipv4.ip_forward=1\ \>\ /etc/sysctl.d/11-gce-network-security.conf\"$'\n'sudo\ iptables-save \ --can-ip-forward --no-address --maintenance-policy=MIGRATE \ --service-account=$SERVICE_ACCOUNT \ --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append \ --region=$REGION --tags=http-server,https-server,allow-health-checks \ --image=debian-10-buster-v20210316 \ --image-project=debian-cloud --boot-disk-size=10GB \ --boot-disk-type=pd-balanced \ --boot-disk-device-name=$TEMPLATE_NAME \ --no-shielded-secure-boot --no-shielded-vtpm \ --no-shielded-integrity-monitoring \ --reservation-affinity=any
Crie uma verificação de funcionamento
Nenhum serviço é executado nesta instância de VM de gateway, pelo que pode usar a porta 22
para a sua verificação de estado.
Consola
Consulte o artigo Criar verificações de funcionamento.
gcloud
Crie uma verificação de funcionamento:
export HEATH_CHECK=HEALTH_CHECK_NAME gcloud beta compute health-checks create tcp $HEATH_CHECK --project=$CDF_PROJECT \ --port=22 --proxy-header=NONE --no-enable-logging \ --check-interval=5 --timeout=5 \ --unhealthy-threshold=2 --healthy-threshold=2
Crie um grupo de instâncias
Usando a verificação de funcionamento criada no passo anterior, crie um grupo de instâncias:
Consola
Consulte o artigo Criar grupos de instâncias geridos.
gcloud
Crie um grupo de instâncias:
export INSTANCE_GROUP=INSTANCE_GROUP gcloud beta compute --project=$CDF_PROJECT instance-groups managed create $INSTANCE_GROUP \ --base-instance-name=$INSTANCE_GROUP \ --template=$TEMPLATE_NAME --size=1 --zone=$ZONE \ --health-check=test --initial-delay=300 gcloud beta compute --project "$CDF_PROJECT" instance-groups managed set-autoscaling "$INSTANCE_GROUP" \ --zone "$ZONE" --cool-down-period "60" \ --max-num-replicas "10" --min-num-replicas "1" \ --target-cpu-utilization "0.6" --mode "on"
Crie um balanceador de carga
Crie um balanceador de carga TCP (ILB) a partir do grupo de instâncias criado no passo anterior.
Adicione a rota personalizada ao equilibrador de carga
Adicione a rota personalizada ao equilibrador de carga interno (ILB) na mesma VPC que a instância do Cloud Data Fusion.
Consola
Aceda à página Rede de VPC.
No separador Rotas, clique em Criar rota.
gcloud
Adicione a rota personalizada ao balanceador de carga interno:
export ROUTE=ROUTE_NAME export ILB_FRONTEND=<ip_of_ilb_frontend> gcloud beta compute routes create $ROUTE --project=$CDF_PROJECT \ --network=$VPC_NETWORK --priority=1001 \ --destination-range=0.0.0.0/0 \ --next-hop-ilb=$ILB_FRONTEND \ --next-hop-ilb-region=$REGION
Resolução de problemas
Receber erros de limite de tempo excedido da ligação na pré-visualização ou no Wrangler
Ao configurar os controlos de saída, pode receber um erro Connection Timeout
.
Para corrigir o problema, verifique se as seguintes definições estão em vigor:
- A interligação de redes VPC entre o projeto de inquilino e o projeto de cliente está presente.
- O intercâmbio da rede da VPC tem as rotas de exportação ativadas.
- A rota personalizada para a VM de gateway ou o ILB não está em falta.
- As regras de firewall que permitem o tráfego
HTTP
eHTTPS
não estão em falta.
As verificações de funcionamento do grupo de instâncias não são bem-sucedidas
Verifique se existem regras de firewall
para permitir o tráfego TCP, UDP e ICMP do
intervalo de origem 130.211.0.0/22,35.191.0.0/16
.
O pipeline falha durante a execução no Dataproc
Para aceder à Internet pública no momento da execução, ative o Cloud NAT na mesma região e rede que o cluster do Dataproc.
O que se segue?
- Saiba como controlar a saída numa instância privada do Cloud Data Fusion apenas para um conjunto específico de domínios.
- Saiba mais sobre as redes no Cloud Data Fusion.