Dokumen ini menjelaskan cara mengonfigurasi instance virtual machine (VM) Dataflow untuk akses internet, membuat tag jaringan, dan menentukan aturan firewall untuk jaringan yang terkait dengan tugas Dataflow Anda.
Dokumen ini mengharuskan Anda memiliki pengetahuan dasar tentang jaringan Google Cloud. Untuk menentukan jaringan untuk tugas Dataflow, lihat Menentukan jaringan dan subnetwork.
Akses internet untuk Dataflow
Virtual machine (VM) pekerja Dataflow harus menjangkau API dan layanan Google Cloud. Bergantung pada kasus penggunaan Anda, VM Anda mungkin juga memerlukan akses ke resource di luar Google Cloud. Gunakan salah satu metode berikut untuk mengonfigurasi akses internet untuk Dataflow:
Konfigurasikan VM pekerja dengan alamat IP eksternal agar memenuhi persyaratan akses internet.
Konfigurasikan Akses Google Pribadi. Dengan Akses Google Pribadi, VM yang hanya memiliki alamat IP internal dapat mengakses alamat IP untuk Google Cloud dan layanan.
Konfigurasikan alamat IP endpoint Private Service Connect untuk mengakses Google Cloud API dan layanan.
Konfigurasikan solusi NAT, seperti Cloud NAT. Opsi ini digunakan untuk menjalankan tugas yang mengakses API dan layanan di luar Google Cloud yang memerlukan akses internet. Misalnya, tugas Python SDK mungkin memerlukan akses ke Indeks Paket Python (PyPI) untuk mendownload dependensi pipeline. Dalam hal ini, Anda harus mengonfigurasi VM pekerja dengan alamat IP eksternal atau menggunakan Cloud NAT. Anda juga dapat menyediakan dependensi pipeline Python selama pengiriman tugas. Misalnya, Anda dapat menggunakan container kustom untuk menyediakan dependensi pipeline Python, yang menghilangkan kebutuhan untuk mengakses PyPI pada runtime.
Untuk mengetahui informasi selengkapnya, lihat Mengelola Dependensi Pipeline Python dalam dokumentasi Apache Beam.
Nonaktifkan alamat IP eksternal
Secara default, layanan Dataflow menetapkan alamat IP eksternal dan internal kepada pekerja. Jika Anda menonaktifkan alamat IP eksternal, pipeline Dataflow hanya dapat mengakses resource di tempat berikut:
- Instance lain dalam jaringan VPC yang sama
- Jaringan VPC Bersama
- Jaringan dengan Peering Jaringan VPC diaktifkan
Tanpa alamat IP eksternal, Anda masih dapat melakukan tugas administratif dan pemantauan. Anda dapat mengakses pekerja dengan menggunakan SSH melalui opsi yang tercantum dalam daftar sebelumnya. Namun, pipeline tidak dapat mengakses internet, dan host internet tidak dapat mengakses pekerja Dataflow Anda.
Tidak menggunakan alamat IP eksternal dapat membantu mengamankan infrastruktur pemrosesan data Anda dengan lebih baik. Selain itu, Anda juga mengurangi jumlah alamat IP eksternal yang Anda gunakan dari kuota project Google Cloud.
Jika Anda menonaktifkan alamat IP eksternal, tugas Dataflow Anda tidak dapat mengakses API dan layanan di luar Google Cloud yang memerlukan akses internet.
Guna mengetahui informasi tentang cara menyiapkan akses internet untuk lowongan dengan alamat IP internal, baca bagian sebelumnya.
Untuk menonaktifkan alamat IP eksternal, lakukan salah satu hal berikut:
Java
- Aktifkan Akses Google Pribadi untuk jaringan atau subnetwork.
- Dalam parameter tugas Dataflow, tentukan
--usePublicIps=false
dan--network=NETWORK-NAME
atau--subnetwork=SUBNETWORK-NAME
.Bergantung pada pilihan Anda, ganti salah satu opsi berikut:
- NETWORK-NAME: nama jaringan Compute Engine Anda
- SUBNETWORK-NAME: nama subnetwork Compute Engine Anda
Python
- Untuk mengatur semua dependensi paket Python, ikuti petunjuk dependensi pipeline Apache Beam.
- Aktifkan Akses Google Pribadi untuk jaringan atau subnetwork.
- Dalam parameter tugas Dataflow, tentukan
--no_use_public_ips
dan--network=NETWORK
atau--subnetwork=SUBNETWORK
. - NETWORK-NAME: nama jaringan Compute Engine Anda
- SUBNETWORK-NAME: nama subnetwork Compute Engine Anda
Bergantung pada pilihan Anda, ganti salah satu opsi berikut:
Go
- Aktifkan Akses Google Pribadi untuk jaringan atau subnetwork.
- Dalam parameter tugas Dataflow, tentukan
--no_use_public_ips
dan--network=NETWORK
atau--subnetwork=SUBNETWORK
. - NETWORK-NAME: nama jaringan Compute Engine Anda
- SUBNETWORK-NAME: nama subnetwork Compute Engine Anda
Bergantung pada pilihan Anda, ganti salah satu opsi berikut:
Tag jaringan untuk Dataflow
Tag jaringan adalah atribut teks yang dapat Anda lampirkan ke VM Compute Engine. Tag jaringan memungkinkan Anda membuat aturan firewall jaringan VPC dan rute statis kustom tertentu yang dapat diterapkan ke instance VM tertentu. Dataflow mendukung penambahan tag jaringan ke semua VM pekerja yang menjalankan tugas Dataflow tertentu.
Meskipun Anda tidak menggunakan parameter jaringan, Dataflow selalu menambahkan tag jaringan default dataflow
ke setiap VM pekerja yang dibuatnya.
Aktifkan tag jaringan
Anda hanya dapat menentukan tag jaringan saat menjalankan template tugas Dataflow untuk membuat tugas. Setelah tugas dimulai, Anda tidak dapat menambahkan lebih banyak tag jaringan ke tugas tersebut. Untuk menerapkan tag jaringan tambahan ke tugas, Anda harus membuat ulang template tugas dengan tag jaringan yang diperlukan.
Tambahkan kode berikut ke kode pipeline, baik Anda menjalankan di Java maupun Python:
--experiments=use_network_tags=TAG-NAME
Ganti TAG-NAME dengan nama tag Anda. Jika Anda menambahkan lebih dari satu tag, pisahkan setiap tag dengan titik koma (;
), seperti yang ditunjukkan dalam format berikut: TAG-NAME-1;TAG-NAME-2;TAG-NAME-3;....
Meskipun Anda tidak menggunakan parameter ini, Dataflow selalu menambahkan tag jaringan dataflow
ke setiap VM pekerja yang dibuatnya.
Aktifkan tag jaringan untuk VM Template Flex
Saat menggunakan Template Fleksibel, guna mengaktifkan tag jaringan untuk VM pekerja Dataflow, gunakan opsi --additional-experiments
seperti yang ditunjukkan pada contoh berikut:
--additional-experiments=use_network_tags=TAG-NAME
Guna mengaktifkan tag jaringan untuk VM pekerja dan VM peluncur, Anda harus menggunakan dua opsi berikut:
--additional-experiments=use_network_tags=TAG-NAME
--additional-experiments=use_network_tags_for_flex_templates=TAG-NAME
Ganti TAG-NAME dengan nama tag Anda. Jika Anda menambahkan lebih dari satu tag, pisahkan setiap tag dengan titik koma (;
), seperti yang ditunjukkan dalam format berikut: TAG-NAME-1;TAG-NAME-2;TAG-NAME-3;....
Setelah Anda mengaktifkan tag jaringan, tag tersebut akan diuraikan dan dilampirkan ke VM.
Lihat batas yang berlaku untuk tag jaringan.
Aturan firewall untuk Dataflow
Dengan aturan firewall, Anda dapat mengizinkan atau menolak traffic ke dan dari VM. Jika
tugas Dataflow Anda menggunakan
Dataflow Shuffle atau
Streaming Engine, Anda tidak perlu
mengonfigurasi aturan firewall apa pun. Jika tidak, Anda harus mengonfigurasi aturan firewall, sehingga VM Dataflow dapat mengirim dan menerima traffic jaringan di port TCP 12345
untuk tugas streaming, dan di port TCP 12346
untuk tugas batch.
Pemilik project, editor, atau administrator keamanan harus membuat aturan firewall yang diperlukan di jaringan VPC yang digunakan oleh VM Dataflow Anda.
Sebelum mengonfigurasi aturan firewall untuk Dataflow, baca dokumen berikut:
Ringkasan aturan firewall VPC dan Menggunakan aturan firewall
Ringkasan kebijakan firewall hierarkis dan Menggunakan kebijakan firewall hierarkis
Saat Anda membuat aturan firewall untuk Dataflow, tentukan tag jaringan Dataflow. Jika tidak, aturan firewall akan berlaku untuk semua VM di jaringan VPC.
Jika berlaku, kebijakan firewall hierarkis akan dievaluasi terlebih dahulu dan aturan ini akan mendahului aturan firewall VPC. Jika tugas Dataflow berada dalam project yang merupakan bagian dari folder atau organisasi yang menggunakan kebijakan firewall hierarkis, peran compute.orgFirewallPolicyAdmin
diperlukan untuk membuat perubahan kebijakan.
Jika Anda tidak membuat tag jaringan kustom saat menjalankan kode pipeline, VM Dataflow akan menggunakan tag dataflow
default. Jika tidak ada tag jaringan kustom, buat aturan firewall dengan tag dataflow
default.
Jika Anda membuat tag jaringan kustom saat menjalankan kode pipeline, VM Dataflow akan menggunakan tag tersebut. Membuat aturan firewall dengan tag kustom.
Beberapa jaringan VPC, seperti jaringan default
yang dibuat secara otomatis, menyertakan aturan default-allow-internal
yang memenuhi persyaratan firewall untuk Dataflow.
Contoh aturan masuk firewall
Aturan firewall masuk mengizinkan VM Dataflow untuk menerima paket satu sama lain. Anda harus selalu membuat aturan traffic masuk, izinkan firewall, atau traffic akan selalu diblokir, meskipun aturan traffic keluar mengizinkan traffic tersebut.
Pada contoh berikut, aturan masuknya firewall dibuat untuk Dataflow, dengan semua VM pekerja memiliki tag jaringan default dataflow
. Pemilik project, editor, atau admin keamanan dapat menggunakan perintah gcloud
berikut untuk membuat aturan izin masuk yang mengizinkan traffic di port TCP 12345
dan 12346
dari VM dengan tag jaringan dataflow
ke VM lain dengan tag yang sama:
gcloud compute firewall-rules create FIREWALL_RULE_NAME_INGRESS \
--action=allow \
--direction=ingress \
--network=NETWORK \
--target-tags=CUSTOM_TAG \
--source-tags=CUSTOM_TAG \
--priority=PRIORITY_NUM \
--rules tcp:12345-12346
Ganti kode berikut:
FIREWALL_RULE_NAME_INGRESS
: nama untuk aturan firewallNETWORK
: nama jaringan yang digunakan oleh VM pekerja AndaCUSTOM_TAG
: daftar tag jaringan yang dipisahkan komaBerikut adalah daftar panduan untuk menggunakan tag jaringan:
Jika Anda menghapus
--target-tags
, aturan tersebut berlaku untuk semua VM di jaringan VPC.Jika Anda menghapus
--source-tags
dan semua spesifikasi sumber lainnya, traffic dari sumber mana pun akan diizinkan.Jika Anda belum menentukan tag jaringan kustom dan ingin aturannya spesifik untuk VM Dataflow, gunakan
dataflow
sebagai tag jaringan.Jika Anda telah menentukan tag jaringan kustom dan ingin aturannya khusus untuk VM Dataflow, gunakan tag jaringan kustom Anda.
PRIORITY_NUM
: prioritas aturan firewallAngka yang lebih rendah memiliki prioritas yang lebih tinggi dan 0 adalah prioritas tertinggi.
Contoh aturan traffic keluar firewall
Aturan firewall keluar mengizinkan VM Dataflow untuk saling mengirim paket. Jika telah membuat aturan firewall penolakan traffic keluar, Anda mungkin perlu membuat aturan traffic keluar khusus untuk mengizinkan firewall di jaringan VPC Anda.
Dalam contoh ini, aturan keluar firewall dibuat untuk Dataflow, dengan semua VM pekerja memiliki tag jaringan default dataflow
. Pemilik project, editor, atau admin keamanan dapat menggunakan perintah gcloud
berikut untuk membuat aturan izin keluar yang mengizinkan traffic dari port TCP 12345
dan 12346
pada VM dengan tag jaringan dataflow
ke VM lain yang memiliki tag yang sama:
gcloud compute firewall-rules create FIREWALL_RULE_NAME_EGRESS \
--network=NETWORK \
--action=allow \
--direction=egress \
--target-tags=CUSTOM_TAG \
--destination-ranges=DESTINATION-RANGES\
--priority=PRIORITY_NUM \
--rules tcp:12345-12346
Ganti kode berikut:
FIREWALL_RULE_NAME_EGRESS
: nama untuk aturan firewallNETWORK
: nama jaringan yang digunakan oleh VM pekerja AndaCUSTOM_TAG
: daftar tag jaringan yang dipisahkan komaBerikut adalah daftar panduan untuk menggunakan tag jaringan:
Jika Anda menghapus
--target-tags
, aturan tersebut berlaku untuk semua VM di jaringan VPC.Jika Anda menghapus
--source-tags
dan semua spesifikasi sumber lainnya, traffic dari sumber mana pun akan diizinkan.Jika Anda belum menentukan tag jaringan kustom dan ingin aturannya spesifik untuk VM Dataflow, gunakan
dataflow
sebagai tag jaringan.Jika Anda telah menentukan tag jaringan kustom dan ingin aturannya khusus untuk VM Dataflow, gunakan tag jaringan kustom Anda.
DESTINATION-RANGES
: daftar CIDR yang dipisahkan komaSertakan rentang alamat IP utama subnetwork yang dipilih.
PRIORITY_NUM
: prioritas aturan firewallAngka yang lebih rendah memiliki prioritas yang lebih tinggi dan 0 adalah prioritas tertinggi.
Untuk port TCP tertentu yang digunakan oleh Dataflow, Anda dapat melihat manifes penampung project. Manifes container secara eksplisit menentukan port untuk memetakan port host ke dalam container.
Akses SSH ke VM pekerja
Dataflow tidak memerlukan SSH; tetapi, SSH berguna untuk pemecahan masalah.
Jika VM pekerja memiliki alamat IP eksternal, Anda dapat terhubung ke VM melalui Google Cloud Console atau dengan menggunakan Google Cloud CLI. Untuk terhubung menggunakan SSH, Anda harus memiliki aturan firewall yang mengizinkan koneksi masuk di TCP port 22 dari setidaknya alamat IP sistem tempat Anda menjalankan gcloud
atau sistem yang menjalankan browser web yang Anda gunakan untuk mengakses Konsol Google Cloud.
Anda dapat melihat aktivitas dan konfigurasi jaringan dengan
membuka sesi SSH di salah satu pekerja dan menjalankan iproute2
. Untuk mengetahui informasi selengkapnya, lihat
halaman iproute2
.
Jika Anda perlu terhubung ke VM pekerja yang hanya memiliki alamat IP internal, lihat Memilih opsi koneksi untuk VM khusus internal.