Contoh konfigurasi replikasi

Halaman ini menjelaskan beberapa kasus penggunaan umum untuk replikasi Bigtable dan menampilkan setelan yang dapat Anda gunakan untuk mendukung kasus penggunaan ini.

Halaman ini juga menjelaskan cara menentukan setelan yang akan digunakan untuk kasus penggunaan lainnya.

Sebelum membaca halaman ini, Anda harus sudah memahami ringkasan replikasi Bigtable.

Sebelum menambahkan cluster ke instance, Anda harus mengetahui batasan yang berlaku saat mengubah kebijakan pembersihan sampah pada tabel yang direplikasi.

Pada umumnya, aktifkan penskalaan otomatis untuk cluster instance Anda. Penskalaan otomatis memungkinkan Bigtable otomatis menambahkan dan menghapus node ke cluster berdasarkan beban kerja.

Jika Anda memilih alokasi node manual, sediakan node yang cukup di setiap cluster dalam instance untuk memastikan bahwa setiap cluster dapat menangani replikasi selain beban yang diterima dari aplikasi. Jika cluster tidak memiliki node yang memadai, penundaan replikasi dapat meningkat, cluster dapat mengalami masalah performa karena penumpukan memori, dan operasi tulis ke cluster lain dalam instance mungkin ditolak.

Contoh dalam dokumen ini menjelaskan cara membuat instance, tetapi Anda juga dapat menambahkan cluster ke instance yang ada.

Mengisolasi workload analisis batch dari aplikasi lain

Jika Anda menggunakan satu cluster untuk menjalankan tugas analisis batch yang melakukan banyak pembacaan besar bersama aplikasi yang melakukan campuran pembacaan dan penulisan, tugas batch besar dapat memperlambat proses bagi pengguna aplikasi. Dengan replikasi, Anda dapat menggunakan profil aplikasi dengan pemilihan rute cluster tunggal untuk merutekan tugas analisis batch dan traffic aplikasi ke cluster yang berbeda, sehingga tugas batch tidak memengaruhi pengguna aplikasi Anda.

Untuk mengisolasi dua beban kerja:

  1. Buat instance dengan dua cluster.

  2. Buat dua profil aplikasi, satu bernama live-traffic dan satu lagi bernama batch-analytics.

    Jika ID cluster Anda adalah cluster-a dan cluster-b, profil aplikasi live-traffic harus merutekan permintaan ke cluster-a dan profil aplikasi batch-analytics harus merutekan permintaan ke cluster-b. Konfigurasi ini memberikan konsistensi baca-tulis untuk aplikasi yang menggunakan profil aplikasi yang sama, tetapi tidak untuk aplikasi yang menggunakan profil aplikasi yang berbeda.

    Anda dapat mengaktifkan transaksi baris tunggal di profil aplikasi live-traffic jika diperlukan. Tidak perlu mengaktifkan transaksi baris tunggal di profil aplikasi batch-analytics, dengan asumsi bahwa Anda hanya akan menggunakan profil aplikasi ini untuk operasi baca.

  3. Gunakan profil aplikasi live-traffic untuk menjalankan beban kerja traffic live.

  4. Saat workload traffic langsung berjalan, gunakan profil aplikasi batch-analytics untuk menjalankan workload batch hanya baca.

Untuk mengisolasi dua workload yang lebih kecil dari satu workload yang lebih besar:

  1. Buat instance dengan tiga cluster.

    Langkah-langkah ini mengasumsikan bahwa cluster Anda menggunakan ID cluster-a, cluster-b, dan cluster-c.

  2. Buat profil aplikasi berikut:

    • live-traffic-app-a: Pemilihan rute cluster tunggal dari aplikasi Anda ke cluster-a
    • live-traffic-app-b: Pemilihan rute cluster tunggal dari aplikasi Anda ke cluster-b
    • batch-analytics: Pemilihan rute satu cluster dari tugas analisis batch ke cluster-c
  3. Gunakan profil aplikasi traffic langsung untuk menjalankan workload traffic langsung.

  4. Saat workload traffic langsung berjalan, gunakan profil aplikasi batch-analytics untuk menjalankan workload batch hanya baca.

