Auto Scaling Valkey dan Redis cluster OSS - Amazon ElastiCache

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

Auto Scaling Valkey dan Redis cluster OSS

Prasyarat

ElastiCache Auto Scaling terbatas pada hal-hal berikut:

  • Cluster Valkey atau Redis OSS (mode cluster diaktifkan) yang menjalankan Valkey 7.2 dan seterusnya, atau menjalankan mesin Redis versi 6.0 dan seterusnya OSS

  • Tiering data (mode cluster diaktifkan) cluster yang menjalankan Valkey 7.2 dan seterusnya, atau menjalankan Redis engine versi 7.0.7 dan seterusnya OSS

  • Ukuran instans - Besar,XLarge, 2 XLarge

  • Kelompok tipe instans - R7g, R6g, R6gd, R5, M7g, M6g, M5, C7gn

  • Auto Scaling in tidak ElastiCache didukung untuk cluster yang berjalan di Datastores Global, Outposts atau Local Zones.

Mengelola Kapasitas Secara Otomatis dengan ElastiCache Auto Scaling dengan Valkey atau Redis OSS

ElastiCache penskalaan otomatis dengan Valkey atau Redis OSS adalah kemampuan untuk menambah atau mengurangi pecahan atau replika yang diinginkan dalam layanan Anda secara otomatis. ElastiCache ElastiCache memanfaatkan layanan Application Auto Scaling untuk menyediakan fungsi ini. Untuk informasi selengkapnya, lihat Application Auto Scaling. Untuk menggunakan penskalaan otomatis, Anda menentukan dan menerapkan kebijakan penskalaan yang menggunakan CloudWatch metrik dan nilai target yang Anda tetapkan. ElastiCache auto scaling menggunakan kebijakan untuk menambah atau mengurangi jumlah instance sebagai respons terhadap beban kerja aktual.

Anda dapat menggunakan AWS Management Console untuk menerapkan kebijakan penskalaan berdasarkan metrik yang telah ditentukan sebelumnya. Sebuah predefined metric didefinisikan dalam penghitungan sehingga Anda dapat menentukannya dengan nama dalam kode atau menggunakannya dalam AWS Management Console. Metrik kustom tidak tersedia untuk pilihan menggunakan AWS Management Console. Atau, Anda dapat menggunakan Application Auto Scaling AWS CLI atau Application Auto Scaling API untuk menerapkan kebijakan penskalaan berdasarkan metrik yang telah ditentukan atau kustom.

ElastiCache dengan Valkey atau Redis OSS mendukung penskalaan untuk dimensi berikut:

  • Serpihan – Secara otomatis menambahkan/menghapus serpihan di klaster yang mirip dengan resharding online secara manual. Dalam hal ini, penskalaan ElastiCache otomatis memicu penskalaan atas nama Anda.

  • Replika – Secara otomatis menambahkan/menghapus replika di klaster yang mirip dengan operasi Meningkatkan/Menurunkan replika secara manual. ElastiCache dengan penskalaan OSS otomatis Valkey atau Redis menambahkan/menghapus replika secara seragam di semua pecahan di cluster.

ElastiCache dengan Valkey atau Redis OSS mendukung jenis kebijakan penskalaan otomatis berikut:

Gambar penskalaan otomatis ElastiCache dengan Valkey atau Redis OSS

Langkah-langkah berikut merangkum proses penskalaan OSS otomatis ElastiCache dengan Valkey atau Redis seperti yang ditunjukkan pada diagram sebelumnya:

  1. Anda membuat kebijakan penskalaan ElastiCache otomatis untuk Grup Replikasi Anda.

  2. ElastiCache penskalaan otomatis dengan Valkey atau Redis OSS menciptakan sepasang CloudWatch alarm atas nama Anda. Setiap pasangan merepresentasikan batas atas dan bawah Anda untuk metrik. CloudWatch Alarm ini dipicu ketika penggunaan aktual cluster menyimpang dari penggunaan target Anda untuk jangka waktu yang berkelanjutan. Anda dapat melihat alarm di konsol.

  3. Jika nilai metrik yang dikonfigurasi melebihi pemanfaatan target Anda (atau berada di bawah target) untuk jangka waktu tertentu, CloudWatch memicu alarm yang memanggil penskalaan otomatis untuk mengevaluasi kebijakan penskalaan Anda.

  4. ElastiCache dengan masalah penskalaan OSS otomatis Valkey atau Redis, permintaan Ubah untuk menyesuaikan kapasitas cluster Anda.

  5. ElastiCache dengan Valkey atau Redis OSS memproses permintaan Modify, secara dinamis meningkatkan (atau mengurangi) kapasitas Shards/Replicas cluster sehingga mendekati pemanfaatan target Anda.

