Penskalaan untuk cluster Memcached - Amazon ElastiCache

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

Penskalaan untuk cluster Memcached

ElastiCache untuk Memcached menawarkan layanan caching dalam memori yang dikelola sepenuhnya yang menyebarkan, mengoperasikan, dan menskalakan Memcached secara vertikal di cloud. AWS

Penskalaan vertikal sesuai permintaan

Dengan penskalaan vertikal, ElastiCache untuk Memcached menyediakan sistem caching memori terdistribusi berkinerja tinggi yang banyak digunakan untuk mempercepat aplikasi dinamis dengan mengurangi beban database. Ini menyimpan data dan objek dalam RAM, mengurangi kebutuhan untuk membaca dari sumber data eksternal.

Anda dapat menggunakan cluster yang dirancang sendiri ElastiCache untuk memcached untuk penskalaan vertikal. Anda dapat menerapkan penskalaan vertikal ke cluster yang ada serta yang baru. Ini dapat memberikan fleksibilitas dalam alokasi sumber daya, memungkinkan pengguna untuk secara efisien beradaptasi dengan perubahan beban kerja tanpa mengubah arsitektur cluster. Kemampuan untuk menskalakan ini meningkatkan kinerja dengan meningkatkan kapasitas cache selama periode permintaan tinggi, dan mengurangi untuk mengoptimalkan biaya selama periode permintaan rendah. Ini menyederhanakan operasi, menghilangkan kebutuhan untuk membuat cluster baru untuk menggeser kebutuhan sumber daya, dan memungkinkan respons cepat terhadap fluktuasi lalu lintas. Secara keseluruhan, penskalaan vertikal untuk cache yang dirancang sendiri Memcached dapat membantu meningkatkan efisiensi biaya, meningkatkan pemanfaatan sumber daya, dan bahkan memungkinkan pengguna mengubah jenis instance Memcached mereka. Semua memudahkan pengguna untuk menyelaraskan infrastruktur caching mereka dengan kebutuhan aplikasi yang sebenarnya.

catatan
  • Cache yang dirancang sendiri dan modifikasi tipe node hanya tersedia untuk mesin Memcached versi 1.5 atau yang lebih baru.

  • Penemuan Otomatis harus diaktifkan untuk memanfaatkan penskalaan vertikal.

Menyiapkan penskalaan vertikal sesuai permintaan untuk cluster Memcached ElastiCache

Anda dapat mengonfigurasi penskalaan vertikal sesuai permintaan untuk Memcached withscale-config, yang berisi dua parameter:

  1. ScaleIntervalMinutes: Waktu (dalam hitungan menit) antara penskalaan batch selama proses upgrade Memcached

  2. ScalePercentage: Persentase node untuk diskalakan secara bersamaan selama proses pemutakhiran Memcached

Mengonversi tipe node Memcached yang ada ke cache yang dapat menskalakan secara vertikal melalui CLI

Untuk mengonversi cache yang dirancang sendiri Memcached yang ada ke cache yang dapat menskalakan secara vertikal, Anda dapat menggunakan melalui elasticache modify-cache-cluster CLI.

aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config <scale-config> \ --apply-immediately

Menyiapkan penskalaan vertikal dengan CLI

Untuk mengatur penskalaan vertikal untuk cache yang dirancang sendiri Memcached Anda melalui CLI, gunakan elasticache modify-cache-cluster dengan dan parameternya dan. scale-config ScalePercentage ScaleIntervalMinutes

  • scale-interval-minutes: Ini menentukan waktu (dalam menit) antara batch penskalaan. Pengaturan ini dapat berkisar dari 2-30 menit. Jika tidak ada nilai yang ditentukan, nilai default 5 menit diterapkan.

  • scale-percentage: Ini menentukan persentase node untuk skala secara bersamaan di setiap batch. Pengaturan ini dapat berkisar dari 10-100. Pengaturan dibulatkan saat membagi, jadi misalnya jika hasilnya adalah 49,5 pengaturan 50 diterapkan. Jika tidak ada nilai yang ditentukan, nilai default 20 diterapkan.

