

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

# Penskalaan sesuai permintaan untuk cluster Memcached
<a name="Scaling-self-designed.mem-heading"></a>

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 menerapkan penskalaan vertikal ke cluster berbasis node 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 cluster berbasis node 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**  
Modifikasi tipe node hanya tersedia untuk cluster Memcached berbasis node dengan versi engine 1.5 atau yang lebih baru.
Penemuan Otomatis harus diaktifkan untuk memanfaatkan penskalaan vertikal. 

## Menyiapkan penskalaan vertikal sesuai permintaan untuk cluster Memcached berbasis node
<a name="Scaling.Memcached.automatically.setup.cli"></a>

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

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

1. **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 cluster berbasis node Memcached yang ada ke cache yang dapat menskalakan secara vertikal, Anda dapat menggunakan melalui CLI. `elasticache modify-cache-cluster`

```
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 cluster Memcached berbasis node melalui CLI, gunakan dengan dan parameternya dan. `elasticache modify-cache-cluster` `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 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 Konsol Manajemen AWS**

Ikuti langkah-langkah berikut untuk menggunakannya Konsol Manajemen AWS untuk mengonversi cluster Memcached berbasis node menjadi cluster yang dapat diskalakan secara vertikal.

1. Masuk ke Konsol Manajemen AWS dan buka ElastiCache konsol di [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. Pilih cluster Memcached untuk dikonversi.

1. Pilih tab **Modify**.

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

1. Pilih **Pratinjau perubahan**, dan tinjau perubahannya.

1. Pilih **Ubah**.

## Penskalaan horizontal otomatis untuk Memcached
<a name="Scaling-self-designed.mem-heading.horizontal"></a>

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 cluster berbasis node Anda 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 cluster Memcached berbasis node melalui CLI**

Saat menskalakan horizontal klaster Memcached berbasis simpul, Anda dapat menggunakan 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 
   }
   ```

1. **Membuat kebijakan penskalaan pelacakan Target**

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

1. **Metrik yang telah ditentukan**

   Berikut ini adalah kebijakan yang menskalakan sepanjang dimensi Cache Node, menggunakan metrik yang telah ditentukan` ElastiCacheCPUUtilization`, ditetapkan pada 50 untuk 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"
   		}
   	]
   }
   ```

1. **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"
   }
   ```

1. **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**

   `at`Perintah 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` dan`MaxCapacity`, 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",
   }
   ```

1. **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"
   		}
   	]
   }
   ```

1. **Edit/Hapus Kebijakan Penskalaan**

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

1. **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"
   }
   ```

1. **Pembersihan Kebijakan Penskalaan**

1. **Beberapa Kebijakan Penskalaan**

   Anda dapat membuat beberapa kebijakan penskalaan. Berikut ini adalah info kunci tentang perilaku dari pelacakan [target penskalaan otomatis](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html). 
   + 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 cluster Memcached berbasis node secara horizontal melalui Konsol Manajemen AWS**

Ikuti langkah-langkah berikut untuk menggunakan Konsol Manajemen AWS untuk mengonversi cluster Memcached berbasis node yang ada menjadi cluster yang dapat diskalakan secara horizontal.

1. Masuk ke Konsol Manajemen AWS dan buka ElastiCache konsol di [ https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. Pilih cache Memcached untuk dikonversi.

1. Buka tab **Autoscaling**.

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

1. Isi detail untuk kebijakan yang dipilih sesuai kebutuhan.

1. Klik **Buat**.