Mengelola penskalaan otomatis Amazon Keyspaces dengan Cassandra Query Language (CQL) - Amazon Keyspaces (untuk Apache Cassandra)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola penskalaan otomatis Amazon Keyspaces dengan Cassandra Query Language (CQL)

Untuk membuat dan mengelola pengaturan penskalaan otomatis untuk tabel Amazon Keyspaces dengan Cassandra Query Language (CQL), Anda dapat menggunakannya. cqlsh Topik ini memberikan gambaran umum tentang tugas penskalaan otomatis yang dapat Anda kelola secara terprogram menggunakan CQL.

Untuk informasi lebih lanjut tentang pernyataan CQL yang dijelaskan dalam topik ini, lihat. Pernyataan DDL (bahasa definisi data) di Amazon Keyspaces

Sebelum Anda memulai

Anda harus menyelesaikan tugas-tugas berikut sebelum Anda dapat memulai.

Konfigurasi izin

Jika Anda belum melakukannya, Anda harus mengonfigurasi izin yang sesuai bagi pengguna untuk membuat dan mengelola pengaturan penskalaan otomatis. Di AWS Identity and Access Management (IAM), kebijakan AWS terkelola AmazonKeyspacesFullAccess diperlukan untuk mengelola kebijakan penskalaan Amazon Keyspaces. Untuk langkah mendetail, lihat Sebelum Anda mulai: Memberikan izin pengguna untuk penskalaan otomatis Amazon Keyspaces.

Konfigurasi cqlsh

Jika Anda belum melakukannya, Anda harus menginstal dan mengkonfigurasicqlsh. Untuk melakukan ini, ikuti instruksi diMenggunakan untuk terhubung cqlsh-expansion ke Amazon Keyspaces. Anda kemudian dapat menggunakan AWS CloudShell untuk menjalankan perintah di bagian berikut.

Buat tabel baru dengan penskalaan otomatis menggunakan CQL

Saat membuat tabel Amazon Keyspaces baru, Anda dapat secara otomatis mengaktifkan penskalaan otomatis untuk kapasitas tulis atau baca tabel dalam pernyataan. CREATE TABLE Hal ini memungkinkan Amazon Keyspaces menghubungi Application Auto Scaling atas nama Anda untuk mendaftarkan tabel sebagai target yang dapat diskalakan dan menyesuaikan kapasitas tulis atau baca yang disediakan.

Untuk informasi selengkapnya tentang cara membuat tabel Multi-wilayah dan mengonfigurasi pengaturan penskalaan otomatis yang berbeda untuk replika tabel, lihat. Membuat tabel Multi-region dengan pengaturan default (CQL)

catatan

Penskalaan otomatis Amazon Keyspaces memerlukan keberadaan peran terkait layanan (AWSServiceRoleForApplicationAutoScaling_CassandraTable) untuk melakukan tindakan penskalaan otomatis atas nama Anda. Peran ini dibuat secara otomatis untuk Anda. Untuk informasi selengkapnya, lihat Menggunakan peran terkait layanan untuk Amazon Keyspaces.

Untuk mengonfigurasi pengaturan penskalaan otomatis untuk tabel secara terprogram, Anda menggunakan AUTOSCALING_SETTINGS pernyataan yang berisi parameter untuk penskalaan otomatis Amazon Keyspaces. Parameter menentukan kondisi yang mengarahkan Amazon Keyspaces untuk menyesuaikan throughput yang disediakan tabel Anda, dan tindakan opsional tambahan apa yang harus diambil. Dalam contoh ini, Anda menentukan pengaturan penskalaan otomatis untuk mytable.

Kebijakan tersebut berisi elemen berikut:

  • AUTOSCALING_SETTINGS— Menentukan apakah Amazon Keyspaces diizinkan untuk menyesuaikan kapasitas throughput atas nama Anda. Nilai-nilai berikut diperlukan:

    • provisioned_write_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • provisioned_read_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • scaling_policy— Amazon Keyspaces mendukung kebijakan pelacakan target. Untuk menentukan kebijakan pelacakan target, Anda mengonfigurasi parameter berikut.

      • target_value— Penskalaan otomatis Amazon Keyspaces memastikan bahwa rasio kapasitas yang dikonsumsi terhadap kapasitas yang disediakan tetap pada atau mendekati nilai ini. Anda mendefinisikan target_value sebagai persentase.

      • disableScaleIn: (Opsional) A boolean yang menentukan scale-in apakah dinonaktifkan atau diaktifkan untuk tabel. Parameter ini dinonaktifkan secara default. Untuk menghidupkanscale-in, atur boolean nilainya keFALSE. Ini berarti bahwa kapasitas secara otomatis diperkecil untuk tabel atas nama Anda.

      • scale_out_cooldown— Aktivitas scale-out meningkatkan throughput yang disediakan dari tabel Anda. Untuk menambahkan periode cooldown untuk aktivitas scale-out, tentukan nilai, dalam detik, untuk. scale_out_cooldown Jika Anda tidak menentukan nilai, nilai defaultnya adalah 0. Untuk informasi selengkapnya tentang pelacakan target dan periode cooldown, lihat Kebijakan Penskalaan Pelacakan Target di Panduan Pengguna Application Auto Scaling.

      • scale_in_cooldown— Aktivitas scale-in mengurangi throughput yang disediakan dari tabel Anda. Untuk menambahkan periode cooldown untuk aktivitas penskalaan, tentukan nilai, dalam detik, untuk. scale_in_cooldown Jika Anda tidak menentukan nilai, nilai defaultnya adalah 0. Untuk informasi selengkapnya tentang pelacakan target dan periode cooldown, lihat Kebijakan Penskalaan Pelacakan Target di Panduan Pengguna Application Auto Scaling.

