Membuat kontainer dan database Azure Cosmos DB dengan skala otomatis

Azure Cosmos DB memungkinkan Anda mengonfigurasi throughput standar (manual) atau skala otomatis untuk database dan kontainer. Skala otomatis menyesuaikan throughput (RU/dtk) agar sesuai dengan beban kerja Anda, memastikan performa tinggi dan efisiensi biaya.

Skenario penggunaan

Skala otomatis untuk throughput yang disediakan sangat ideal untuk beban kerja yang penting bagi misi dengan pola lalu lintas yang variabel atau tidak dapat diprediksi, serta memerlukan perjanjian tingkat layanan (SLA) untuk kinerja dan skalabilitas yang tinggi. Skala otomatis secara default menskalakan beban kerja berdasarkan wilayah dan partisi yang paling aktif. Untuk beban kerja nonuniform yang memiliki pola beban kerja yang berbeda di seluruh wilayah dan partisi, penskalaan ini dapat menyebabkan peningkatan skala yang tidak perlu. Penskalaan dinamis atau autoskala dinamis adalah peningkatan pada penyediaan skala otomatis secara keseluruhan yang membantu penskalaan beban kerja yang tidak seragam secara independen berdasarkan penggunaan, di tingkat per wilayah dan per partisi. Penskalaan dinamis membantu menghemat biaya jika Anda sering mengalami partisi panas atau memiliki beberapa wilayah.

Keuntungan skala otomatis

Database dan kontainer Azure Cosmos DB yang dikonfigurasi dengan throughput terskala otomatis memiliki manfaat berikut:

  • Sederhana: Autoscale menyederhanakan pengelolaan RU per detik dengan menghilangkan kebutuhan akan pembuatan skrip kustom atau penskalaan manual.

  • Dapat diskalakan: Database dan kontainer secara otomatis menskalakan throughput yang disediakan sesuai kebutuhan. Tidak ada gangguan pada koneksi klien, aplikasi, atau SLA Azure Cosmos DB.

  • Efisiensi biaya: Skala otomatis mengoptimalkan RU/s dan biaya dengan menurunkan skala saat tidak digunakan. Anda membayar hanya sesuai kebutuhan sumber daya yang diperlukan oleh beban kerja Anda per jam. Jika Anda menggunakan penuh Tmax selama 66% atau lebih sedikit jam dalam sebulan, skala otomatis dapat menghemat biaya. Penambahan skala dinamis juga memungkinkan wilayah sekunder untuk ketersediaan tinggi menjadi lebih hemat biaya, karena setiap wilayah dan partisi menskalakan secara independen berdasarkan penggunaan. Pelajari selengkapnya dalam artikel cara memilih antara throughput standar (manual) dan skala otomatis yang disediakan .

  • Sangat tersedia: Database dan kontainer dengan skala otomatis menggunakan backend Azure Cosmos DB yang didistribusikan secara global dan toleran terhadap kesalahan untuk memastikan durabilitas dan ketersediaan data.

Kasus penggunaan skala otomatis

Kasus penggunaan untuk skala otomatis meliputi:

  • Variabel atau Beban Kerja yang tidak dapat diprediksi: Ketika beban kerja Anda memiliki lonjakan penggunaan variabel atau tidak dapat diprediksi, skala otomatis membantu dengan meningkatkan dan menurunkan skala secara otomatis berdasarkan penggunaan. Contohnya termasuk situs web ritel dengan pola lalu lintas musiman, beban kerja IoT dengan lonjakan penggunaan harian, dan aplikasi lini bisnis dengan penggunaan puncak sesekali. Skala otomatis menghilangkan kebutuhan untuk mengalokasikan throughput secara manual untuk kapasitas puncak atau rata-rata.

  • Aplikasi baru: Jika Anda mengembangkan aplikasi baru dan tidak yakin tentang throughput (RU/s) yang diperlukan, skala otomatis mempermudah Anda dalam memulai. Anda dapat memulai dengan titik masuk autoscale 100 - 1000 RU/s, memantau penggunaan, dan menentukan RU/s yang tepat seiring waktu.

  • Aplikasi yang jarang digunakan: Jika Anda memiliki aplikasi yang hanya digunakan selama beberapa jam beberapa kali sehari, minggu, atau bulan—seperti aplikasi volume rendah, situs web, atau blog. Autoscale menyesuaikan kapasitas untuk menghadapi lonjakan penggunaan dan menguranginya saat periode puncak berakhir.

  • Beban kerja pengembangan dan pengujian: Jika Anda atau tim Anda menggunakan database dan kontainer Azure Cosmos DB selama jam kerja, tetapi tidak memerlukannya pada malam atau akhir pekan, skala otomatis membantu menghemat biaya dengan menurunkan skala minimal saat tidak digunakan.

  • Beban/kueri kerja produksi terjadwal: Jika Anda memiliki serangkaian permintaan, operasi, atau kueri terjadwal yang ingin Anda jalankan selama periode menganggur, Anda dapat melakukannya dengan mudah dengan skala otomatis. Saat beban kerja berjalan, throughput secara otomatis meningkat ke nilai yang diperlukan dan kemudian menurun setelahnya.

