View a markdown version of this page

Klaster Valkey dan Redis OSS Penskalaan Otomatis - Amazon ElastiCache

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

Klaster Valkey dan Redis OSS Penskalaan Otomatis

Prasyarat

ElastiCache Penskalaan Otomatis terbatas pada hal berikut:

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

  • Cluster tiering data (mode cluster diaktifkan) yang menjalankan Valkey 7.2 dan seterusnya, atau menjalankan Redis OSS 7.0.7 dan seterusnya

  • Ukuran instans - Large, XLarge, 2XLarge

  • Keluarga tipe instans - R8g, R7g, R6g, R6gd, R5, M8g, M7g, M6g, M5, C8gn, C7gn

  • Auto Scaling in tidak ElastiCache didukung untuk cluster yang berjalan di penyimpanan data Global, Pos Terdepan, atau Zona Lokal.

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 fungsionalitas 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 penskalaan otomatis menggunakan kebijakan untuk menambah atau mengurangi jumlah instance sebagai respons terhadap beban kerja aktual.

Anda dapat menggunakan Konsol Manajemen AWS 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 Konsol Manajemen AWS. Metrik kustom tidak tersedia untuk pilihan menggunakan Konsol Manajemen AWS. Atau, Anda dapat menggunakan API Penskalaan Otomatis Aplikasi AWS CLI atau API untuk menerapkan kebijakan penskalaan berdasarkan metrik yang telah ditentukan atau kustom.

ElastiCache untuk Valkey dan Redis OSS mendukung penskalaan untuk dimensi berikut:

  • Pecahan — Secara otomatis add/remove memecah di cluster mirip dengan resharding online manual. Dalam hal ini, penskalaan ElastiCache otomatis memicu penskalaan atas nama Anda.

  • Replika — Secara otomatis mer add/remove eplikasi dalam cluster mirip dengan operasi Increase/Decrease replika manual. ElastiCache penskalaan otomatis untuk adds/removes replika Valkey dan Redis OSS secara seragam di semua pecahan di cluster.

ElastiCache untuk Valkey dan Redis OSS mendukung jenis kebijakan penskalaan otomatis berikut:

  • Kebijakan penskalaan pelacakan target— Meningkatkan atau mengurangi jumlah layanan shards/replicas yang dijalankan berdasarkan nilai target untuk metrik tertentu. Hal ini serupa dengan cara termostat mempertahankan suhu rumah Anda. Anda memilih suhu dan termostat melakukan sisanya.

  • Penskalaan terjadwal untuk aplikasi Anda. — ElastiCache untuk Valkey dan Redis OSS penskalaan otomatis dapat menambah atau mengurangi jumlah layanan Anda shards/replicas yang berjalan berdasarkan tanggal dan waktu.

Gambar penskalaan otomatis ElastiCache untuk Valkey dan Redis OSS

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

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

  2. ElastiCache penskalaan otomatis membuat sepasang CloudWatch alarm atas nama Anda. Setiap pasangan merepresentasikan batas atas dan bawah Anda untuk metrik. CloudWatch Alarm ini dipicu ketika pemanfaatan aktual cluster menyimpang dari pemanfaatan 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 penskalaan otomatis mengeluarkan permintaan Modifikasi untuk menyesuaikan kapasitas cluster Anda.

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

Untuk memahami cara ElastiCache kerja Auto Scaling, misalkan Anda memiliki cluster bernamaUsersCluster. 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 pemanfaatan CPU untuk UsersCluster cluster. ElastiCache penskalaan otomatis menggunakan algoritma pelacakan targetnya untuk memastikan bahwa pecahan yang UsersCluster disediakan disesuaikan sesuai kebutuhan sehingga pemanfaatan tetap pada atau dekat dengan nilai target.

catatan

Penskalaan mungkin membutuhkan waktu yang nyata dan akan membutuhkan sumber daya cluster tambahan agar pecahan dapat diseimbangkan kembali. ElastiCache Penskalaan Otomatis memodifikasi pengaturan sumber daya hanya jika beban kerja aktual tetap meningkat (atau tertekan) selama beberapa menit yang berkelanjutan. Algoritma pelacakan target penskalaan otomatis berusaha menjaga pemanfaatan target pada atau dekat nilai yang Anda pilih dalam jangka panjang.

