Autoscaling

Halaman ini menjelaskan cara kerja penskalaan otomatis dan membantu menentukan apakah penskalaan otomatis tepat untuk kasus penggunaan Anda. Sebelum membaca halaman ini, Anda harus sudah memahami Ringkasan Bigtable dan Instance, cluster, dan node.

Di Bigtable , instance adalah container untuk cluster, yang merupakan resource khusus lokasi yang menangani permintaan. Setiap cluster memiliki satu atau beberapa node, yang merupakan resource komputasi yang digunakan untuk mengelola data Anda. Saat membuat cluster dalam sebuah instance, Anda dapat memilih alokasi node manual atau autoscaling.

Dengan alokasi node manual, jumlah node dalam cluster tetap konstan hingga Anda mengubahnya. Jika penskalaan otomatis diaktifkan, Bigtable akan terus memantau cluster dan menyesuaikan jumlah node dalam cluster secara otomatis jika diperlukan. Penskalaan otomatis berfungsi pada cluster HDD dan SSD, di semua region Bigtable.

Anda dapat mengonfigurasi penskalaan otomatis di Konsol Google Cloud, menggunakan gcloud, atau menggunakan library klien Cloud Bigtable untuk Java.

Kapan harus menggunakan penskalaan otomatis

Manfaat penskalaan otomatis meliputi hal berikut:

  • Biaya - Penskalaan otomatis dapat membantu Anda mengoptimalkan biaya karena Bigtable mengurangi jumlah node di cluster Anda jika memungkinkan. Tindakan ini dapat membantu Anda menghindari penyediaan yang berlebihan.
  • Performa - Penskalaan otomatis memungkinkan Bigtable menambahkan node ke cluster secara otomatis saat beban kerja berubah atau terdapat peningkatan persyaratan penyimpanan data. Hal ini membantu mempertahankan tujuan performa beban kerja dengan memastikan bahwa cluster memiliki node yang cukup untuk memenuhi persyaratan penggunaan dan penyimpanan CPU target.
  • Otomatisasi - Penskalaan otomatis mengurangi kompleksitas pengelolaan. Anda tidak perlu memantau dan menskalakan ukuran cluster secara manual atau menulis aplikasi untuk melakukan tugas ini, karena layanan Bigtable akan menanganinya untuk Anda.

Penskalaan otomatis sering kali menjadi pilihan terbaik untuk situasi berikut:

  • Pola lalu lintas harian yang stabil seperti yang dihasilkan oleh layanan belanja online
  • Aplikasi baru yang mengharapkan pertumbuhan organik
  • Beban kerja yang baru untuk Bigtable

Penskalaan otomatis mungkin tidak berfungsi dengan baik untuk jenis beban kerja berikut, karena meskipun Bigtable menambahkan node dengan cepat saat traffic meningkat, perlu waktu untuk menyeimbangkan node tambahan.

  • Lalu lintas ramai
  • Workload batch tiba-tiba

Jika lonjakan penggunaan dapat diprediksi atau dijadwalkan secara rutin, Anda mungkin dapat menggunakan penskalaan otomatis dan menyesuaikan setelan sebelum burst yang direncanakan. Lihat Penundaan saat node menyeimbangkan kembali untuk mengetahui detailnya.

Cara kerja penskalaan otomatis

Penskalaan otomatis adalah proses penskalaan atau perubahan ukuran cluster secara otomatis dengan menambahkan atau menghapus node. Saat penskalaan otomatis diaktifkan, Bigtable akan otomatis menyesuaikan ukuran cluster untuk Anda. Saat beban kerja atau kebutuhan penyimpanan cluster Anda berfluktuasi, Bigtable akan meningkatkan skala, menambahkan node ke cluster, atau menurunkan skala, sehingga menghapus node dari cluster.

Penskalaan otomatis Bigtable menentukan jumlah node yang diperlukan, berdasarkan dimensi berikut:

  • Target penggunaan CPU
  • Target penggunaan penyimpanan
  • Jumlah minimum node
  • Jumlah node maksimum

Setiap dimensi penskalaan menghasilkan jumlah node yang direkomendasikan, dan Bigtable otomatis menggunakan jumlah node tertinggi. Ini berarti, misalnya, jika cluster Anda memerlukan 10 node untuk memenuhi target penggunaan penyimpanan, tetapi 12 node untuk memenuhi target penggunaan CPU, Bigtable menskalakan cluster menjadi 12 node.

Seiring dengan perubahan jumlah node, Bigtable terus mengoptimalkan penyimpanan, dengan menyeimbangkan kembali data di seluruh node, untuk memastikan traffic tersebar secara merata dan tidak ada node yang kelebihan beban.

