Mengelola koneksi database dengan endpoint tulis

Halaman ini menjelaskan cara menggunakan endpoint tulis AlloyDB untuk PostgreSQL guna menyederhanakan pengelolaan koneksi database untuk aplikasi Anda.

Endpoint adalah resource AlloyDB yang menyediakan nama layanan nama domain (DNS) stabil yang dapat digunakan aplikasi Anda untuk terhubung ke instance AlloyDB. Dengan menggunakan endpoint, Anda memisahkan aplikasi dari alamat IP atau Uniform Resource Identifier (URI) instance tertentu. Abstraksi ini menyederhanakan pengelolaan koneksi selama peristiwa operasional—misalnya, pemulihan dari bencana, pemulihan cadangan, atau migrasi—karena Anda dapat mengalihkan nama DNS endpoint ke instance lain tanpa mengubah konfigurasi aplikasi.

Endpoint AlloyDB mendukung jenis WRITE_ENDPOINT. Endpoint tulis mengarahkan traffic ke satu instance utama AlloyDB dan melayani traffic baca dan tulis.

Meskipun nama DNS berfungsi sebagai resource global, resource endpoint itu sendiri bersifat regional. Meski begitu, setiap endpoint dapat ditautkan ke instance secara global, dan nama DNS-nya dapat diakses dari lokasi mana pun.

Manfaat menggunakan endpoint

Menggunakan endpoint tulis memberikan manfaat berikut:

  • Pemulihan dari bencana yang disederhanakan: jika Anda melakukan pengalihan atau failover lintas region ke cluster sekunder, AlloyDB akan otomatis memperbarui endpoint untuk mengarah ke instance utama baru. Aplikasi Anda kemudian dapat terhubung kembali menggunakan nama DNS endpoint yang sama, sehingga mengurangi target waktu pemulihan (RTO).
  • Pemulihan cadangan yang lancar: saat Anda memulihkan instance dari cadangan, AlloyDB akan membuat instance baru dengan alamat IP baru. Anda dapat memperbarui endpoint untuk mengarah ke instance yang baru dipulihkan. Hal ini memungkinkan aplikasi melanjutkan operasi tanpa perubahan konfigurasi.
  • Migrasi yang lebih mudah: selama migrasi, Anda dapat mengalihkan endpoint dari database sumber ke instance AlloyDB dengan gangguan aplikasi minimal.

Batasan

  • Endpoint hanya mendukung instance yang dikonfigurasi untuk menggunakan akses layanan pribadi (PSA). Endpoint tidak mendukung instance yang dikonfigurasi untuk menggunakan Private Service Connect (PSC).
  • Dukungan untuk Konektor Bahasa AlloyDB dan Proxy Auth AlloyDB tidak tersedia untuk endpoint tulis.
  • Operasi modifikasi serentak (seperti update serentak, atau operasi update dan hapus) pada endpoint yang mengarah ke instance target yang sama tidak didukung dan dapat menyebabkan kegagalan.

Sebelum memulai

  1. Instal dan lakukan inisialisasi pada Google Cloud CLI.
  2. Aktifkan Cloud DNS API.
  3. Pastikan Anda memiliki instance AlloyDB yang ada untuk berfungsi sebagai target endpoint.
  4. Untuk mendapatkan izin yang Anda perlukan untuk mengelola endpoint, minta administrator Anda untuk memberikan peran Pengelolaan Identitas dan Akses (IAM) Admin AlloyDB (roles/alloydb.admin)pada project Anda. Peran bawaan ini berisi izin yang diperlukan untuk mengelola endpoint.

    Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya. Izin khusus yang diperlukan adalah:

    • alloydb.endpoints.create
    • alloydb.endpoints.update
    • alloydb.endpoints.get
    • alloydb.endpoints.list
    • alloydb.endpoints.delete

Untuk mengetahui informasi selengkapnya, lihat Peran dan izin IAM AlloyDB.

Anda dapat membuat dan mengelola endpoint tulis menggunakan Google Cloud CLI.

Membuat endpoint

Untuk membuat endpoint tulis, gunakan Google Cloud CLI. Jenis endpoint harus WRITE_ENDPOINT, dan harus menargetkan satu instance utama.

Konsol

  1. Di Google Cloud konsol, buka halaman Endpoints.

    Buka Endpoint

  2. Klik Create endpoint.

  3. Di kolom Endpoint name, masukkan ID untuk endpoint Anda. Harus terdiri dari huruf kecil (a-z), angka, dan tanda hubung, diawali dengan huruf kecil, dan diakhiri dengan huruf kecil atau angka.

  4. Pilih Region.

  5. Untuk Endpoint type, pilih Write.

  6. Di kolom instance target, pilih instance utama yang harus dituju oleh endpoint ini.

  7. Klik Create.

gcloud

gcloud beta alloydb endpoints create ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --endpoint-type=ENDPOINT_TYPE \
    --target-instances=TARGET_INSTANCE_NAME

Ganti kode berikut:

  • ENDPOINT_ID: ID unik untuk endpoint. ID ini harus unik dalam project dan lokasi yang ditentukan.
  • PROJECT_ID: Project ID Google Cloud Anda.
  • REGION_ID: ID region tempat Anda ingin membuat endpoint—misalnya, us-central1.
  • ENDPOINT_TYPE: jenis resource endpoint. Hanya WRITE_ENDPOINT yang didukung.
  • TARGET_INSTANCE_NAME: nama resource lengkap instance AlloyDB untuk PostgreSQL yang dituju oleh endpoint. Jalur resource lengkap untuk instance memiliki format berikut: projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.

Menghubungkan ke instance menggunakan endpoint