Opsi konfigurasi ini akan memungkinkan Anda untuk menyempurnakan proses penskalaan sesuai dengan kebutuhan spesifik Anda, menyeimbangkan antara meminimalkan gangguan cluster dan mengoptimalkan kecepatan penskalaan. Parameter scale-config hanya akan berlaku untuk tipe engine Memcached dan akan diabaikan untuk mesin cache lainnya, memastikan kompatibilitas mundur dengan penggunaan API yang ada untuk cluster lain.

Panggilan API

aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config '{ "ScalePercentage": 30, "ScaleIntervalMinutes": 2 }' --apply-immediately

Hasil:

Mengembalikan ID cache cluster dan perubahan yang tertunda.

{ "CacheCluster": { "CacheNodeType": "old_insance_type", ... ... "PendingModifiedValues": { "CacheNodeType": "new_instance_type" }, } }

Buat daftar pengaturan penskalaan vertikal cache Memcached Anda

Anda dapat mengambil opsi penskalaan untuk cache Memcached Anda, dan melihat opsi mereka saat ini untuk penskalaan vertikal.

Panggilan API

aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>

Hasil:

{ "ScaleUpModifications": [ "cache.x.xxxx", "cache.x.xxxx" ], "ScaleDownModifications": [ "cache.x.xxxx", "cache.x.xxxx", "cache.x.xxxx" ] }

Penskalaan vertikal untuk Memcached dengan AWS Management Console

Untuk mengonversi cache yang dirancang sendiri Memcached yang sudah ada menjadi cache yang dapat menskalakan secara vertikal https://console.aws.amazon.com/elasticache/, ikuti langkah-langkah ini.

  1. Masuk ke AWS Management Console dan buka ElastiCache konsol di https://console.aws.amazon.com/elasticache/.

  2. Pilih cache Memcached untuk dikonversi.

  3. Pilih tab Modify.

  4. Buka bagian Pengaturan cache, dan pilih jenis Node yang diinginkan.

  5. Pilih Pratinjau perubahan, dan tinjau perubahannya.

  6. Pilih Ubah.

Penskalaan horizontal otomatis untuk Memcached

ElastiCache sekarang terintegrasi dengan layanan AWS Application Auto Scaling (AAS) untuk menyertakan penskalaan horizontal otomatis untuk cluster Memcached. Anda dapat menentukan kebijakan penskalaan melalui layanan AWS Application Auto Scaling, dan secara otomatis menyesuaikan jumlah node dalam klaster Memcached sesuai kebutuhan, berdasarkan metrik atau jadwal yang telah ditentukan sebelumnya.

catatan

Penskalaan horizontal otomatis saat ini tidak tersedia di Wilayah Beijing dan Ningxia.

Ini adalah metode yang tersedia untuk secara otomatis menskalakan cache yang dirancang sendiri secara horizontal.

  • Penskalaan Terjadwal: Penskalaan berdasarkan jadwal memungkinkan Anda mengatur jadwal penskalaan Anda sendiri untuk perubahan beban yang dapat diprediksi. Misalnya, setiap pekan lalu lintas ke aplikasi web Anda mulai meningkat pada hari Rabu, tetap tinggi pada hari Kamis, dan mulai berkurang pada hari Jumat. Anda dapat mengonfigurasi Auto Scaling untuk meningkatkan kapasitas pada hari Rabu dan mengurangi kapasitas pada hari Jumat.

  • Pelacakan Target: Dengan kebijakan penskalaan pelacakan target, Anda memilih metrik penskalaan dan menetapkan nilai target. Application Auto Scaling membuat dan mengelola CloudWatch alarm yang memicu kebijakan penskalaan dan menghitung penyesuaian penskalaan berdasarkan metrik dan nilai target. Kebijakan penskalaan menambah atau menghapus kapasitas yang diperlukan untuk menjaga metrik berada pada, atau mendekati, nilai target yang ditentukan.