Izin IAM Diperlukan untuk Penskalaan Otomatis

ElastiCache untuk Valkey dan Redis OSS Auto Scaling dimungkinkan oleh kombinasi ElastiCache, CloudWatch, dan Application Auto Scaling API. Cluster dibuat dan diperbarui dengan ElastiCache, alarm dibuat dengan CloudWatch, dan kebijakan penskalaan dibuat dengan Penskalaan Otomatis Aplikasi. Selain izin IAM standar untuk membuat dan memperbarui cluster, pengguna IAM yang mengakses pengaturan ElastiCache Auto Scaling harus memiliki izin yang sesuai untuk layanan yang mendukung penskalaan dinamis. Dalam kebijakan terbaru ini, kami telah menambahkan dukungan untuk penskalaan vertikal Memcached, dengan tindakan. elasticache:ModifyCacheCluster Pengguna IAM harus memiliki izin untuk menggunakan tindakan yang ditunjukkan dalam contoh kebijakan berikut:

JSON
{ "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" } ] }

Service-linked peran

Layanan penskalaan otomatis ElastiCache untuk Valkey dan Redis OSS juga memerlukan izin untuk menggambarkan cluster dan CloudWatch alarm Anda, dan izin untuk mengubah kapasitas ElastiCache target Anda atas nama Anda. Jika Anda mengaktifkan Penskalaan Otomatis untuk cluster Anda, itu akan membuat peran terkait layanan bernama. AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG Peran terkait layanan ini memberikan izin penskalaan ElastiCache otomatis untuk menjelaskan alarm untuk kebijakan Anda, untuk memantau kapasitas armada saat ini, dan untuk mengubah kapasitas armada. Peran terkait layanan adalah peran default untuk penskalaan ElastiCache otomatis. Untuk informasi selengkapnya, lihat Service-linked peran ElastiCache untuk penskalaan otomatis Redis OSS di Panduan Pengguna Penskalaan Otomatis Aplikasi.

Praktik Terbaik Auto Scaling

Sebelum mendaftar Auto Scaling, kami merekomendasikan hal berikut:

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

    • CPU mesin: ElastiCachePrimaryEngineCPUUtilization (dimensi serpihan) atau ElastiCacheReplicaEngineCPUUtilization (dimensi replika)

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

    Sebaiknya hindari beberapa kebijakan per dimensi pada cluster. ElastiCache untuk Valkey dan Redis OSS Penskalaan otomatis 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 porsi scale-in 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 Khusus untuk Pelacakan Target — Berhati-hatilah saat menggunakan metrik khusus untuk Pelacakan Target karena penskalaan otomatis paling cocok untuk skala out/in yang sebanding dengan perubahan metrik yang dipilih untuk kebijakan tersebut. 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 high/low pada waktu tertentu), sebaiknya gunakan Penskalaan Terjadwal dan konfigurasikan kapasitas target Anda sesuai 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 Scale-In — Penskalaan otomatis pada Pelacakan Target paling cocok untuk cluster dengan beban kerja bertahap increase/decrease karena spikes/dip dalam metrik dapat memicu out/in osilasi skala 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 — Sebaiknya Anda menguji aplikasi dengan perkiraan Min/Max beban kerja untuk menentukan Minimum, Maks absolut yang shards/replicas diperlukan untuk cluster saat 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 cluster 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 on Target Tracking paling cocok untuk cluster dengan distribusi beban kerja yang seragam di seluruh shards/replicas dimensi. Memiliki distribusi yang tidak seragam dapat menyebabkan:

    • Penskalaan saat tidak diperlukan karena beban kerja spike/dip pada beberapa panas shards/replicas.

    • Tidak melakukan penskalaan saat diperlukan karena rata-rata keseluruhan dekat dengan target meskipun panas shards/replicas.

catatan

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

Setelah mendaftar AutoScaling, perhatikan hal-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.

    • Secara manual increasing/decreasing shards/replicas melampaui Min/Max kapasitas yang dikonfigurasi selama pembuatan kebijakan.