Menghubungkan ke cluster dari luar VPC-nya

Halaman ini membahas berbagai cara untuk terhubung ke cluster AlloyDB untuk PostgreSQL dari luar Virtual Private Cloud (VPC) yang dikonfigurasi. Hal ini menganggap bahwa Anda telah membuat cluster AlloyDB.

Tentang koneksi eksternal

Cluster AlloyDB Anda terdiri dari sejumlah node dalam VPCGoogle Cloud . Saat membuat cluster, Anda juga mengonfigurasi akses layanan pribadi antara salah satu VPC 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 ada di luar jaringan Google.

  • Aplikasi Anda berjalan "di lokal", di komputer yang berada di tempat lain di internet publik.

Dalam semua kasus ini, Anda harus menyiapkan layanan tambahan untuk mengaktifkan koneksi eksternal semacam ini ke cluster AlloyDB.

Ringkasan solusi koneksi eksternal

Kami merekomendasikan dua solusi umum untuk membuat koneksi eksternal, bergantung pada kebutuhan Anda:

  • Untuk pengembangan project atau pembuatan prototipe, atau untuk lingkungan produksi dengan biaya yang relatif rendah, 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, sebaiknya buat koneksi permanen antara VPC dan aplikasi Anda melalui Cloud VPN atau Cloud Interconnect.

Beberapa bagian berikutnya menjelaskan solusi koneksi eksternal ini secara detail.

Menghubungkan melalui VM perantara

Untuk membuat koneksi ke cluster AlloyDB dari di luar VPC-nya menggunakan alat open source dan resource 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.

Sebagai solusi yang dikelola sendiri, penggunaan VM perantara umumnya lebih murah dan memiliki waktu penyiapan yang lebih cepat daripada menggunakan produk Koneksi Jaringan. Hal ini juga memiliki kelemahan: ketersediaan koneksi, keamanan, dan throughput data semuanya menjadi bergantung pada VM perantara, yang harus Anda pertahankan sebagai bagian dari project Anda.

Menghubungkan melalui IAP

Dengan menggunakan Identity-Aware Proxy (IAP), Anda dapat terhubung ke cluster dengan 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 solusi yang baik untuk penggunaan non-produksi seperti pengembangan dan pembuatan prototipe.

Untuk menyiapkan akses IAP ke cluster Anda, ikuti langkah-langkah berikut:

  1. Instal Google Cloud CLI di klien eksternal Anda.

  2. Menyiapkan 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 dengan aturan default-allow-ssh yang telah diisi otomatis diaktifkan, Anda tidak perlu menentukan aturan tambahan.

  3. 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.
  4. Uji koneksi Anda menggunakan psql di klien eksternal, dengan menghubungkannya ke port lokal yang ditentukan di langkah sebelumnya. Misalnya, untuk terhubung sebagai peran pengguna postgres ke port 5432:

    psql -h localhost -p 5432 -U USERNAME

    Ganti kode berikut:

    • USERNAME: Pengguna PostgreSQL yang ingin Anda hubungkan ke instance—misalnya, pengguna default postgres.

Terhubung melalui proxy SOCKS

Menjalankan layanan SOCKS di VM perantara akan memberikan koneksi yang fleksibel dan skalabel ke cluster AlloyDB Anda, dengan enkripsi menyeluruh yang disediakan oleh Proxy Auth AlloyDB. Dengan konfigurasi yang sesuai, Anda dapat menjadikannya sesuai untuk workload produksi.

Solusi ini mencakup langkah-langkah berikut:

  1. Menginstal, mengonfigurasi, dan menjalankan server SOCKS di VM perantara. Salah satu contohnya adalah Dante, solusi open source yang populer.

    Konfigurasikan server untuk terikat ke antarmuka jaringan ens4 VM untuk koneksi eksternal dan internal. Tentukan port yang Anda inginkan untuk koneksi internal.

  2. Konfigurasikan firewall VPC Anda untuk mengizinkan traffic TCP dari alamat atau rentang IP yang sesuai ke port yang dikonfigurasi server SOCKS.

  3. Instal Proxy Auth AlloyDB di klien eksternal.

  4. 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 di 198.51.100.1 pada port 1080:

    ALL_PROXY=socks5://198.51.100.1:1080 ./alloydb-auth-proxy \
    /projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID

    Jika terhubung dari VPC yang di-peering, Anda dapat menggunakan alamat IP internal VM perantara; jika tidak, gunakan alamat IP eksternalnya.

  5. Uji koneksi Anda menggunakan psql di klien eksternal, dengan menghubungkannya ke port yang diproses oleh Proxy Auth AlloyDB. Misalnya, untuk terhubung sebagai peran pengguna postgres ke port 5432:

    psql -h IP_ADDRESS -p PORT_NUMBER -U USERNAME

Menghubungkan melalui pooler PostgreSQL

Jika Anda perlu menginstal dan menjalankan Proxy Auth AlloyDB di VM perantara, bukan klien eksternal, Anda dapat mengaktifkan koneksi 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 penggabungan di VM perantara. Klien atau aplikasi Anda kemudian dapat terkoneksi dengan aman langsung ke pooler melalui SSL, tanpa perlu menjalankan layanan tambahan apa pun. Pooler akan meneruskan kueri PostgreSQL ke cluster AlloyDB Anda melalui Proxy Auth.

Karena setiap instance dalam cluster AlloyDB memiliki alamat IP internal yang 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 benar, untuk setiap instance dalam cluster.

Terhubung melalui Cloud VPN atau Cloud Interconnect

Untuk pekerjaan produksi yang memerlukan ketersediaan tinggi (HA), sebaiknya gunakan produk Network Connectivity Google Cloud: Cloud VPN atau Cloud Interconnect, bergantung pada kebutuhan layanan eksternal dan topologi jaringan Anda. Kemudian, Anda akan mengonfigurasi Cloud Router untuk mengiklankan rute yang sesuai.

Meskipun menggunakan produk Network Connectivity adalah proses yang lebih rumit daripada menyiapkan VM perantara, pendekatan ini memindahkan beban uptime dan ketersediaan dari Anda ke Google. Secara khusus, VPN dengan ketersediaan tinggi (HA) menawarkan SLA 99,99%, sehingga cocok untuk lingkungan produksi.

Solusi Konektivitas Jaringan juga membebaskan Anda dari kebutuhan untuk mempertahankan VM terpisah yang aman sebagai bagian dari aplikasi, sehingga menghindari risiko titik kegagalan tunggal yang melekat pada pendekatan tersebut.

Untuk mulai mempelajari solusi ini lebih lanjut, lihat Memilih produk Network Connectivity.

Langkah selanjutnya