Membuat ketersediaan tinggi (HA)

Jika instance hanya memiliki satu cluster, ketahanan dan ketersediaan data Anda terbatas pada zona tempat cluster tersebut berada. Replikasi dapat meningkatkan ketahanan dan ketersediaan dengan menyimpan salinan data Anda yang terpisah di beberapa zona atau region dan secara otomatis melakukan failover antar-cluster jika diperlukan.

Untuk mengonfigurasi instance Anda untuk kasus penggunaan ketersediaan tinggi (HA), buat profil aplikasi baru yang menggunakan perutean multi-cluster, atau perbarui profil aplikasi default untuk menggunakan perutean multi-cluster. Konfigurasi ini memberikan konsistensi pada akhirnya. Anda tidak akan dapat mengaktifkan transaksi baris tunggal karena transaksi baris tunggal dapat menyebabkan konflik data saat Anda menggunakan pemilihan rute multi-cluster.

Konfigurasi untuk meningkatkan ketersediaan meliputi hal berikut.

  • Cluster di tiga region atau lebih (konfigurasi yang direkomendasikan). Konfigurasi yang direkomendasikan untuk HA adalah instance yang memiliki cluster N+2 yang masing-masing berada di region yang berbeda. Misalnya, jika jumlah minimum cluster yang diperlukan untuk menayangkan data adalah 2, Anda memerlukan instance dengan empat cluster untuk mempertahankan HA. Konfigurasi ini memberikan waktu aktif bahkan dalam kasus yang jarang terjadi saat dua region menjadi tidak tersedia. Sebaiknya Anda menyebarkan cluster di beberapa benua.

    Contoh konfigurasi:

    • cluster-a di zona us-central1-a di Iowa
    • cluster-b di zona europe-west1-d di Belgia
    • cluster-c di zona asia-east1-b di Taiwan
  • Dua cluster di region yang sama, tetapi zona yang berbeda. Opsi ini memberikan ketersediaan tinggi dalam ketersediaan region, kemampuan untuk beralih tanpa menimbulkan biaya replikasi lintas region, dan tidak ada peningkatan latensi saat failover. Data Anda di instance Bigtable yang direplikasi tersedia selama zona tempat data direplikasi tersedia.

    Contoh konfigurasi:

    • cluster-a di zona australia-southeast1-a di Sydney
    • cluster-b di zona australia-southeast1-b di Sydney
  • Dua cluster di region yang berbeda. Konfigurasi multi-region ini menyediakan ketersediaan tinggi seperti konfigurasi multi-zona sebelumnya, tetapi data Anda tersedia meskipun Anda tidak dapat terhubung ke salah satu region.

    Anda akan dikenai biaya untuk mereplikasi operasi tulis antar-region.

    Contoh konfigurasi:

    • cluster-a di zona asia-northeast1-c di Tokyo
    • cluster-b di zona asia-east2-b di Hong Kong
  • Dua cluster di region A dan cluster ketiga di region B. Opsi ini membuat data Anda tersedia meskipun Anda tidak dapat terhubung ke salah satu region, dan menyediakan kapasitas tambahan di region A.

    Anda akan dikenai biaya untuk mereplikasi operasi tulis antar-region. Jika Anda menulis ke region A, Anda akan dikenai biaya satu kali karena hanya memiliki satu cluster di region B. Jika Anda menulis ke region B, Anda akan dikenai biaya dua kali karena memiliki dua cluster di region A.

    Contoh konfigurasi:

    • cluster-a di zona europe-west1-b di Belgia
    • cluster-b di zona europe-west1-d di Belgia
    • cluster-c di zona europe-north1-c di Finlandia

Memberikan pencadangan hampir secara real-time

Dalam beberapa kasus—misalnya, jika Anda tidak dapat membaca data yang sudah tidak berlaku—Anda harus selalu merutekan permintaan ke satu cluster. Namun, Anda tetap dapat menggunakan replikasi dengan menangani permintaan dengan satu cluster dan menyimpan cluster lain sebagai pencadangan hampir real-time. Jika cluster penyaluran tidak tersedia, Anda dapat meminimalkan periode nonaktif dengan melakukan failover ke cluster cadangan secara manual.