Untuk memahami cara ElastiCache kerja Valkey atau Redis OSS Auto Scaling, misalkan Anda memiliki cluster bernama. UsersCluster Dengan memantau CloudWatch metrikUsersCluster, Anda menentukan pecahan Max yang dibutuhkan cluster saat lalu lintas berada di puncaknya dan Min Shards saat lalu lintas berada pada titik terendah. Anda juga memutuskan nilai target untuk CPU pemanfaatan untuk UsersCluster cluster. ElastiCache auto scaling menggunakan algoritma pelacakan targetnya untuk memastikan bahwa pecahan yang UsersCluster disediakan disesuaikan sesuai kebutuhan sehingga pemanfaatan tetap pada atau mendekati nilai target.

catatan

Penskalaan mungkin membutuhkan waktu yang nyata dan akan membutuhkan sumber daya cluster tambahan agar pecahan dapat diseimbangkan kembali. ElastiCache dengan Valkey atau Redis OSS Auto Scaling memodifikasi pengaturan sumber daya hanya ketika beban kerja sebenarnya tetap meningkat (atau tertekan) selama beberapa menit. Algoritma pelacakan target penskalaan otomatis berupaya menjaga pemanfaatan target pada atau mendekati nilai yang Anda pilih dalam jangka panjang.

IAMIzin Diperlukan untuk Auto Scaling

ElastiCache dengan Valkey atau Redis OSS Auto Scaling dimungkinkan oleh kombinasi, CloudWatch, dan Application Auto Scaling. ElastiCache APIs Cluster dibuat dan diperbarui dengan ElastiCache (RedisOSS), alarm dibuat dengan CloudWatch, dan kebijakan penskalaan dibuat dengan Application Auto Scaling. Selain IAM izin standar untuk membuat dan memperbarui cluster, IAM pengguna yang mengakses pengaturan ElastiCache Auto Scaling harus memiliki izin yang sesuai untuk layanan yang mendukung penskalaan dinamis. IAMpengguna harus memiliki izin untuk menggunakan tindakan yang ditunjukkan dalam contoh kebijakan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "elasticache:DescribeReplicationGroups", "elasticache:ModifyReplicationGroupShardConfiguration", "elasticache:IncreaseReplicaCount", "elasticache:DecreaseReplicaCount", "elasticache:DescribeCacheClusters", "elasticache:DescribeCacheParameters", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarms", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": "arn:aws:iam::123456789012:role/autoscaling-roles-for-cluster" } ] }

Peran terkait layanan

Layanan penskalaan OSS otomatis ElastiCache dengan Valkey atau Redis juga memerlukan izin untuk menjelaskan cluster dan CloudWatch alarm Anda, dan izin untuk mengubah kapasitas target Anda atas nama Anda ElastiCache . Jika Anda mengaktifkan Auto Scaling untuk klaster Anda, itu akan membuat peran terkait layanan bernama. AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG Peran terkait layanan ini memberikan izin penskalaan ElastiCache otomatis untuk menjelaskan alarm kebijakan Anda, untuk memantau kapasitas armada saat ini, dan untuk memodifikasi kapasitas armada. Peran terkait layanan adalah peran default untuk penskalaan ElastiCache otomatis. Untuk informasi selengkapnya, lihat Peran terkait layanan untuk ElastiCache (Redis) OSS auto scaling di Panduan Pengguna Application Auto Scaling.

Praktik Terbaik Auto Scaling