Untuk terhubung ke instance AlloyDB menggunakan endpoint, Anda harus terlebih dahulu mendapatkan nama DNS yang dibuat secara otomatis dan terkait dengan endpoint.

Mendapatkan nama DNS

Anda dapat melihat nama DNS endpoint menggunakan Google Cloud CLI.

Konsol

  1. Di Google Cloud konsol, buka halaman Endpoints.

    Buka Endpoint

  2. Temukan endpoint yang ingin Anda hubungkan dan salin nilai di kolom DNS name.

gcloud

  1. Gunakan perintah gcloud beta alloydb endpoints describe:

    gcloud beta alloydb endpoints describe ENDPOINT_ID \
        --project=PROJECT_ID \
        --region=REGION_ID
    

    Ganti kode berikut:

    • ENDPOINT_ID: ID endpoint
    • PROJECT_ID: ID proyek Google Cloud Anda
    • REGION_ID: ID region tempat endpoint berada
  2. Dalam output perintah, temukan kolom dnsName dan salin nilainya.

Menghubungkan menggunakan psql

Setelah memiliki nama DNS, Anda dapat menggunakannya sebagai host dalam string koneksi atau alat klien. Misalnya, untuk terhubung menggunakan klien psql, jalankan perintah berikut:

psql -h DNS_NAME -U USERNAME -d DATABASE_NAME

Ganti kode berikut:

  • DNS_NAME: nama DNS endpoint
  • USERNAME: pengguna database yang akan terhubung
  • DATABASE_NAME: nama database yang akan dihubungkan

Untuk mengetahui informasi selengkapnya tentang cara menggunakan psql, lihat Menghubungkan menggunakan klien psql.

Memperbarui endpoint

Untuk mengubah instance yang dituju oleh endpoint, seperti setelah operasi pemulihan, gunakan perintah berikut:

Konsol

  1. Di Google Cloud konsol, buka halaman Endpoints.

    Buka Endpoint

  2. Di baris endpoint yang ingin Anda perbarui, klik Actions, lalu pilih Edit.

  3. Di kolom instance target, pilih instance utama baru yang harus dituju oleh endpoint ini.

  4. Klik Update.

gcloud

gcloud beta alloydb endpoints update ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --target-instances=NEW_TARGET_INSTANCE_NAME

Ganti kode berikut:

  • ENDPOINT_ID: ID endpoint yang akan diupdate
  • PROJECT_ID: ID proyek Google Cloud Anda
  • REGION_ID: ID region tempat endpoint berada
  • NEW_TARGET_INSTANCE_NAME: nama resource lengkap instance target baru

Mencantumkan endpoint

Untuk mencantumkan semua endpoint dalam project dan region tertentu, gunakan perintah berikut:

Konsol

  1. Di Google Cloud konsol, buka halaman Endpoints.

    Buka Endpoint

    Halaman ini mencantumkan semua endpoint dalam project saat ini.

gcloud

gcloud beta alloydb endpoints list --project=PROJECT_ID \
    --region=REGION_ID

Ganti kode berikut:

  • PROJECT_ID: ID proyek Google Cloud Anda
  • REGION_ID: ID region tempat endpoint berada

Melihat detail endpoint

Untuk melihat detail endpoint tertentu, gunakan perintah Google Cloud CLI berikut:

gcloud

gcloud beta alloydb endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Ganti kode berikut:

  • ENDPOINT_ID: ID endpoint yang akan dijelaskan
  • PROJECT_ID: ID proyek Google Cloud Anda
  • REGION_ID: ID region tempat endpoint berada

Di Google Cloud konsol, Anda dapat melihat detail endpoint di halaman Endpoints.

Menghapus endpoint

Untuk menghapus endpoint, gunakan perintah berikut:

Konsol

  1. Di Google Cloud konsol, buka halaman Endpoints.

    Buka Endpoint

  2. Di baris endpoint yang ingin Anda hapus, klik Actions, lalu pilih Delete.

  3. Untuk mengonfirmasi, ketik ID endpoint, lalu klik Delete.

gcloud

gcloud beta alloydb endpoints delete ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Ganti kode berikut:

  • ENDPOINT_ID: ID endpoint yang akan dihapus
  • PROJECT_ID: ID proyek Google Cloud Anda
  • REGION_ID: ID region tempat endpoint berada

Perilaku endpoint tulis selama pengalihan atau failover lintas region

Meskipun nama DNS endpoint diakses ke IP instance tertentu saat pembuatan, endpoint ini bersifat dinamis. Jika terjadi aktivitas replikasi lintas region, seperti pengalihan atau failover lintas region (Pratinjau), endpoint tulis AlloyDB memastikan konektivitas berkelanjutan tanpa intervensi manual. Saat cluster sekunder dipromosikan untuk menjadi cluster utama baru, endpoint akan otomatis memperbarui data DNS-nya untuk mengarah ke instance utama baru. Perilaku ini menghilangkan konfigurasi manual string koneksi aplikasi, sehingga mengurangi kompleksitas operasional secara signifikan dan meminimalkan waktu nonaktif untuk memenuhi target waktu pemulihan (RTO).

Setelah operasi dan propagasi DNS selesai, aplikasi Anda dapat terhubung kembali ke instance utama baru menggunakan nama DNS endpoint yang sama.

Mencegah penulisan yang bertentangan selama failover

Menggunakan endpoint tulis selama failover lintas region membantu mencegah penulisan yang bertentangan dengan otomatis mengalihkan traffic tulis baru dari cluster utama asli ke cluster utama baru. Untuk mengetahui informasi selengkapnya tentang perilaku endpoint tulis selama failover, lihat Menggunakan endpoint tulis untuk menghindari split-brain.

Langkah berikutnya