Setelah skala cluster ditingkatkan, Bigtable secara otomatis menyeimbangkan kembali node di cluster Anda untuk mendapatkan performa yang optimal. Semua permintaan akan terus menjangkau cluster saat penskalaan dan penyeimbangan ulang sedang berlangsung. Lihat Pembatasan penskalaan untuk mengetahui informasi selengkapnya.

Jika skala cluster telah mencapai jumlah maksimum node dan target pemanfaatan CPU terlampaui, permintaan mungkin memiliki latensi tinggi atau gagal. Jika cluster telah meningkatkan skala hingga jumlah maksimum node-nya dan batas pemanfaatan penyimpanan terlampaui, permintaan tulis akan gagal. Lihat Penyimpanan per node untuk detail selengkapnya tentang batas penyimpanan.

Ketika skala cluster diturunkan, node dihapus pada kecepatan yang lebih lambat daripada saat meningkatkan skala, untuk mencegah dampak pada latensi. Lihat batasan penskalaan untuk detail selengkapnya.

Parameter penskalaan otomatis

Saat membuat atau mengedit cluster dan memilih penskalaan otomatis, Anda akan menentukan nilai untuk target penggunaan CPU, node min, dan node maksimum. Anda dapat mengonfigurasi target penggunaan penyimpanan atau membiarkannya secara default, yaitu 50% (2,5 TB untuk SSD dan 8 TB untuk HDD).

Parameter Deskripsi
Target penggunaan CPU

Persentase kapasitas CPU cluster. Dapat berkisar dari 10% sampai 80%. Saat penggunaan CPU cluster melebihi target yang telah ditetapkan, Bigtable akan segera menambahkan node ke cluster tersebut. Jika penggunaan CPU jauh lebih rendah daripada target, Bigtable akan menghapus node. Untuk panduan, lihat Menentukan target penggunaan CPU.

Jumlah minimum node

Jumlah node terendah yang akan dijadikan skala cluster oleh Bigtable. Nilai ini harus lebih besar dari nol dan tidak boleh lebih rendah dari 10% dari nilai yang Anda tetapkan untuk jumlah maksimum node. Misalnya, jika jumlah maksimum node adalah 40, jumlah minimum node setidaknya 4. Persyaratan 10% adalah batas mutlak. Untuk panduan, lihat Menentukan jumlah minimum node.

Jumlah maksimum node

Jumlah node tertinggi yang ingin Anda izinkan agar skala cluster dapat ditingkatkan. Nilai ini harus lebih besar dari nol dan sama dengan atau lebih besar dari jumlah minimum node. Nilainya tidak boleh lebih dari 10 kali jumlah yang Anda pilih untuk jumlah minimum node. Persyaratan 10x ini adalah batas yang ketat. Untuk panduan, lihat Menentukan jumlah maksimum node.

Target pemanfaatan penyimpanan

Jumlah maksimum terabyte per node yang dapat Anda simpan sebelum Bigtable meningkatkan skala. Target ini memastikan Anda selalu memiliki node yang cukup untuk menangani fluktuasi jumlah data yang disimpan. Untuk panduan, lihat Menentukan target penggunaan penyimpanan.

Mengonfigurasi penskalaan otomatis

Bagian ini menjelaskan cara memilih parameter penskalaan otomatis. Setelah Anda menetapkan nilai awal, pantau cluster Anda dan sesuaikan jumlahnya jika perlu.

Menentukan target penggunaan CPU

Tetapkan target penggunaan CPU berdasarkan beban kerja unik Anda. Target optimal untuk cluster Anda bergantung pada persyaratan latensi dan throughput beban kerja Anda. Baca penggunaan CPU untuk mendapatkan rekomendasi, dan lihat Peralihan antara throughput tinggi dan latensi rendah untuk memahami alasan di balik rekomendasi tersebut.

Secara umum, jika Anda mengamati latensi tinggi yang tidak dapat diterima, Anda harus menurunkan target penggunaan CPU.

Menentukan target penggunaan penyimpanan

Jika aplikasi Anda sensitif terhadap latensi, pertahankan pemanfaatan penyimpanan di bawah 60%. Jika aplikasi Anda tidak sensitif terhadap latensi, Anda dapat memilih target pemanfaatan penyimpanan sebesar 70% atau lebih. Untuk mengetahui detailnya, lihat Merencanakan Kapasitas Bigtable.

Untuk penskalaan otomatis, penggunaan penyimpanan dinyatakan sebagai jumlah byte penyimpanan per node, bukan persentase. Target penggunaan penyimpanan ditentukan per node, tetapi diterapkan ke seluruh cluster. Batas kapasitas untuk node adalah 5 TB per node untuk penyimpanan SSD dan 16 TB per node untuk penyimpanan HDD.