catatan

Untuk lebih memahami cara kerja target_value, misalkan Anda memiliki sebuah tabel dengan pengaturan throughput yang disediakan sebanyak 200 unit kapasitas tulis. Anda memutuskan untuk membuat kebijakan penskalaan untuk tabel ini, dengan target_value sebesar 70 persen.

Sekarang anggaplah Anda mulai mendorong lalu lintas tulis ke tabel sehingga throughput tulis aktual adalah sebesar 150 unit kapasitas. consumed-to-provisioned Rasionya sekarang (150/200), atau 75 persen. Rasio ini melebihi target Anda, jadi penskalaan otomatis meningkatkan kapasitas tulis yang disediakan menjadi 215 sehingga rasionya (150/215), atau 69,77 persen—sedekat mungkin dengan Anda, tetapi tidak melebihi itu. target_value

Untuk mytable, Anda mengatur TargetValue kapasitas baca dan tulis hingga 50 persen. Penskalaan otomatis Amazon Keyspaces menyesuaikan throughput yang disediakan tabel dalam kisaran 5-10 unit kapasitas sehingga rasionya tetap pada atau mendekati 50 persen. consumed-to-provisioned Untuk kapasitas baca, Anda mengatur nilai untuk ScaleOutCooldown dan ScaleInCooldown ke 60 detik.

Anda dapat menggunakan pernyataan berikut untuk membuat tabel Amazon Keyspaces baru dengan penskalaan otomatis diaktifkan.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

Aktifkan penskalaan otomatis pada tabel yang ada menggunakan CQL

Untuk tabel Amazon Keyspaces yang ada, Anda dapat mengaktifkan penskalaan otomatis untuk kapasitas tulis atau baca tabel menggunakan pernyataan. ALTER TABLE Jika Anda memperbarui tabel yang saat ini dalam mode kapasitas sesuai permintaan, maka yang capacity_mode diperlukan. Jika tabel Anda sudah dalam mode kapasitas yang disediakan, bidang ini dapat dihilangkan.

catatan

Penskalaan otomatis Amazon Keyspaces memerlukan keberadaan peran terkait layanan (AWSServiceRoleForApplicationAutoScaling_CassandraTable) yang melakukan tindakan penskalaan otomatis atas nama Anda. Peran ini dibuat secara otomatis untuk Anda. Untuk informasi selengkapnya, lihat Menggunakan peran terkait layanan untuk Amazon Keyspaces.

Dalam contoh berikut, pernyataan memperbarui tabel mytable, yang dalam mode kapasitas sesuai permintaan. Pernyataan tersebut mengubah mode kapasitas tabel menjadi mode yang disediakan dengan penskalaan otomatis diaktifkan.

Kapasitas tulis dikonfigurasi dalam kisaran 5-10 unit kapasitas dengan nilai target 50%. Kapasitas baca juga dikonfigurasi dalam kisaran 5-10 unit kapasitas dengan nilai target 50%. Untuk kapasitas baca, Anda mengatur nilai untuk scale_out_cooldown dan scale_in_cooldown ke 60 detik.

ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

Lihat konfigurasi penskalaan otomatis Amazon Keyspaces tabel Anda menggunakan CQL

Untuk melihat detail konfigurasi penskalaan otomatis tabel, gunakan perintah berikut.

SELECT * FROM system_schema_mcs.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

Output untuk perintah ini terlihat seperti ini.

keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}

Matikan penskalaan otomatis Amazon Keyspaces untuk tabel menggunakan CQL

Anda dapat menonaktifkan penskalaan otomatis Amazon Keyspaces untuk tabel Anda kapan saja. Jika Anda tidak perlu lagi menskalakan kapasitas baca atau tulis tabel Anda, Anda harus mempertimbangkan untuk mematikan penskalaan otomatis sehingga Amazon Keyspaces tidak terus memodifikasi pengaturan kapasitas baca atau tulis tabel Anda. Anda dapat memperbarui tabel dengan ALTER TABLE pernyataan.

Pernyataan berikut mematikan penskalaan otomatis untuk kapasitas tulis tabel mytable. Ini juga menghapus CloudWatch alarm yang dibuat atas nama Anda.

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
catatan

Untuk menghapus peran terkait layanan yang digunakan Application Auto Scaling, Anda harus menonaktifkan penskalaan otomatis pada semua tabel di akun di semua. Wilayah AWS