Cara mengatur penskalaan horizontal untuk cache yang dirancang sendiri ElastiCache untuk Memcached melalui CLI

Untuk penskalaan horizontal dengan ElastiCache Memcached, Anda dapat memiliki kebijakan pelacakan target, kebijakan terjadwal, atau keduanya.

  1. Daftarkan sumber daya sebagai target yang dapat diskalakan

    Panggil RegisterScalableTarget API di AWS Application Auto Scaling untuk mendaftarkan target untuk dimensi yang dapat diskalakan. elasticache:cache-cluster:Nodes

    API: ApplicationAutoScaling. RegisterScalableTarget

    Masukan:

    { "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }
  2. Membuat kebijakan penskalaan pelacakan Target

    Selanjutnya, Anda dapat membuat kebijakan penskalaan pelacakan target untuk sumber daya dengan memanggil API kebijakan penskalaan put.

  3. Metrik yang telah ditentukan

    Berikut ini adalah kebijakan yang menskalakan sepanjang dimensi Cache Node, menggunakan metrik yang telah ditentukan ElastiCacheCPUUtilization, ditetapkan pada 50 untuk cache cluster test-cluster-1. Saat menghapus node untuk scale-in, n node terakhir akan dihapus.

    API: ApplicationAutoScaling. PutScalingPolicy

    Masukan:

    { "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheCPUUtilization" }, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }

    Output:

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/elasticache/cache-cluster/test-cluster-1:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }
  4. Metrik Kustom

    Anda juga dapat menyetel kebijakan penskalaan pada dimensi dengan menggunakan persentase kustom yang didasarkan pada metrik Cloudwatch.

    Masukan:

    { "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "CustomizedMetricSpecification": { "Dimensions": [ { "Name": "MyMetricDimension", "Value": "DimensionValue" } ], "MetricName": "MyCustomMetric", "Namespace": "MyNamespace", "Statistic": "Average", "Unit": "Percent" }, "TargetValue": 40, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }
  5. Tindakan Terjadwal

    Saat Anda perlu skala untuk acara tertentu dan kemudian menskalakan setelah acara, Anda dapat membuat dua tindakan terjadwal dengan memanggil PutScheduledAction API.

    Kebijakan 1: Penskalaan

    atPerintah dalam --schedule menjadwalkan tindakan yang akan dijalankan sekali pada tanggal dan waktu yang ditentukan di masa depan. Bidang jadwal juga mendukung laju (menit, jam, hari dll) dan cron (untuk ekspresi cron).

    Pada tanggal dan waktu yang ditentukan, Application Auto Scaling memperbarui nilai MinCapacity dan MaxCapacity. Application Auto Scaling MinCapacity menskalakan untuk menempatkan node cache ke 70.

    API: ApplicationAutoScaling. PutScheduledAction

    Masukan:

    { "ResourceId": "elasticache:ache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 100, "MinCapacity": 70 }, "Schedule": "at(2020-05-20T17:05:00)", "ScheduledActionName": "ScalingOutScheduledAction", "ServiceNamespace": "elasticache", }

    Kebijakan 2: Penskalaan

    Pada tanggal dan waktu yang ditentukan, Application Auto Scaling memperbarui tabel MinCapacity danMaxCapacity, dan skala MaxCapacity untuk mengembalikan node cache ke 60.

    API: ApplicationAutoScaling. PutScheduledAction

    Masukan:

    { "ResourceId": "elasticache:cache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 60, "MinCapacity": 40 }, "Schedule": "at(2020-05-21T17:05:00)", "ScheduledActionName": "ScalingInScheduledAction", "ServiceNamespace": "elasticache", }
  6. Lihat Aktivitas Penskalaan

    Anda dapat melihat aktivitas penskalaan menggunakan DescribeScalingActivities API.

    API: ApplicationAutoScaling. DescribeScalingActivities

    Output:

    { "ScalingActivities": [ { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 30.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf", "StartTime": 1462574194.658, "elasticacheNamespace": "elasticache", "EndTime": 1462574276.686, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Failed to set desired count to 30", "StatusCode": "Failed" }, { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 25.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "90aff0eb-dd6a-443c-889b-b809e78061c1", "StartTime": 1462574254.223, "elasticacheNamespace": "elasticache", "EndTime": 1462574333.492, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Successfully set desired count to 25. Change successfully fulfilled by elasticache.", "StatusCode": "Successful" } ] }
  7. Edit/Hapus Kebijakan Penskalaan

    Anda dapat mengedit atau menghapus kebijakan dengan memanggil PutScalingPolicy API lagi, atau dengan memanggil DeleteScalingPolicy atau DeleteScheduled Tindakan.

  8. De-register target yang dapat diskalakan

    Anda dapat membatalkan pendaftaran target yang dapat diskalakan melalui API. DeregisterScalableTarget Membatalkan pendaftaran target yang dapat diskalakan akan menghapus kebijakan penskalaan dan tindakan terjadwal yang terkait dengannya.

    API: ApplicationAutoScaling. DeregisterScalableTarget

    Masukan:

    { "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }
  9. Pembersihan Kebijakan Penskalaan

  10. Beberapa Kebijakan Penskalaan

    Anda dapat membuat beberapa kebijakan penskalaan. Berikut ini adalah info kunci tentang perilaku dari pelacakan target penskalaan otomatis.

    • Anda dapat memiliki beberapa kebijakan penskalaan pelacakan target untuk target yang dapat diskalakan, asalkan setiapnya menggunakan metrik yang berbeda.

    • Tujuan Application Auto Scaling adalah untuk selalu memprioritaskan ketersediaan, sehingga perilakunya berbeda tergantung pada apakah kebijakan pelacakan target siap untuk diperkecil atau diperbesar. Hal ini akan memperkecil skala target yang dapat diskala jika salah satu kebijakan pelacakan target siap untuk diperkecil skalanya, tetapi hanya akan memperbesar skala jika semua kebijakan pelacakan target (dengan penskalaan dalam porsi aktif) siap untuk diperbesar skalanya.

    • Jika beberapa kebijakan menginstruksikan target yang dapat diskalakan untuk memperbesar atau memperkecil skalanya di saat yang sama, Application Auto Scaling akan menskalakan berdasarkan kebijakan yang menyediakan kapasitas terbesar untuk pembesaran dan pengecilan skala. Hal ini memberikan fleksibilitas yang lebih besar untuk mencakup beberapa skenario dan memastikan bahwa selalu ada kapasitas yang cukup untuk memproses beban kerja aplikasi Anda.

    catatan

    AWS Application Auto Scaling tidak mengantri kebijakan penskalaan. Application Auto Scaling akan menunggu penskalaan pertama selesai, lalu cooldown, dan kemudian ulangi algoritma di atas.

Secara otomatis menskalakan cache Memcached secara horizontal melalui AWS Management Console

Untuk mengonversi cache yang dirancang sendiri Memcached yang sudah ada menjadi cache yang dapat menskalakan secara horizontal https://console.aws.amazon.com/elasticache/, ikuti langkah-langkah ini.

  1. Masuk ke AWS Management Console dan buka ElastiCache konsol di https://console.aws.amazon.com/elasticache/.

  2. Pilih cache Memcached untuk dikonversi.

  3. Buka tab Autoscaling.

  4. Pilih kebijakan penskalaan yang akan diterapkan, dengan memilih Tambahkan penskalaan dinamis atau Tambahkan penskalaan terjadwal.

  5. Isi detail untuk kebijakan yang dipilih sesuai kebutuhan.

  6. Klik Buat.