Untuk mengonfigurasi instance Anda untuk kasus penggunaan ini, buat profil aplikasi yang menggunakan perutean cluster tunggal atau perbarui profil aplikasi default untuk menggunakan perutean cluster tunggal. Cluster yang Anda tentukan di profil aplikasi menangani permintaan masuk. Cluster lain berfungsi sebagai cadangan jika Anda perlu melakukan failover. Pengaturan ini terkadang dikenal sebagai konfigurasi aktif-pasif, dan menyediakan konsistensi kuat dan konsistensi read-your-write. Anda dapat mengaktifkan transaksi baris tunggal di profil aplikasi jika perlu.

Untuk menerapkan konfigurasi ini:

  1. Gunakan profil aplikasi dengan perutean cluster tunggal untuk menjalankan beban kerja.

  2. Gunakan konsol Google Cloud untuk memantau cluster instance dan mengonfirmasi bahwa hanya satu cluster yang menangani permintaan masuk.

    Cluster lain akan tetap menggunakan resource CPU untuk melakukan replikasi dan tugas pemeliharaan lainnya.

  3. Perbarui profil aplikasi agar mengarah ke cluster kedua di instance Anda.

    Anda menerima peringatan tentang hilangnya konsistensi read-your-writes, yang juga berarti Anda kehilangan konsistensi yang kuat.

    Jika mengaktifkan transaksi baris tunggal, Anda juga akan menerima peringatan tentang potensi kehilangan data. Anda akan kehilangan data jika mengirim penulisan yang bertentangan saat failover terjadi.

  4. Lanjutkan memantau instance Anda. Anda akan melihat bahwa cluster kedua menangani permintaan masuk.

Mempertahankan ketersediaan tinggi dan ketahanan regional

Misalnya, Anda memiliki konsentrasi pelanggan di dua wilayah yang berbeda dalam benua. Anda ingin menayangkan setiap konsentrasi pelanggan dengan cluster Bigtable sedekat mungkin dengan pelanggan. Anda ingin data Anda memiliki ketersediaan tinggi dalam setiap region, dan Anda mungkin menginginkan opsi failover jika satu atau beberapa cluster tidak tersedia.

Untuk kasus penggunaan ini, Anda dapat membuat instance dengan dua cluster di region A dan dua cluster di region B. Konfigurasi ini memberikan ketersediaan tinggi meskipun Anda tidak dapat terhubung ke region Google Cloud. Hal ini juga memberikan ketahanan regional karena meskipun zona tidak tersedia, cluster lain di region zona tersebut masih tersedia.

Anda dapat memilih untuk menggunakan perutean multi-cluster atau perutean cluster tunggal untuk kasus penggunaan ini, bergantung pada kebutuhan bisnis Anda.

Untuk mengonfigurasi instance Anda untuk kasus penggunaan ini:

  1. Buat instance Bigtable dengan empat cluster: dua di region A dan dua di region B. Cluster di region yang sama harus berada di zona yang berbeda.

    Contoh konfigurasi:

    • cluster-a di zona asia-south1-a di Mumbai
    • cluster-b di zona asia-south1-c di Mumbai
    • cluster-c di zona asia-northeast1-a di Tokyo
    • cluster-d di zona asia-northeast1-b di Tokyo
  2. Tempatkan server aplikasi di dekat setiap region.

Anda dapat memilih untuk menggunakan perutean multi-cluster atau perutean cluster tunggal untuk kasus penggunaan ini, bergantung pada kebutuhan bisnis Anda. Jika Anda menggunakan pemilihan rute multi-cluster, Bigtable akan menangani kegagalan secara otomatis. Jika menggunakan rute cluster tunggal, Anda menggunakan penilaian Anda sendiri untuk memutuskan kapan harus melakukan failover ke cluster lain.

Opsi pemilihan rute cluster tunggal

Anda dapat menggunakan perutean cluster tunggal untuk kasus penggunaan ini jika tidak ingin cluster Bigtable otomatis melakukan failover jika zona atau region tidak tersedia. Opsi ini adalah pilihan yang tepat jika Anda ingin mengelola biaya dan latensi yang mungkin terjadi jika Bigtable mulai merutekan traffic ke dan dari region yang jauh, atau jika Anda lebih suka membuat keputusan failover berdasarkan penilaian atau aturan bisnis Anda sendiri.

