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.
Dalam panduan ini, istilah traffic keluar dan kontrol traffic keluar digunakan:
Traffic keluar mengacu pada traffic jaringan yang keluar dari Google Cloud melalui internet publik. Biasanya, traffic keluar 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 pagar pembatas untuk traffic keluar menggunakan VM proxy, yang memungkinkan traffic keluar ke sekumpulan domain yang telah dikonfigurasi sebelumnya untuk berhasil, dan semua lainnya mengalami kegagalan. Mode 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 mengarahkan traffic keluar melalui project pelanggan Anda di Pratinjau Cloud Data Fusion atau Wrangler. Proses ini menggunakan sumber daya berikut:
Rute jaringan VPC kustom: Jaringan VPC kustom merutekan traffic melalui rute khusus yang diimpor ke VM gateway, yang diekspor ke VPC project tenant menggunakan peering VPC.
VM gateway: VM gateway mengarahkan 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 Anda menggunakan kembali VM untuk beberapa instance Cloud Data Fusion pribadi dalam VPC yang sama.
Untuk mengetahui informasi tentang cara menyiapkan kontrol traffic keluar di lingkungan desain dan eksekusi Anda, lihat Mengontrol traffic keluar dalam 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 versi 6.4.0.
Saat membuat koneksi peering jaringan VPC untuk instance Anda, pilih Export routes.
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 Anda membuat VM yang di-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 yang telah menyiapkan peering jaringan dengan instance Cloud Data Fusion pribadi. Untuk informasi lebih lanjut tentang peering jaringan VPC dalam skenario ini, lihat Sebelum Anda memulai.
Aktifkan penerusan IP untuk instance dalam jaringan yang sama dengan instance Cloud Data Fusion.
Di kolom Skrip startup, 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 informasi selengkapnya, lihat Menjalankan skrip startup.
Guna 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 mengonfigurasi rute:
- Setel 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 ekspor rute, 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.
Memverifikasi penyiapan Anda
Setelah melakukan langkah-langkah sebelumnya, pastikan Anda dapat mengakses layanan bucket S3 (atau SaaS atau layanan cloud publik lainnya) di Pratinjau dan Wrangler.
Menyiapkan Gateway yang sangat tersedia
Direkomendasikan: Untuk aplikasi yang sangat penting, sebaiknya Anda membuat 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 profesional 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 guna mengizinkan traffic TCP, UDP, dan ICMP dari alamat IP prober 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.
Buat template instance VM gateway
Konsol
Saat Anda membuat template instance di konsol:
- Buat instance 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 Skrip startup, 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 informasi selengkapnya, lihat Menjalankan skrip startup.
Guna mendapatkan rentang IP yang dialokasikan untuk instance Cloud Data Fusion, buka halaman Detail instance Cloud Data Fusion.
gcloud
Buat 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 pada 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 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 di langkah sebelumnya.
Menambahkan rute kustom ke load balancer
Tambahkan rute kustom ke Internal Load Balancer (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 traffic keluar, Anda mungkin mendapatkan error Connection Timeout
.
Untuk memperbaiki masalah ini, pastikan setelan berikut telah diterapkan:
- Peering jaringan VPC antara project tenant dan project pelanggan telah tersedia.
- Peering jaringan VPC mengaktifkan rute Ekspor.
- Rute kustom ke gateway VM atau ILB tidak ada.
- Aturan firewall yang mengizinkan traffic
HTTP
danHTTPS
tidak ada.
Health check grup instance tidak berhasil
Pastikan ada aturan firewall
untuk mengizinkan traffic TCP, UDP, dan ICMP dari
rentang sumber 130.211.0.0/22,35.191.0.0/16
.
Pipeline gagal saat dijalankan 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 dalam instance Cloud Data Fusion pribadi hanya ke kumpulan domain tertentu.
- Pelajari Networking di Cloud Data Fusion lebih lanjut.