Membangun solusi kustom untuk masalah ini membutuhkan waktu yang signifikan dan menambahkan kompleksitas ke konfigurasi atau kode aplikasi Anda. Autoscale memungkinkan skenario di atas dan menghilangkan kebutuhan akan penskalaan kapasitas yang kustom atau manual.

Kasus penggunaan penskalaan dinamis

Kasus penggunaan penskalaan dinamis meliputi:

  • Beban kerja database dengan wilayah utama yang berlalu lintas tinggi dan wilayah sekunder pasif untuk pemulihan bencana.
    • Dengan penskalakan dinamis, mencapai ketersediaan tinggi dengan beberapa wilayah lebih hemat biaya. Wilayah sekunder secara independen dan otomatis mengurangi skala ketika tidak aktif. Wilayah sekunder juga secara otomatis meningkatkan kapasitasnya saat menjadi aktif dan saat mengelola replikasi data tulis dari wilayah utama.
  • Beban kerja database banyak wilayah
    • Beban kerja ini sering mengalami distribusi permintaan yang tidak merata di seluruh wilayah karena pertumbuhan dan fluktuasi permintaan alami sepanjang hari. Misalnya, database aktif selama jam kerja di seluruh zona waktu yang didistribusikan secara global.

Cara kerja skala otomatis pada throughput

Saat mengonfigurasi kontainer dan database dengan skala otomatis, Anda menentukan throughput maksimum Tmax yang diperlukan. Azure Cosmos DB menskalakan throughput T sehingga 0.1*Tmax <= T <= Tmax. Misalnya, jika Anda mengatur throughput maksimum menjadi 20.000 RU/detik, throughput bervariasi antara 2000 hingga 20.000 RU/detik. Penskalaan bersifat otomatis dan instan, sehingga Anda dapat mengonsumsi hingga yang disediakan Tmax kapan saja tanpa penundaan.

Anda akan ditagih setiap jam berdasarkan throughput T tertinggi yang dicapai sistem selama jam tersebut. Saat penskalaan dinamis diaktifkan, penskalaan didasarkan pada penggunaan RU/dtk di setiap partisi fisik dan setiap wilayah. Karena setiap partisi dan skala wilayah secara independen, penagihan ini dapat menyebabkan penghematan biaya untuk beban kerja nonuniform, karena peningkatan skala yang tidak perlu dihindari.

Poin masuk untuk throughput maksimum skala otomatis Tmax adalah 1000 RU/dtk, dengan skala antara 100 dan 1000 RU/dtk. Anda dapat mengatur Tmax dalam kelipatan 1000 RU/dtk dan mengubah nilainya kapan saja.

Misalnya, jika koleksi memiliki 1000 RU/dtk dan 2 partisi, setiap partisi dapat menskalakan hingga 500 RU/dtk. Selama satu jam aktivitas, pemanfaatan akan terlihat seperti ini:

Wilayah Partition Daya Tampung Pemanfaatan Notes
Write P1 <= 500 RU/dtk 100% 500 RU/dtk yang terdiri dari 50 RU/dtk yang digunakan untuk operasi tulis dan 450 RU/dtk untuk operasi baca.
Write P2 <= 200 RU/dtk 40% 200 unit permintaan per detik yang meliputi semua operasi baca.
Bacalah P1 <= 150 RU/dtk 30% 150 RU/dtk yang terdiri dari 50 RU/dtk yang digunakan untuk penulisan yang direplikasi dari wilayah tulis. 100 RU per detik diperlukan untuk operasi pembacaan di wilayah ini.
Bacalah P2 <= 50 RU per detik 10%

Tanpa penskalaan dinamis, sistem menskalakan semua partisi secara seragam berdasarkan partisi terpanas. Dalam contoh ini, karena partisi terpanas memiliki pemanfaatan 100%, semua partisi di wilayah tulis dan baca diskalakan ke 1000 RU/dtk, membuat total RU/dtk diskalakan menjadi 2000 RU/dtk.