Untuk menerapkan konfigurasi ini, buat minimal satu profil aplikasi yang menggunakan perutean cluster tunggal untuk setiap aplikasi yang mengirim permintaan ke instance. Anda dapat merutekan profil aplikasi ke cluster mana pun di instance Bigtable. Misalnya, jika Anda memiliki tiga aplikasi yang berjalan di Mumbai dan enam di Tokyo, Anda dapat mengonfigurasi satu profil aplikasi untuk aplikasi Mumbai agar dirutekan ke asia-south1-a dan dua yang dirutekan ke asia-south1-c. Untuk aplikasi Tokyo, konfigurasikan tiga profil aplikasi yang dirutekan ke asia-northeast1-a dan tiga yang dirutekan ke asia-northeast1-b.

Dengan konfigurasi ini, jika satu atau beberapa cluster tidak tersedia, Anda dapat melakukan failover manual atau memilih untuk membiarkan data Anda tidak tersedia untuk sementara di zona tersebut hingga zona tersedia lagi.

Opsi pemilihan rute multi-cluster

Jika Anda menerapkan kasus penggunaan ini dan ingin Bigtable secara otomatis melakukan failover ke satu region jika aplikasi Anda tidak dapat menjangkau region lainnya, gunakan pemilihan rute multi-cluster.

Untuk menerapkan konfigurasi ini, buat profil aplikasi baru yang menggunakan perutean multi-cluster untuk setiap aplikasi, atau perbarui profil aplikasi default untuk menggunakan perutean multi-cluster.

Konfigurasi ini memberikan konsistensi pada akhirnya. Jika suatu region tidak tersedia, permintaan Bigtable akan otomatis dikirim ke region lain. Jika hal ini terjadi, Anda akan dikenai biaya untuk traffic jaringan ke region lain, dan aplikasi Anda mungkin mengalami latensi yang lebih tinggi karena jarak yang lebih jauh.

Menyimpan data di dekat pengguna

Jika memiliki pengguna di seluruh dunia, Anda dapat mengurangi latensi dengan menjalankan aplikasi di dekat pengguna dan menempatkan data sedekat mungkin dengan aplikasi Anda. Dengan Bigtable, Anda dapat membuat instance yang memiliki cluster di beberapa region Google Cloud, dan data Anda akan otomatis direplikasi di setiap region.

Untuk kasus penggunaan ini, gunakan profil aplikasi dengan perutean cluster tunggal. Pemilihan rute multi-cluster tidak diinginkan untuk kasus penggunaan ini karena jarak antar-cluster. Jika cluster tidak tersedia dan profil aplikasi multi-clusternya otomatis mengalihkan traffic ke jarak yang jauh, aplikasi Anda mungkin mengalami latensi yang tidak dapat diterima dan menimbulkan biaya jaringan tambahan yang tidak terduga.

Untuk mengonfigurasi instance Anda untuk kasus penggunaan ini:

  1. Buat instance dengan cluster di tiga region geografis yang berbeda, seperti Amerika Serikat, Eropa, dan Asia.

  2. Tempatkan server aplikasi di dekat setiap region.

  3. Buat profil aplikasi yang mirip dengan berikut ini:

    • clickstream-us: Pemilihan rute cluster tunggal ke cluster di Amerika Serikat
    • clickstream-eu: Pemilihan rute cluster tunggal ke cluster di Eropa
    • clickstream-asia: Pemilihan rute cluster tunggal ke cluster di Asia

Dalam penyiapan ini, aplikasi Anda menggunakan profil aplikasi untuk cluster terdekat. Penulisan ke cluster mana pun otomatis direplikasi ke dua cluster lainnya.

Kasus penggunaan lainnya

Jika Anda memiliki kasus penggunaan yang tidak dijelaskan di halaman ini, gunakan pertanyaan berikut untuk membantu Anda memutuskan cara mengonfigurasi profil aplikasi:

Langkah selanjutnya