Halaman ini membahas berbagai cara untuk terhubung ke cluster AlloyDB for PostgreSQL dari luar Virtual Private Cloud (VPC) yang dikonfigurasi. Hal ini mengasumsikan bahwa Anda telah membuat cluster AlloyDB.
Tentang koneksi eksternal
Cluster AlloyDB Anda terdiri dari sejumlah node dalam Google Cloud VPC. Saat membuat cluster, Anda juga mengonfigurasi akses layanan pribadi antara salah satu VPC Anda dan VPC yang dikelola Google yang berisi cluster baru Anda. Koneksi peering ini memungkinkan Anda menggunakan alamat IP pribadi untuk mengakses resource di VPC cluster seolah-olah resource tersebut adalah bagian dari VPC Anda sendiri, menggunakan alamat IP pribadi.
Ada situasi saat aplikasi Anda harus terhubung ke cluster dari luar VPC yang terhubung ini:
Aplikasi Anda berjalan di tempat lain dalam ekosistem Google Cloud , di luar VPC yang Anda hubungkan ke cluster melalui akses layanan pribadi.
Aplikasi Anda berjalan di VPC yang berada di luar jaringan Google.
Aplikasi Anda berjalan "di tempat", di komputer yang berada di suatu tempat di internet publik.
Dalam semua kasus ini, Anda harus menyiapkan layanan tambahan untuk mengaktifkan koneksi eksternal semacam ini ke cluster AlloyDB Anda.
Ringkasan solusi koneksi eksternal
Kami merekomendasikan dua solusi umum untuk membuat koneksi eksternal, bergantung pada kebutuhan Anda:
Untuk pengembangan atau pembuatan prototipe project, atau untuk lingkungan produksi yang relatif murah, siapkan virtual machine (VM) perantara—juga dikenal sebagai bastion—dalam VPC Anda. Ada berbagai metode untuk menggunakan VM perantara ini sebagai koneksi aman antara lingkungan aplikasi eksternal dan cluster AlloyDB Anda.
Untuk lingkungan produksi yang memerlukan ketersediaan tinggi, pertimbangkan untuk membuat koneksi permanen antara VPC dan aplikasi Anda melalui Cloud VPN atau Cloud Interconnect.
Beberapa bagian berikutnya menjelaskan solusi koneksi eksternal ini secara mendetail.
Menghubungkan melalui VM perantara
Untuk membuat koneksi ke cluster AlloyDB dari luar VPC-nya menggunakan alat open source dan sumber daya tambahan minimum, jalankan layanan proxy di VM perantara yang disiapkan dalam VPC tersebut. Anda dapat menyiapkan VM baru untuk tujuan ini, atau menggunakan VM yang sudah berjalan dalam VPC cluster AlloyDB Anda.
Sebagai solusi yang dikelola sendiri, penggunaan VM perantara umumnya lebih murah dan memiliki waktu penyiapan yang lebih cepat daripada menggunakan produk Network Connectivity. Cara ini juga memiliki kekurangan: ketersediaan, keamanan, dan throughput data koneksi semuanya menjadi bergantung pada VM perantara, yang harus Anda kelola sebagai bagian dari project Anda.
Menghubungkan melalui IAP
Dengan Identity-Aware Proxy (IAP), Anda dapat terhubung ke cluster secara aman tanpa perlu mengekspos alamat IP publik VM perantara. Anda menggunakan kombinasi aturan firewall dan Identity and Access Management (IAM) untuk membatasi akses melalui rute ini. Hal ini menjadikan IAP sebagai solusi yang baik untuk penggunaan non-produksi seperti pengembangan dan pembuatan prototipe.
Untuk menyiapkan akses IAP ke cluster Anda, ikuti langkah-langkah berikut:
Instal Google Cloud CLI di klien eksternal Anda.
Siapkan project Anda untuk penerusan TCP IAP.
Saat menentukan aturan firewall baru, izinkan traffic TCP masuk ke port
22
(SSH). Jika Anda menggunakan jaringan default project Anda dengan aturandefault-allow-ssh
yang telah terisi otomatis diaktifkan, maka Anda tidak perlu menentukan aturan tambahan.Siapkan penerusan port antara klien eksternal dan VM perantara menggunakan SSH melalui IAP.
gcloud compute ssh my-vm \ --tunnel-through-iap \ --zone=ZONE_ID \ --ssh-flag="-L PORT_NUMBER:ALLOYDB_IP_ADDRESS:5432"
Ganti kode berikut:
ZONE_ID
: ID zona tempat cluster berada—misalnya,us-central1-a
.ALLOYDB_IP_ADDRESS
: Alamat IP instance AlloyDB yang ingin Anda hubungkan.PORT_NUMBER
: Nomor port VM Anda.
Uji koneksi Anda menggunakan
psql
di klien eksternal Anda, dengan membuatnya terhubung ke port lokal yang Anda tentukan di langkah sebelumnya. Misalnya, untuk terhubung sebagai peran penggunapostgres
ke port5432
:psql -h localhost -p 5432 -U USERNAME
Ganti kode berikut:
USERNAME
: Pengguna postgreSQL yang ingin Anda hubungkan ke instance—misalnya, pengguna defaultpostgres
.
Menghubungkan melalui proxy SOCKS
Menjalankan layanan SOCKS di VM perantara memberikan koneksi yang fleksibel dan skalabel ke cluster AlloyDB Anda, dengan enkripsi end-to-end yang disediakan oleh Proxy Auth AlloyDB. Dengan konfigurasi yang sesuai, Anda dapat menjadikannya cocok untuk workload produksi.
Solusi ini mencakup langkah-langkah berikut:
Instal, konfigurasi, dan jalankan server SOCKS di VM perantara. Salah satu contohnya adalah Dante, solusi open source yang populer.
Konfigurasi server agar terikat ke antarmuka jaringan
ens4
VM untuk koneksi eksternal dan internal. Tentukan port yang Anda inginkan untuk koneksi internal.Konfigurasi firewall VPC Anda untuk mengizinkan traffic TCP dari alamat atau rentang IP yang sesuai ke port yang dikonfigurasi server SOCKS.
Instal Proxy Auth AlloyDB di klien eksternal.
Jalankan Proxy Auth AlloyDB di klien eksternal Anda, dengan variabel lingkungan
ALL_PROXY
yang ditetapkan ke alamat IP VM perantara, dan menentukan port yang digunakan server SOCKS.Contoh ini mengonfigurasi Proxy Auth AlloyDB untuk terhubung ke database di
my-main-instance
, melalui server SOCKS yang berjalan di198.51.100.1
pada port1080
:ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \ /projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Jika Anda terhubung dari VPC yang di-peering, Anda dapat menggunakan alamat IP internal VM perantara; jika tidak, gunakan alamat IP eksternalnya.
Uji koneksi Anda menggunakan
psql
di klien eksternal Anda, dengan menghubungkannya ke port yang diproses oleh Proxy Auth AlloyDB. Misalnya, untuk terhubung sebagai peran penggunapostgres
ke port5432
:psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME
Menghubungkan melalui pooler PostgreSQL
Jika perlu menginstal dan menjalankan Proxy Auth AlloyDB di VM perantara, bukan di klien eksternal, Anda dapat mengaktifkan koneksi yang aman ke VM tersebut dengan menghubungkannya ke proxy sadar protokol, yang juga dikenal sebagai pooler. Pooler open source populer untuk PostgreSQL mencakup Pgpool-II dan PgBouncer.
Dalam solusi ini, Anda menjalankan Proxy Auth AlloyDB dan pooler di VM perantara. Klien atau aplikasi Anda kemudian dapat terhubung langsung ke pooler melalui SSL dengan aman, tanpa perlu menjalankan layanan tambahan. Pooler menangani penerusan kueri PostgreSQL ke cluster AlloyDB Anda melalui Auth Proxy.
Karena setiap instance dalam cluster AlloyDB memiliki alamat IP internal terpisah, setiap layanan proxy hanya dapat berkomunikasi dengan satu instance tertentu: instance utama, instance standby, atau kumpulan baca. Oleh karena itu, Anda perlu menjalankan layanan penggabungan terpisah, dengan sertifikat SSL yang dikonfigurasi dengan tepat, untuk setiap instance di cluster.
Menghubungkan melalui Cloud VPN atau Cloud Interconnect
Untuk pekerjaan produksi yang memerlukan ketersediaan tinggi (HA), sebaiknya gunakan produk Google Cloud Network Connectivity: baik Cloud VPN maupun Cloud Interconnect, bergantung pada kebutuhan layanan eksternal dan topologi jaringan Anda. Kemudian, Anda mengonfigurasi Cloud Router untuk mengiklankan rute yang sesuai.
Meskipun menggunakan produk Network Connectivity adalah proses yang lebih rumit daripada menyiapkan VM perantara, pendekatan ini mengalihkan beban waktu aktif dan ketersediaan dari Anda ke Google. Khususnya, VPN dengan ketersediaan tinggi (HA) menawarkan SLA 99,99%, sehingga cocok untuk lingkungan produksi.
Solusi Network Connectivity juga membebaskan Anda dari kebutuhan untuk memelihara VM yang terpisah dan aman sebagai bagian dari aplikasi, sehingga menghindari risiko single point of failure yang melekat pada pendekatan tersebut.
Untuk mulai mempelajari lebih lanjut solusi ini, lihat Memilih produk Network Connectivity.
Langkah berikutnya
- Pelajari lebih lanjut Akses layanan pribadi dan konektivitas lokal di Google Cloud VPC.