Mengelola koneksi database dengan endpoint tulis

Untuk memisahkan aplikasi Anda dari alamat IP atau Uniform Resource Identifier (URI) tertentu dari instance utama AlloyDB untuk PostgreSQL selama peralihan, failover lintas region, pemulihan cadangan, atau migrasi, Anda dapat mengonfigurasi endpoint tulis.

Endpoint adalah resource AlloyDB yang menyediakan nama Domain Name System (DNS) yang stabil yang dapat digunakan aplikasi Anda untuk terhubung ke instance AlloyDB. Abstraksi ini menyederhanakan pengelolaan koneksi selama peristiwa operasional—misalnya, disaster recovery, pemulihan cadangan, atau migrasi—karena Anda dapat mengalihkan nama DNS endpoint ke instance yang berbeda tanpa mengubah konfigurasi aplikasi.

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

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

Manfaat menggunakan endpoint

Penggunaan endpoint tulis memberikan manfaat berikut:

  • Pemulihan dari bencana (disaster recovery) 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 batas waktu pemulihan (RTO).
  • Pemulihan cadangan yang disederhanakan: Saat Anda memulihkan instance dari cadangan, AlloyDB akan membuat instance baru dengan alamat IP baru. Anda dapat mengupdate endpoint agar mengarah ke instance yang baru dipulihkan. Kemampuan 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 yang 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 simultan, atau operasi update dan penghapusan) 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 sudah memiliki instance AlloyDB yang akan berfungsi sebagai target untuk endpoint.
  4. Untuk mendapatkan izin yang diperlukan untuk mengelola endpoint, minta administrator untuk memberi Anda peran Identity and Access Management (IAM) AlloyDB Admin (roles/alloydb.admin) di 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 konsol Google Cloud , 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 yang terkait dengan endpoint tersebut.

Mendapatkan nama DNS

Anda dapat melihat nama DNS endpoint menggunakan Google Cloud CLI.

Konsol

  1. Di konsol Google Cloud , buka halaman Endpoints.

    Buka Endpoint

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

gcloud

  1. Guakan 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: Project ID Google Cloud Anda
    • REGION_ID: ID region tempat endpoint berada
  2. Di 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 dihubungkan
  • DATABASE_NAME: nama database yang akan dihubungkan

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

Memperbarui endpoint

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

Konsol

  1. Di konsol Google Cloud , 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 ditunjuk 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: Project ID 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 di project dan region tertentu, gunakan perintah berikut:

Konsol

  1. Di konsol Google Cloud , 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: Project ID 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 dideskripsikan
  • PROJECT_ID: Project ID Google Cloud Anda
  • REGION_ID: ID region tempat endpoint berada

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

Menghapus endpoint

Untuk menghapus endpoint, gunakan perintah berikut:

Konsol

  1. Di konsol Google Cloud , 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: Project ID Google Cloud Anda
  • REGION_ID: ID region tempat endpoint berada

Menulis perilaku endpoint selama peralihan atau failover lintas region

Meskipun nama DNS endpoint di-resolve 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 mempertahankan konektivitas berkelanjutan tanpa intervensi manual. Saat cluster sekunder dipromosikan menjadi cluster utama baru, endpoint akan otomatis memperbarui data DNS-nya untuk mengarah ke instance utama baru. Perilaku ini menghilangkan konfigurasi ulang manual string koneksi aplikasi, sehingga mengurangi kompleksitas operasional secara signifikan dan meminimalkan periode nonaktif untuk memenuhi batas waktu pemulihan (RTO).

Setelah operasi dan penerapan 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 konflik penulisan dengan mengarahkan traffic tulis baru secara otomatis dari cluster utama asli ke cluster baru. Untuk mengetahui informasi selengkapnya tentang perilaku endpoint tulis selama failover, lihat Menggunakan endpoint tulis untuk menghindari split-brain.

Langkah berikutnya