Halaman ini menjelaskan cara terhubung ke aplikasi software-as-a-service (SaaS) seperti Salesforce, dan layanan cloud pihak ketiga seperti Amazon S3, dari instance Cloud Data Fusion pribadi saat Anda mengembangkan pipeline.
Di seluruh panduan ini, istilah ekspor dan kontrol ekspor digunakan:
Traffic keluar mengacu pada traffic jaringan yang keluar dari Google Cloud melalui internet publik. Biasanya, egress terjadi saat Anda membuat pipeline yang membaca dari atau menulis ke layanan SaaS seperti Salesforce, atau layanan cloud publik seperti Amazon S3.
Kontrol traffic keluar menentukan pembatasan untuk traffic keluar menggunakan VM proxy, yang memungkinkan traffic keluar ke sekumpulan domain yang telah dikonfigurasi sebelumnya berhasil, dan semua yang lainnya gagal. Hal ini memungkinkan perimeter keamanan yang lebih tinggi untuk traffic keluar, dan dapat mencegah traffic keluar yang tidak diinginkan dari instance pribadi.
Diagram arsitektur sistem berikut menunjukkan cara instance Cloud Data Fusion pribadi terhubung dengan internet publik saat Anda mengembangkan pipeline:
Saat Anda mendesain pipeline dalam skenario ini, Cloud Data Fusion akan merutekan traffic keluar melalui project pelanggan di Pratinjau Cloud Data Fusion atau Wrangler. Proses ini menggunakan resource berikut:
Rute jaringan VPC kustom: Jaringan VPC kustom merutekan traffic melalui rute kustom yang diimpor ke VM gateway, yang diekspor ke VPC project tenant menggunakan peering VPC.
VM gateway: VM gateway merutekan traffic keluar dari Google Cloud dari project tenant Cloud Data Fusion ke SaaS atau cloud pihak ketiga melalui internet publik. Anda mengelola VM ini di project pelanggan. Anda dapat mengonfigurasinya di lingkungan Ketersediaan Tinggi (HA) menggunakan Load Balancer Internal (ILB). Sebaiknya gunakan kembali VM untuk beberapa instance Cloud Data Fusion pribadi dalam VPC yang sama.
Untuk mengetahui informasi tentang cara menyiapkan kontrol keluar di lingkungan desain dan eksekusi, lihat Mengontrol keluar di instance pribadi.
Sebelum memulai
Anda dapat terhubung ke sumber publik dari instance pribadi di Cloud Data Fusion versi 6.4 atau yang lebih baru. Untuk menggunakan salah satu versi tersebut, Anda dapat membuat instance Cloud Data Fusion pribadi baru atau mengupgrade instance yang ada ke 6.4.0.
Saat membuat koneksi peering jaringan VPC untuk instance, pilih Ekspor rute.
Menyiapkan konektivitas internet
Langkah-langkah berikut menjelaskan cara mengakses bucket Amazon S3 dari instance Cloud Data Fusion pribadi di Wrangler. Langkah yang sama berlaku untuk mengakses sumber data apa pun melalui internet publik saat Anda mendesain pipeline di Pratinjau atau Wrangler.
Hanya satu VM yang digunakan dalam panduan ini, tetapi untuk aplikasi yang sangat penting, sebaiknya buat VM load balanced. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan VM Ketersediaan Tinggi.
Membuat gateway NAT
Buat gateway Cloud NAT di region dan jaringan VPC yang sama dengan instance pribadi Cloud Data Fusion Anda.
Membuat instance VM gateway dan aturan firewall
Konsol
Buka halaman VM instances.
Klik Create instance. Sebaiknya gunakan VM tanpa IP eksternal.
Gunakan VPC yang sama dengan peering jaringan yang disiapkan dengan instance Cloud Data Fusion pribadi. Untuk mengetahui informasi selengkapnya tentang peering jaringan VPC dalam skenario ini, lihat Sebelum memulai.
Aktifkan penerusan IP untuk instance di jaringan yang sama dengan instance Cloud Data Fusion.
Di kolom Startup script, masukkan skrip berikut:
#! /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
Untuk mengetahui informasi selengkapnya, lihat Menjalankan skrip startup.
Untuk mendapatkan rentang IP yang dialokasikan untuk instance Cloud Data Fusion, buka halaman Detail instance Cloud Data Fusion.
gcloud
Untuk membuat VM gateway dan aturan firewall, jalankan skrip berikut di Google Cloud CLI:
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
Ganti kode berikut:
- CDF_PROJECT: ID unik yang dapat disesuaikan untuk project Anda
- GATEWAY_VM: nama VM yang ingin Anda konfigurasi
- ZONE: zona VM Anda
- SUBNET: subnet
- VPC_NETWORK: nama VM Anda
- COMPUTE_ENGINE_SA: nama akun layanan Compute Engine Anda
- CDF_IP_RANGE: rentang IP yang dialokasikan ke instance Cloud Data Fusion
Menggunakan VPC bersama
Jika Anda menggunakan VPC bersama untuk menghubungkan instance Cloud Data Fusion pribadi ke sumber di internet publik, buat VM gateway di project host tempat peering jaringan VPC disiapkan dengan project tenant.
Membuat rute kustom
Buat rute kustom untuk terhubung ke instance VM gateway yang Anda buat.
Konsol
Untuk membuat rute di Konsol Google Cloud, lihat Menambahkan rute statis.
Saat Anda mengonfigurasi rute:
- Tetapkan Priority ke lebih besar dari atau sama dengan
1001
. Tetapkan tujuan ke rentang IP yang dialokasikan ke instance Cloud Data Fusion. - Gunakan project dan VPC yang sama dengan instance Cloud Data Fusion pribadi.
- Pastikan konfigurasi peering jaringan VPC Anda memungkinkan rute ekspor, sehingga VPC project tenant Cloud Data Fusion mengimpor rute kustom ini melalui peering jaringan VPC.
gcloud
Untuk membuat rute di gcloud CLI:
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
Ganti kode berikut:
- ROUTE: nama rute kustom.
Verifikasi penyiapan Anda
Setelah melakukan langkah-langkah sebelumnya, pastikan Anda dapat mengakses layanan bucket S3 (atau layanan cloud publik atau SaaS lainnya) di Pratinjau dan Wrangler.
Menyiapkan Gateway yang selalu tersedia
Direkomendasikan: Untuk aplikasi yang sangat penting, sebaiknya buat VM yang di-load balanced.
Membuat aturan firewall untuk health check
Buat aturan firewall untuk mengizinkan:
- Port 80 (HTTP) dan port 443 (HTTPS) dari semua rentang sumber.
Traffic TCP, UDP, dan ICMP dari alamat IP prober health check. Contoh:
130.211.0.0/22,35.191.0.0/16
.
Konsol
Buat aturan Firewall untuk mengizinkan port dari semua rentang sumber dan aturan
firewall untuk mengizinkan traffic TCP, UDP, dan ICMP dari alamat IP penguji health check
seperti 130.211.0.0/22,35.191.0.0/16
.
Lihat Membuat health check.
gcloud
Buat aturan firewall untuk health check:
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
Ganti kode berikut:
- PROJECT_ID: ID unik yang dapat disesuaikan untuk project Anda.
- VPC_NETWORK: nama jaringan VPC Anda.
- CDF_IP_RANGE: rentang alamat IP yang dialokasikan ke Cloud Data Fusion.
Membuat template instance VM gateway
Konsol
Saat Anda membuat template instance di konsol:
- Buat di VPC yang sama dengan instance Cloud Data Fusion.
- Direkomendasikan: Gunakan VM dengan alamat IP pribadi.
- Aktifkan port HTTP/HTTPS.
- Mengaktifkan penerusan IP
Di kolom Startup script, masukkan skrip berikut:
#! /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
Untuk mengetahui informasi selengkapnya, lihat Menjalankan skrip startup.
Untuk mendapatkan rentang IP yang dialokasikan untuk instance Cloud Data Fusion, buka halaman Detail instance Cloud Data Fusion.
gcloud
Membuat template instance:
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
Membuat health check
Tidak ada layanan yang berjalan di instance VM gateway ini, sehingga Anda dapat menggunakan port 22
untuk
health check.
Konsol
Lihat Membuat health check.
gcloud
Membuat health check:
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
Membuat grup instance
Dengan menggunakan health check yang dibuat di langkah sebelumnya, buat grup instance:
Konsol
gcloud
Buat grup instance:
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"
Membuat load balancer
Buat load balancer TCP (ILB) dari grup instance yang dibuat pada langkah sebelumnya.
Menambahkan rute kustom ke load balancer
Tambahkan rute kustom ke Load Balancer Internal (ILB) di VPC yang sama dengan instance Cloud Data Fusion.
Konsol
Buka halaman VPC network.
Di tab Routes, klik Create Route.
gcloud
Tambahkan rute kustom ke load balancer internal:
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
Pemecahan masalah
Mendapatkan error Waktu tunggu koneksi di Pratinjau atau Wrangler
Saat menyiapkan kontrol keluar, Anda mungkin mendapatkan error Connection Timeout
.
Untuk memperbaiki masalah ini, pastikan setelan berikut sudah diterapkan:
- Peering jaringan VPC antara project tenant dan project pelanggan ada.
- Peering jaringan VPC telah mengaktifkan rute Ekspor.
- Rute kustom ke VM gateway atau ILB tidak hilang.
- Aturan firewall yang mengizinkan traffic
HTTP
danHTTPS
tidak hilang.
Health check grup instance tidak berhasil
Pastikan aturan firewall
untuk mengizinkan traffic TCP, UDP, dan ICMP dari
rentang sumber 130.211.0.0/22,35.191.0.0/16
ada.
Pipeline gagal saat dieksekusi di Dataproc
Untuk mengakses internet publik pada waktu eksekusi, aktifkan Cloud NAT di region dan jaringan yang sama dengan cluster Dataproc.
Langkah selanjutnya
- Pelajari cara mengontrol traffic keluar di instance Cloud Data Fusion pribadi hanya ke kumpulan domain tertentu.
- Pelajari Jaringan di Cloud Data Fusion lebih lanjut.