Dengan penskalaan dinamis, setiap partisi dan skala throughput wilayah secara independen, menghasilkan total 900 RU/dtk, yang lebih mencerminkan pola lalu lintas aktual dan mengurangi biaya.

Mengaktifkan skala otomatis pada sumber daya yang ada

Gunakan portal Microsoft Azure, CLI, atau PowerShell untuk mengaktifkan skala otomatis pada database atau kontainer yang sudah ada. Beralih antara throughput yang disediakan skala otomatis dan standar (manual) kapan saja. Untuk informasi selengkapnya, lihat dokumentasi ini.

Batas throughput dan penyimpanan untuk penskalaan otomatis

Untuk nilai Tmax apa pun, database atau kontainer menyimpan total 0.1 * Tmax GB. Setelah Anda mencapai jumlah penyimpanan ini, RU/dtk maksimum meningkat secara otomatis seiring bertambahnya nilai penyimpanan baru tanpa memengaruhi aplikasi Anda.

Misalnya, jika Anda memulai dengan RU/dtk maksimum 50.000 RU/dtk (skala antara 5000 dan 50.000 RU/dtk), Anda dapat menyimpan hingga 5.000 GB data. Jika penyimpanan melebihi 5.000 GB, seperti mencapai 6.000 GB, RU/dtk maksimum baru menjadi 60.000 RU/dtk (skala antara 6000 dan 60.000 RU/dtk).

Saat Anda menggunakan throughput tingkat basis data dengan skala otomatis, Anda dapat memiliki 25 Kontainer pertama yang berbagi RU/s maksimum skala otomatis 1000 (berkisar antara 100 - 1000 RU/s), selama Anda tidak melebihi 100 GB penyimpanan. Untuk informasi selengkapnya, lihat dokumentasi ini.

Mengaktifkan penskalaan dinamis

Penskalaan dinamis diaktifkan secara bawaan untuk semua akun Azure Cosmos DB yang dibuat setelah 25 September 2024. Pelanggan yang ingin mengaktifkan fitur ini untuk akun lama mereka dapat melakukannya secara terprogram melalui Azure PowerShell, CLI, REST API, atau dari panel fitur portal Microsoft Azure seperti yang ditunjukkan:

  1. Buka akun Azure Cosmos DB Anda di portal Microsoft Azure.

  2. Pilih halaman Fitur .

  3. Temukan dan aktifkan fitur Penskalaan Dinamis (Per Wilayah dan Skala Otomatis Per Partisi ).

    Cuplikan layar fitur **Penskalaan Dinamis (Per Wilayah dan Per Skala Otomatis Partisi)** di portal Microsoft Azure.

    Important

    Fitur ini diaktifkan di tingkat akun, sehingga semua kontainer autoscale dan database yang berbagi throughput dalam akun secara otomatis memiliki kemampuan ini. Mengaktifkan fitur ini tidak memengaruhi sumber daya di akun yang menggunakan throughput manual. Sumber daya manual perlu diubah ke skala otomatis untuk memanfaatkan penskalaan dinamis. Mengaktifkan fitur ini tidak memiliki waktu henti atau efek performa. Fitur ini tidak berlaku untuk akun tanpa server. Fitur ini didukung di semua cloud.

Pemantauan metrik

Anda dapat menggunakan metrik berikut untuk memantau skala otomatis dan penskalakan dinamis:

Nama Metrik Definition Penggunaan Metrik
Throughput yang Dialokasikan Menunjukkan RU/dtk tertinggi agregat yang diskalakan ke seluruh jam, dan mewakili total RU/dtk yang diskalakan untuk jam tersebut. Anda dapat menggunakan metrik Provisioned Throughput untuk melihat RU/s yang Anda ditagihkan setiap jam. Dengan skala otomatis, Anda ditagih berdasarkan partisi paling aktif untuk setiap jam, dan hal yang sama berlaku untuk semua partisi dan wilayah. Dengan skala otomatis dinamis, Anda ditagih berdasarkan RU/dtk tertinggi yang dicapai agregat pada tiap jam di setiap tingkat partisi dan tingkat wilayah.
Normalisasi Penggunaan RU Metrik ini mewakili rasio RU/dtk yang dikonsumsi terhadap RU/dtk yang disediakan di setiap partisi dan tingkat wilayah. Gunakan metrik ini untuk menentukan apakah throughput maksimum skala otomatis berada di bawah atau diprovisikan secara berlebihan.