Tabel berikut menunjukkan jumlah target untuk persentase target penggunaan penyimpanan standar. Konsol Google Cloud menerima nilai dalam TB per node, dan library klien gcloud CLI, API, serta Cloud Bigtable menerima nilai bilangan bulat dalam GiB per node.

Persentase SSD HDD
80% 4 TB atau 4.096 GiB 12,8 TB atau 13.107 GiB
70% 3,5 TB atau 3.584 GiB 11,2 TB atau 11.468 GiB
60% 3 TB atau 3.072 GiB 9,6 TB atau 9.830 GiB
50% 2,5 TB atau 2.560 GiB 8 TB atau 8.192 GiB

Menentukan jumlah maksimum node

Nilai yang Anda pilih sebagai jumlah maksimum node harus merupakan jumlah node yang diperlukan cluster untuk menangani traffic terberat workload Anda, meskipun Anda tidak berharap akan mencapai volume tersebut sepanjang waktu. Bigtable tidak pernah meningkatkan skala hingga jumlah node yang melebihi yang dibutuhkan. Anda juga dapat menganggap jumlah ini sebagai jumlah node tertinggi yang bersedia Anda bayar. Lihat Parameter penskalaan otomatis untuk mengetahui detail tentang nilai yang diterima.

Jumlah maksimum harus memungkinkan target penggunaan CPU yang ditetapkan oleh Anda dan target pemanfaatan penyimpanan yang ditetapkan oleh Bigtable.

Jika Anda mengubah cluster dari alokasi manual ke penskalaan otomatis, cari jumlah node tertinggi yang dimiliki cluster selama sekitar sebulan terakhir. Jumlah maksimum penskalaan otomatis harus minimal sebesar angka tersebut.

Jika Anda mengaktifkan penskalaan otomatis untuk cluster baru di instance yang ada, gunakan metrik dari cluster lain dalam instance tersebut sebagai panduan Anda.

Jika memiliki beban kerja baru dan tidak yakin bagaimana workload tersebut akan berkembang, Anda dapat memperkirakan jumlah node yang diperlukan untuk memenuhi target pemanfaatan penyimpanan bawaan, lalu menyesuaikannya di lain waktu.

Agar mendapatkan angka ini, perkirakan jumlah data yang ingin Anda simpan di cluster, lalu bagi jumlah tersebut dengan target pemanfaatan penyimpanan untuk jenis penyimpanan yang Anda gunakan.

Misalnya, jika menyimpan 10 TB di cluster SSD, Anda dapat membagi 10 TB dengan 2, 5 TB.Jumlah ini merupakan target penggunaan penyimpanan yang ditetapkan secara default untuk cluster SSD yang menggunakan penskalaan otomatis. Hasilnya adalah 4, yang berarti 4 adalah jumlah node yang dapat menangani jumlah data tersebut, dan maksimum harus berupa angka yang lebih tinggi dari itu.

Dengan menggunakan formula yang sama, contoh berikut menunjukkan jumlah node yang mungkin Anda perlukan untuk beberapa jumlah penyimpanan sampel:

Penyimpanan SSD per cluster Jumlah maksimum node terkecil
25 TB 10
35 TB 14
50 TB 20

Setelah cluster aktif dan berjalan dengan penskalaan otomatis yang diaktifkan, pantau cluster dan pastikan nilai yang Anda pilih untuk jumlah maksimum node setidaknya setinggi recommended number of nodes for CPU target dan recommended number of nodes for storage target.

Menentukan jumlah minimum node

Anda dapat menetapkan nilai minimum serendah 1 untuk memastikan Bigtable dapat diperkecil ke ukuran terkecil dan paling hemat biaya jika memungkinkan. Cluster tidak pernah menjadi terlalu kecil karena Bigtable secara otomatis mencegah jumlah node turun di bawah jumlah minimum yang diperlukan untuk mempertahankan target pemakaian CPU dan penyimpanan. Lihat Parameter penskalaan otomatis untuk mengetahui detail tentang nilai yang diterima.