Sebelum mendaftar Auto Scaling, kami merekomendasikan hal berikut:

  1. Gunakan hanya satu metrik pelacakan — Identifikasi apakah klaster Anda memiliki CPU atau beban kerja intensif data dan gunakan metrik standar yang sesuai untuk menentukan Kebijakan Penskalaan.

    • MesinCPU: ElastiCachePrimaryEngineCPUUtilization (dimensi pecahan) atau ElastiCacheReplicaEngineCPUUtilization (dimensi replika)

    • Penggunaan basis data: ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage Kebijakan penskalaan ini berfungsi paling baik dengan maxmemory-policy yang ditetapkan ke noeviction di klaster.

    Kami menyarankan Anda menghindari beberapa kebijakan per dimensi pada cluster. ElastiCache dengan penskalaan Valkey atau Redis OSS Auto akan menskalakan target yang dapat diskalakan jika ada kebijakan pelacakan target yang siap untuk diskalakan, tetapi akan menskalakan hanya jika semua kebijakan pelacakan target (dengan bagian penskalaan diaktifkan) siap untuk diskalakan. Jika beberapa kebijakan menginstruksikan target yang dapat diskalakan untuk menskalakan ke luar atau ke dalam pada saat yang sama, target akan diskalakan berdasarkan kebijakan yang memberikan kapasitas terbesar untuk penskalaan ke dalam dan penskalaan ke luar.

  2. Metrik yang Disesuaikan untuk Pelacakan Target – Berhati-hatilah saat menggunakan metrik yang disesuaikan untuk Pelacakan Target karena Penskalaan otomatis paling cocok untuk penskalaan ke luar/ke dalam secara berbanding lurus dengan perubahan metrik yang dipilih untuk kebijakan. Jika metrik tersebut tidak berubah secara proporsional dengan tindakan penskalaan yang digunakan untuk pembuatan kebijakan, hal tersebut dapat menyebabkan tindakan penskalaan ke luar atau penskalaan ke dalam berkelanjutan yang dapat memengaruhi ketersediaan atau biaya.

    Untuk klaster tingkatan data (jenis instans keluarga r6gd), hindari penggunaan metrik berbasis memori untuk penskalaan.

  3. Penskalaan Terjadwal – Jika Anda mengidentifikasi bahwa beban kerja Anda bersifat deterministik (mencapai tinggi/rendah pada waktu tertentu), sebaiknya gunakan Penskalaan Terjadwal dan konfigurasikan kapasitas target Anda sesuai dengan kebutuhan. Pelacakan Target paling cocok untuk beban kerja non-deterministik dan agar klaster beroperasi pada metrik target yang diperlukan dengan penskalaan ke luar saat Anda membutuhkan lebih banyak sumber daya dan penskalaan ke dalam saat Anda membutuhkan lebih sedikit sumber daya.

  4. Nonaktifkan Penskalaan ke Dalam – Penskalaan otomatis pada Pelacakan Target paling sesuai untuk klaster dengan peningkatan/penurunan beban kerja secara bertahap karena lonjakan/penurunan metrik dapat memicu pergantian penskalaan ke luar/ke dalam secara berturut-turut. Untuk menghindari pergantian tersebut, Anda dapat memulai dengan menonaktifkan penskalaan ke luar, dan melakukan penskalaan ke dalam secara manual sesuai kebutuhan Anda kapan saja.

  5. Uji aplikasi Anda – Kami merekomendasikan Anda menguji aplikasi Anda dengan perkiraan beban kerja Min/Maks untuk menentukan serpihan/replika Min,Maks mutlak yang diperlukan untuk klaster sambil membuat kebijakan Penskalaan untuk menghindari masalah ketersediaan. Penskalaan otomatis dapat menskalakan ke luar hingga Maks dan menskalakan ke dalam hingga ambang batas Min yang dikonfigurasi untuk target.

  6. Mendefinisikan Nilai Target — Anda dapat menganalisis CloudWatch metrik yang sesuai untuk pemanfaatan klaster selama periode empat minggu untuk menentukan ambang nilai target. Jika Anda masih tidak yakin nilai apa yang harus dipilih, sebaiknya mulai dengan nilai metrik standar minimum yang didukung.

  7. AutoScaling pada Pelacakan Target paling cocok untuk cluster dengan distribusi beban kerja yang seragam di seluruh dimensi pecahan/replika. Memiliki distribusi yang tidak seragam dapat menyebabkan:

    • Penskalaan saat tidak diperlukan karena lonjakan/penurunan beban kerja pada beberapa serpihan/replika "hot".

    • Tidak ada penskalaan saat diperlukan karena nilai rata-rata keseluruhan mendekati target meskipun memiliki serpihan/replika "hot".

catatan

Saat menskalakan cluster Anda, secara otomatis ElastiCache akan mereplikasi Fungsi yang dimuat di salah satu node yang ada (dipilih secara acak) ke node baru. Jika klaster Anda memiliki Valkey atau Redis OSS 7.0 atau lebih tinggi dan aplikasi Anda menggunakan Fungsi, kami sarankan memuat semua fungsi Anda ke semua pecahan sebelum penskalaan sehingga cluster Anda tidak berakhir dengan fungsi yang berbeda pada pecahan yang berbeda.

Setelah mendaftar AutoScaling, perhatikan hal berikut:

  • Ada batasan pada Konfigurasi yang Didukung Auto Scaling. Jadi, kami menyarankan Anda untuk tidak mengubah konfigurasi grup replikasi yang terdaftar untuk Auto Scaling. Berikut ini adalah beberapa contohnya:

    • Mengubah jenis Instans secara manual ke jenis yang tidak didukung.

    • Mengaitkan grup replikasi ke penyimpanan data Global.

    • Mengubah parameter ReservedMemoryPercent.

    • Meningkatkan/mengurangi serpihan/replika secara manual di luar kapasitas Min/Maks yang dikonfigurasi selama pembuatan kebijakan.