Cloud Engineering - Menghubungkan Client On-Premise Ke Private Cloud SQL
kita sedang dalam tahap migrasi, dimana data dan database yang terlebih dahulu dimigrasikan ke Google Cloud Provider. solusi yang dipakai adalah menggunakan DaaS (database as a service) Cloud SQL dan dikonfigurasi hanya menggunakan private IP.
aplikasi yang belum dimigrasi, berada dalam data center (on-premise) dan tidak ada koneksi antar data center ke jaringan Google Cloud. lalu, bagimana aplikasi dapat terhubung sebagai client ke Cloud SQL sebagai server?
ada beberapa cara yang dapat dilakukan:
- Cloud VPN -> menguhubungkan jaringan on-premise dengan Google Cloud melalu mekanisme network tunneling
- Interconnect -> seperti halnya VPN namun tidak melewati internet (tunnelling), melainkan menghubungkan langsung kedua jaringan
- Cloud Auth Proxy -> konektor tanpa setup rumit seperti jaringan dan SSL
Cloud VPN dan Interconnect akan dibahas lain waktu,
Cloud Auth Proxy
Layanan Cloud Auth Proxy memungkinkan untuk menghubungkan ke database Cloud SQL yang berada di jaringan privat. tanpa ribet. kurang lebih layanan ini sugar-coating layanan koneksi Private Service Connect dengan beberapa penambahan:
- SSL sudah terkonfigurasi sehingga lalu lintas data dijamin terenkripsi
- terintegrasi dengan IAM sehingga manajemen otentikasi dan otorisasi sudah teratasi. IAM dapat sebagai user maupun service account dimana service account lebih direkomendasikan.
bagimana Cloud Auth Proxy bekerja? client akan terhubung ke database dan melakukan pertukaran melalui sebuah proxy. proxy tersebut terdapat di local tempat client berada serta di server. apabila koneksi baru, maka proxy akan meminta konfigurasi SSL pada Cloud SQL Admin API yang kemudian selalu diperharui apabila kadaluarsa (setiap 1 jam).
untuk menggunakan Cloud Auth Proxy, syarat-syarat harus terpenuhi:
- Cloud SQL Admin API
- Google Cloud authentication credentials dengan permission
cloudsql.instances.connect - database credential
untuk menggunakan Cloud Auth Proxy, dilakukan langkah berikut:
- download Cloud Auth Proxy binary
- dapatkan nama database
gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)' - jalankan proxy
./cloud-sql-proxy --port 3306 INSTANCE_CONNECTION_NAME. gunakan konfig –credential-file untuk mendefinisikan lokasi iam credential (sangat direkomendasikan di production).
setelah proxy berjalan, kita bisa mengubungkan client dengan database selayaknya proses koneksi database pada umumnya.
Dah.
atas dasar keamanan umumnya kita akan konfigurasikan database dan service backend berada dibelakang firewall, dmz, dan tidak terbuka oleh publik (internet). namun ada beberapa kasus di mana terdapat aplikasi yang berada di luar jaringan tertutup tersebut sehingga perlu koneksi yang aman. kasus lain adalah ketika dalam proses pengembangan tentu akan banyak koneksi yang dilakukan dari komputer masing-masing pengembang yang bersifat lokal. Cloud Auth Proxy ini akan dapat menjadi solusi diantara Cloud VPN yang lambat serta konfigurasinya rumit dan Cloud Interconnect yang akan menambah biaya.
sampai bertemu di post lain