Namun, dalam banyak kasus, Anda perlu menetapkan nilai ini lebih dari satu. Pilih jumlah yang lebih tinggi atau naikkan jumlah minimum node untuk situasi berikut:

  • Anda memiliki acara mendatang, seperti Cyber Monday, saat Anda memperkirakan traffic akan meningkat untuk sementara, dan ingin memastikan bahwa Anda memiliki kapasitas yang cukup.
  • Aplikasi Anda mengirimkan lonjakan traffic. Ketika node baru ditambahkan, Bigtable secara otomatis menyeimbangkan kembali ke node baru. Karena proses ini dapat memerlukan waktu beberapa menit, sebaiknya gunakan pendekatan konservatif dan pilih nilai minimum yang lebih tinggi agar cluster Anda dapat mengakomodasi lonjakan dengan lancar.
  • Anda meningkatkan jumlah maksimum node. Jumlah minimum harus selalu sepuluh persen atau kurang dari jumlah maksimum node. Misalnya, jika menetapkan nilai maksimum ke 30, Anda harus menetapkan nilai minimum setidaknya ke 3.

Jika Anda meningkatkan nilai untuk jumlah minimum node cluster, Bigtable akan segera mencoba menskalakan cluster ke nilai minimum baru. Namun, batasan standar berlaku; jika suatu zona kehabisan node, node tambahan tidak akan disediakan untuk memenuhi jumlah minimum yang dikonfigurasi. Bigtable akan terus berupaya menambahkan node dan membuat entri log audit untuk setiap upaya yang gagal hingga berhasil menskalakan cluster ke jumlah minimum node yang baru. Bigtable tidak mengubah nilai yang dikonfigurasi dalam situasi ini. Akibatnya, Anda mungkin mengamati bahwa jumlah node cluster kurang dari minimum hingga penskalaan selesai.

Menyesuaikan setelan

Perhatikan penggunaan node dan sesuaikan setelan jika perlu, terutama setelah Anda mengaktifkan penskalaan otomatis pertama kali.

Akun untuk replikasi

Dalam instance yang menggunakan replikasi, setelan dan aktivitas penskalaan otomatis setiap cluster benar-benar independen dari setelan dan aktivitas untuk cluster lain di instance. Anda harus mengonfigurasi mode penskalaan untuk setiap cluster dalam instance.

Secara umum, untuk instance yang direplikasi, Anda harus mengaktifkan penskalaan otomatis untuk setiap cluster dalam instance. Konfigurasi penskalaan otomatis Anda akan sering sama untuk setiap cluster dalam instance, tetapi mungkin berbeda bergantung pada kasus penggunaan, workload, dan persyaratan performa untuk setiap cluster.

Karena cluster dalam instance yang direplikasi melakukan beberapa tugas tambahan untuk mengelola replikasi, Anda harus memilih jumlah maksimum node yang lebih tinggi daripada memilih untuk instance cluster tunggal. Untuk mempelajari lebih lanjut, lihat Replikasi dan performa.

Kontrol akses

Untuk mengonfigurasi penskalaan otomatis, Anda harus menjadi akun utama dalam peran yang memiliki izin create dan update untuk cluster dan instance yang Anda konfigurasi.

Monitoring

Bigtable menyediakan beberapa metrik untuk membantu Anda memahami cara kerja penskalaan otomatis Bigtable saat meningkatkan dan menurunkan skala untuk memenuhi persyaratan beban kerja. Metrik ini juga dapat membantu mengukur apakah setelan Anda optimal untuk memenuhi persyaratan workload dan biaya bisnis Anda. Misalnya, jika Anda mengamati bahwa jumlah node untuk cluster sering kali mendekati jumlah maksimum node, Anda dapat mempertimbangkan untuk menaikkan jumlah maksimum. Untuk mempelajari lebih lanjut cara memantau resource Bigtable Anda, lihat Memantau instance.

Metrik berikut ditampilkan dalam grafik di halaman ringkasan cluster di Konsol Google Cloud. Anda juga dapat melihat metrik ini menggunakan Cloud Monitoring.

  • bigtable.googleapis.com/cluster/autoscaling/min_node_count
  • bigtable.googleapis.com/cluster/autoscaling/max_node_count
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpu
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage

Logging

Bigtable memunculkan log audit peristiwa sistem setiap kali melakukan penskalaan cluster. Entri log tersebut mirip dengan yang berikut ini:

Grew from 9 to 10 nodes to maintain CPU utilization at 60%.

Anda dapat melihat log peristiwa sistem penskalaan otomatis di halaman ringkasan cluster Bigtable di Konsol Google Cloud. Anda juga dapat melihatnya menggunakan Logs Explorer:

  1. Buka Logs Explorer:

    Buka Logs Explorer

    Pilih project Google Cloud yang sesuai.

  2. Pada kolom Query, masukkan perintah berikut:

    resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com"
    resource.labels.method="AutoscaleCluster"
    
  3. Klik Jalankan kueri.

    Panel Query results menampilkan log dalam satu jam terakhir.

Untuk mempelajari lebih lanjut cara melihat log, lihat Cloud Logging.

Langkah selanjutnya