Private Service Connect: Membuat private connection antar VPC Network — Part 1

Qassandra Chaidir
Google Cloud Indonesia
6 min readJun 23, 2023

Membuat private connection antar VPC memungkinkan kita untuk mengakses aplikasi yang berada di VPC lain secara private. Hal ini dibutuhkan ketika kita memiliki dua project yang berada di dua VPC yang berbeda.

Membuat private connection antar VPC di Google Cloud dapat dilakukan dengan 3 metode:

Di artikel ini, saya akan membahas membuat private connection menggunakan Private Service Connect dan menjelaskan sedikit apa itu Private Service Connect. Yuk kita bahas!

Apa itu Private Service Connect?

Private Service Connect atau PSC memungkinkan kita mengakses services di VPC network lain yang dimiliki tim, project, atau organisasi yang berbeda secara private. PSC menggunakan producer-consumer model dimana kita bisa mengakses services dari VPC network lain dengan menggunakan IP Internal VPC network kita sendiri.

Private Service Connect

Producer-consumer model:

  1. Service Producers, adalah service yang kita publish menggunakan Private Service Connect dengan internal IP dari VPC Produser. Service ini bisa berupa aplikasi, datastore, atau managed services lainnya.
  2. Service Consumers, adalah service yang berada di VPC Konsumer yang bisa mengakses service yang telah dipublish dari VPC Produser. Service consumer menggunakan Private Service Connect endpoint untuk mengakses published services.

Menariknya, service consumer tidak perlu menggunakan alamat IP publik ataupun IP internal diluar VPC Konsumer untuk mengakses service producer. Service consumer bisa menggunakan alamat IP internal dari VPC mereka sendiri ketika mengakses service producer yang berada di VPC Network yang berbeda.

Membuat Private Service Connect

Karena Private Service Connect bisa digunakan di berbagai use cases, di artikel ini kita hanya akan membahas salah satu use case dari penggunaan Private Service Connect. Pada use case ini kita memiliki aplikasi yang di-deploy menggunakan instance group yang berada di VPC Producer. Aplikasi ini lah yang ingin kita publish supaya bisa diakses oleh service yang berada di VPC Konsumer.

Private Service Connect

Dari gambar diatas, ada beberapa komponen yang harus kita siapkan baik itu dari sisi VPC Produser dan VPC Konsumer. Yuk kita mulai!

1. Subnet Requirement

Untuk mem-publish sebuah service menggunakan Private Service Connect, kita membutuhkan satu atau lebih Network Address Translation (NAT) subnet yang nantinya akan dipakai oleh sebuah service attachment.

Traffic dari VPC Konsumer akan diterjemahkan menggunakan source NAT (SNAT) sehingga alamat IP aslinya yang berasal dari VPC Konsumer dikonversi menjadi alamat IP dari subnet NAT yang berada di VPC Produser.

Untuk membuat subnet NAT, buka GCP Console > VPC Networks > Add Subnet.

Masukkan nama subnet, region, kemudian pilih Private Service Connect pada bagian purpose, dan masukkan IPv4 range yang akan digunakan sebagai NAT Subnet. Pada subnet ini kita menggunakan IP range 192.168.0.0/29 dengan jumlah total 8 IP dengan 6 jumlah IP yang bisa dipakai untuk mengkonversi alamat IP dari VPC Konsumer.

2. Publish Service

Untuk mem-publish sebuah service melalui PSC, service producer membutuhkan sebuah service attachment. Service attachment adalah sebuah resource pada PSC yang memungkinkan service consumer memiliki akses terhadap service yang di publish.

Service Attachment mengekspos sebuah load balancer forwarding rule. Kemudian load balancer ini memiliki backend berupa service2 yang mau kita ekspos ke VPC Konsumer.

Pertama, kita akan membuat Internal HTTP Load Balancer di project VPC Produser yang bernama shop-infra. Buka GCP Console > Network Services > Load Balancing > Create Load Balancer > HTTP Load Balancer.

Saat mengkonfigurasi Internet facing or internal only, pilih only between my VMs or serverless services. Pilihan ini menandakan kita hanya ingin membuat Load Balancer yang hanya bisa diakses oleh VM dan service yang berada dalam satu jaringan yang sama.

Masukkan nama load balancer, region, dan network yang akan digunakan.

Pada backend configuration, kita akan membuat sebuah backend service yang mengarah ke instance groups. Pilih create a backend service, kemudian masukkan detail seperti nama backend, protocol, dll.

Pada backend service ini kita akan membuat satu backend yang mengarah ke instance groups.

Pada bagian frontend configuration, kita akan membuat satu frontend yang merepresentasikan forwarding rule yang akan menjadi target dari Private Service Connect yang dibuat. Frontend configuration ini mereferensikan IP address, IP protocol, dan port yang digunakan.

Setelah itu, kita bisa me-review kembali konfigurasi backend dan frontend yang akan dibuat. Jika sudah sesuai, pilih create untuk membuat Load Balancer.

Setelah itu, kita akan mambuat service attachment untuk mengekspos forwarding rule dari Load Balancer tersebut. Buka GCP Console > Network Services > Private Service Connect. Buka tab bagian published services.

Kemudian pilih publish service.

Pada bagian load balancer type, kita pilih Internal HTTP(s) Load Balancer sesuai dengan tipe load balancer yang sebelumnya kita buat. Kemudian pada bagian subnets, kita akan menggunakan PSC subnet yang juga telah kita buat sebelumnya. Setelah itu pilih Add Service untuk membuat service attachment.

Selesai. Kita baru saja mengekspos sebuah service menggunakan Private Service Connect. Sekarang kita lanjut untuk mengakses service tersebut dari VPC Konsumer.

3. Mengakses Published Service

Pada step terakhir, kita akan membuat koneksi dari project VPC Konsumer yang bernama shop-orders, ke service yang sudah kita publish menggunakan service attachment. Buka GCP Console > Network Services > Private Service Connect > Connected Endpoints.

Pilih Connect Endpoint, dan masukkan service attachment pada bagian target service.

Setelah itu pada bagian IP address, pilih create ip address. Setelah kita me-reserve IP address, klik Add endpoint.

Sekarang kita kembali ke published services yang berada di project VPC Produser dan akan melihat request connect project dari project VPC Konsumer.

Setelah kita accept project, status connection akan berubah menjadi accepted.

Selesai! Koneksi private antar project yang berada di dua VPC yang berbeda siap digunakan :D

--

--

Qassandra Chaidir
Google Cloud Indonesia

I use keyboard a lot and spend most of my time in the Cloud for a living☁️