Jika nilai metrik secara konsisten 100%, dan aplikasi Anda melihat pembatasan laju (kode kesalahan 429), Anda mungkin memerlukan lebih banyak RU per detik. Sebaliknya, jika nilai metrik ini rendah dan tidak ada pembatasan tingkat, maka mungkin ada ruang untuk mengoptimalkan dan menurunkan RU/s. Pelajari cara menginterpretasikan dan men-debug kesalahan pembatasan laju kode 429.

Metrik ini Normalized RU Consumption mencerminkan RU/dtk yang digunakan di wilayah sekunder akibat lalu lintas replikasi penulisan dari wilayah primer, serta lalu lintas pembacaan di wilayah sekunder.
RU terskalakan otomatis Memperlihatkan throughput yang disediakan dengan skala dinamis pada tingkat partisi dan wilayah, hanya untuk akun dengan skala otomatis dinamis diaktifkan. Gunakan metrik ini untuk melihat bagaimana partisi di setiap wilayah diskalakan secara independen berdasarkan penggunaannya.

Gunakan metrik Azure MonitorAutoscaled RU—untuk menganalisis bagaimana penskalaan otomatis baru berlaku di seluruh partisi dan wilayah. Filter ke akun database dan kontainer yang Anda inginkan, lalu filter atau pisahkan berdasarkan metrik PartitionID Fisik. Metrik ini menunjukkan semua partisi di berbagai wilayahnya.

Important

Sebaiknya gunakan kemampuan penskalakan dinamis asli Azure Cosmos DB untuk mengelola kapasitas Anda. Namun, jika diperlukan, metrik Konsumsi RU yang Dinormalisasi di Azure Monitor dapat digunakan untuk membuat keputusan penskalaan terprogram. Pendekatan lain, seperti menggunakan panggilan ReadThroughputAsync() di kit pengembangan perangkat lunak (SDK) Azure Cosmos DB untuk mendapatkan nilai ProvisionedThroughput, atau menggunakan metrik ProvisionedThroughput di Azure Monitor tidak direkomendasikan dan menyebabkan hasil yang tidak akurat. Metrik ini mewakili throughput yang dikenakan biaya yang mungkin tertunda dan tidak boleh digunakan untuk pengambilan keputusan penskalaan.

Perbandingan – kontainer yang dikonfigurasi dengan throughput manual vs. skala otomatis

Untuk informasi selengkapnya, lihat dokumentasi ini tentang memilih antara throughput standar (manual) dan skala otomatis.

Kontainer dengan kapasitas pemrosesan standar (manual) Kontainer dengan throughput berskala otomatis
Throughput yang disediakan (RU/dtk) Disediakan secara manual. Secara otomatis dan instan diskalakan berdasarkan pola penggunaan beban kerja.
Pembatasan tarif permintaan/operasi (429) Mungkin terjadi jika konsumsi melebihi kapasitas yang disediakan. Tidak terjadi jika Anda mengonsumsi RU/s dalam rentang throughput skala otomatis yang telah dikonfigurasi.
Perencanaan kapasitas Anda perlu merencanakan kapasitas dan mengatur throughput yang tepat yang Anda butuhkan. Sistem secara otomatis menangani perencanaan dan manajemen kapasitas.
Pricing Anda membayar untuk RU/s yang disediakan secara manual per jam, menggunakan tarif standar RU/s per jam (manual). Anda membayar per jam untuk jumlah RU/s tertinggi yang dicapai oleh sistem dalam satu jam.

Untuk akun wilayah tulis tunggal, Anda membayar RU/dtk yang digunakan setiap jam, menggunakan tarif RU/dtk per jam skala otomatis.

Untuk akun dengan beberapa wilayah penulisan, tidak ada biaya tambahan untuk penskalaan otomatis. Anda membayar throughput yang digunakan berdasarkan jam dengan menggunakan tarif RU/tulis per detik per jam di multiwilayah yang sama.

Paling cocok untuk jenis beban kerja Beban kerja yang dapat diprediksi dan stabil Tidak dapat diprediksi, beban kerja variabel

Memigrasikan throughput standar yang disediakan ke skala otomatis

Pengguna yang ingin memigrasikan banyak sumber daya dari throughput standar yang disediakan ke skala otomatis dapat menggunakan skrip Azure CLI untuk memigrasikan semua sumber daya throughput dalam langganan Azure ke skala otomatis.