

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Uso do Auto Scaling com fragmentos
<a name="AutoScaling-Using-Shards"></a>

Com o Auto Scaling do ElastiCache, você pode usar políticas programadas e de monitoramento com seu mecanismo Valkey ou Redis OSS. 

O tópico seguinte fornece detalhes sobre o monitoramento do objetivo e as políticas programadas e como aplicá-las usando o Console de gerenciamento da AWS, a AWS CLI e APIs.

**Topics**
+ [Políticas de escalabilidade de rastreamento de destino](AutoScaling-Scaling-Policies-Target.md)
+ [Adicionar uma política de escalabilidade](AutoScaling-Scaling-Adding-Policy-Shards.md)
+ [Registro de um destino escalável](AutoScaling-Scaling-Registering-Policy-CLI.md)
+ [Definir uma política de escalabilidade](AutoScaling-Scaling-Defining-Policy-API.md)
+ [Desabilitar a atividade de redução](AutoScaling-Scaling-Disabling-Scale-in.md)
+ [Aplicar uma política de escalabilidade](AutoScaling-Scaling-Applying-a-Scaling-Policy.md)
+ [Editar uma política de escalabilidade](AutoScaling-Scaling-Editing-a-Scaling-Policy.md)
+ [Excluir uma política de escalabilidade](AutoScaling-Scaling-Deleting-a-Scaling-Policy.md)
+ [Use CloudFormation para políticas do Auto Scaling](AutoScaling-with-Cloudformation-Shards.md)
+ [Escalabilidade programada](AutoScaling-with-Scheduled-Scaling-Shards.md)

# Políticas de escalabilidade de rastreamento de destino
<a name="AutoScaling-Scaling-Policies-Target"></a>

Com as políticas de dimensionamento com monitoramento do objetivo, você seleciona uma métrica e define um valor pretendido. O Auto Scaling do ElastiCache para Valkey e Redis OSS cria e gerencia os alarmes do CloudWatch que acionam a política de escalabilidade e calculam o ajuste de escalabilidade com base na métrica e no valor de destino. A política de escalabilidade adiciona ou remove fragmentos conforme necessário para manter a métrica no valor de destino especificado ou próxima a ele. Além de manter a métrica próxima ao valor de destino, uma política de escalabilidade de rastreamento de destino também se ajusta às flutuações na métrica, devido a um padrão de carga de flutuação, e minimiza as flutuações rápidas na capacidade da frota. 

Por exemplo, considere uma política de escalabilidade que use a métrica predefinida de média `ElastiCachePrimaryEngineCPUUtilization` com valor de destino configurado. Essa política pode manter a utilização da CPU em, ou próxima do valor de destino especificado.

## Métricas predefinidas
<a name="AutoScaling-Scaling-Criteria-predfined-metrics"></a>

Uma métrica predefinida é uma estrutura que se refere a um nome, dimensão e estatística (`average`) específicos de uma determinada métrica do CloudWatch. Sua política de ajuste de escala automático define as seguintes métricas predefinidas para seu cluster:


****  

| Nome da métrica predefinida | Nome da métrica do CloudWatch | Diimensão da métrica do CloudWatch. | Tipos de instância inelegíveis  | 
| --- | --- | --- | --- | 
| ElastiCachePrimaryEngineCPUUtilization |  `EngineCPUUtilization`  |  ReplicationGroupId, Função = primária  | Nenhum | 
| ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage |  `DatabaseCapacityUsageCountedForEvictPercentage`  |  Métricas do grupo de replicação do Valkey ou Redis OSS  | Nenhum | 
| ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage |  `DatabaseMemoryUsageCountedForEvictPercentage`  |  Métricas do grupo de replicação do Valkey ou Redis OSS  | R6gd | 

Os tipos de instância em camadas de dados não podem usar `ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage`, pois esses tipos de instância armazenam dados na memória e no SSD. O caso de uso previsto para instâncias em camadas de dados é usar 100% de memória e preencher o SSD conforme necessário.

## Critérios do Auto Scaling para fragmentos
<a name="AutoScaling-Scaling-Criteria"></a>

Quando o serviço detectar que sua métrica predefinida é igual ou maior que a configuração de destino, ele aumentará automaticamente a capacidade dos fragmentos. O ElastiCache para Valkey e Redis OSS aumenta a escala na horizontal dos fragmentos do seu cluster em uma contagem igual à maior de dois números: variação percentual do objetivo e 20% dos fragmentos atuais. Para reduzir a escala horizontalmente, o ElastiCache não fará a redução da escala na horizontal automaticamente a menos que o valor geral da métrica seja inferior a 75% do seu objetivo definido. 

Para um exemplo de aumento de escala na horizontal, se você tiver 50 fragmentos e
+ se o seu objetivo violar em 30%, o ElastiCache aumentará a escala na horizontal em 30%, o que resultará em 65 fragmentos por cluster. 
+ Se o seu objetivo violar em 10%, o ElastiCache aumentará a escala na horizontal em um mínimo padrão de 20%, o que resultará em 60 fragmentos por cluster. 

Para um exemplo de redução de escala na horizontal, se você selecionou um valor de objetivo de 60%, o ElastiCache não reduzirá a escala na horizontal automaticamente até que a métrica seja menor ou igual a 45% (25% abaixo do objetivo de 60%).

## Considerações sobre o Auto Scaling
<a name="AutoScaling-Scaling-Considerations"></a>

Lembre-se das seguintes considerações:
+ Uma política de escalabilidade de rastreamento de destino pressupõe que ela deve aumentar a escalabilidade quando a métrica especificada estiver acima do valor de destino. Você não pode usar uma política de escalabilidade de rastreamento de destino para expandir quando a métrica especificada estiver abaixo do valor de destino. O ElastiCache para Valkey e Redis OSS aumenta a escala na horizontal de fragmentos em um desvio mínimo de 20% do objetivo dos fragmentos existentes no cluster.
+ Uma política de escalabilidade de rastreamento de destino não escala quando a métrica especificada tem dados insuficientes. Ela não reduz a escala horizontalmente, porque não interpreta dados insuficientes como baixa utilização. 
+ É possível ver lacunas entre o valor de destino e os pontos de dados de métrica reais. Isso ocorre porque o Auto Scaling do ElastiCache funciona de maneira segura por arredondamento para cima ou para baixo, quando ele determina a capacidade a ser adicionada ou removida. Isso evita que ele adicione capacidade insuficiente ou remova muita capacidade. 
+ Para garantir a disponibilidade da aplicação, o serviço aumenta a escala na horizontal proporcionalmente à métrica o mais rápido possível, mas é reduz a escala na horizontal de forma mais conservadora. 
+ Você pode ter várias políticas de escalabilidade com monitoramento do objetivo para um cluster do ElastiCache para Valkey e Redis OSS, desde que cada uma delas use uma métrica diferente. A intenção do ajuste de escala automático do ElastiCache é sempre priorizar a disponibilidade. Portanto, seu comportamento será diferente, se as políticas de monitoramento do objetivo estiverem prontas ou não para aumentar ou reduzir a escala horizontalmente. Ele vai aumentar o serviço se qualquer uma das políticas de monitoramento do objetivo estiverem prontas para aumentar, mas vai reduzir somente se todas as políticas de monitoramento do objetivo (com a parte de redução habilitada) estiverem prontas para reduzir. 
+ Não edite nem exclua os alarmes do CloudWatch que o ajuste de escala automático do ElastiCache gerencia para uma política de escalabilidade com monitoramento do destino. O Auto Scaling do ElastiCache exclui os alarmes automaticamente quando você exclui a política de escalabilidade. 
+ O Auto Scaling do ElastiCache não impede a modificação manual de fragmentos do cluster. Esses ajustes manuais não afetam alarmes existentes do CloudWatch que estejam conectados à política de escalabilidade, mas podem afetar métricas que possam acionar esses alarmes do CloudWatch. 
+ Esses alarmes do CloudWatch gerenciados pelo Auto Scaling são definidos na métrica do AVG em todos os fragmentos do cluster. Assim, ter fragmentos quentes pode resultar em qualquer cenário de:
  + escalabilidade quando não for necessário devido à carga em alguns fragmentos quentes que acionam um alarme do CloudWatch
  + não escalar quando necessário devido ao AVG agregado em todos os fragmentos que afetam o alarme não violarem. 
+ Os limites padrão do ElastiCache em nós por cluster ainda se aplicam. Então, ao optar pelo Auto Scaling, se você espera que os nós máximos sejam mais do que o limite padrão, solicite um aumento de limite em [Limites de serviço da AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) e escolha o tipo de limite **Nós por cluster por tipo de instância**. 
+ Certifique-se de que você tenha ENIs (interfaces de rede elásticas) suficientes disponíveis em sua VPC, que são necessárias durante o aumento de escala na horizontal. Para obter mais informações, consulte [Interfaces de rede elástica](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html).
+ Se não houver capacidade suficiente disponível do EC2, o Auto Scaling do ElastiCache não ajustará a escala e atrasará até que a capacidade esteja disponível.
+ O Auto Scaling do ElastiCache para Redis OSS, durante a redução de escala na horizontal, não removerá fragmentos com slots com um tamanho de item maior que 256 MB pós-serialização.
+ Durante a redução de escala na horizontal, ele não removerá fragmentos se houver memória insuficiente disponível na configuração de fragmento resultante.

# Adicionar uma política de escalabilidade
<a name="AutoScaling-Scaling-Adding-Policy-Shards"></a>

Você pode adicionar uma política de escalabilidade usando o Console de gerenciamento da AWS. 

**Para adicionar uma política do Auto Scaling a um cluster do ElastiCache para Valkey e Redis OSS**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. No painel de navegação, escolha **Valkey** ou **Redis OSS**. 

1. Selecione o cluster ao qual você deseja adicionar uma política (escolha o botão à esquerda do nome do cluster). 

1. Selecione a guia **Auto Scaling policies** (Políticas do Auto Scaling). 

1. Escolha **add dynamic scaling** (adicionar escalabilidade dinâmica). 

1. Em **Policy Name** (Nome da política), insira um nome para a política. 

1. Em **Scalable Dimension** (Dimensão escalável), escolha **shards** (fragmentos). 

1. Quanto à métrica de destino, escolha uma das seguintes opções:
   + **Primary CPU Utilization** (Utilização da CPU primária) para criar uma política com base na utilização média da CPU. 
   + **Memory** (Memória) para criar uma política com base na memória média do banco de dados. 
   + **Capacidade** de criar uma política com base no uso médio da capacidade do banco de dados. A métrica de capacidade inclui a utilização de memória e SSD para instâncias em camadas de dados e a utilização da memória para todos os outros tipos de instância.

1. Para o valor alvo, escolha um valor maior ou igual a 35 e menor ou igual a 70. O ajuste de escala automático manterá esse valor para a métrica de destino selecionada em seus fragmentos do ElastiCache: 
   + **Utilização primária da CPU**: mantém o valor alvo da métrica `EngineCPUUtilization` nos nós primários. 
   + **Memória**: mantém o valor alvo da métrica `DatabaseMemoryUsageCountedForEvictPercentage` 
   + **Capacidade**: mantém o valor alvo da métrica `DatabaseCapacityUsageCountedForEvictPercentage`

   Os fragmentos do cluster serão adicionados ou removidos para manter a métrica próxima ao valor especificado. 

1. (Opcional) Não há suporte do console para os períodos de desaquecimento de redução ou aumento de escala na horizontal. Use a AWS CLI para modificar os valores de desaquecimento. 

1. Em **Capacidade mínima**, insira o número mínimo de fragmentos que a política do Auto Scaling do ElastiCache é solicitada a manter. 

1. Em **Capacidade máxima**, insira o número máximo de fragmentos que a política do Auto Scaling do ElastiCache é solicitada a manter. Esse valor deve ser igual ou menor que 250.

1. Escolha **Criar**.

# Registro de um destino escalável
<a name="AutoScaling-Scaling-Registering-Policy-CLI"></a>

Antes de poder usar o Auto Scaling com um cluster do ElastiCache para Valkey e Redis OSS, você deve registrar seu cluster no ajuste de escala automático do ElastiCache. Faça isso para definir a dimensão de escalabilidade e os limites a serem aplicados no cluster. O ajuste de escala automático do ElastiCache escala dinamicamente o cluster ao longo da dimensão escalável `elasticache:replication-group:NodeGroups`, que representa o número de fragmentos de cluster. 

 **Como usar a AWS CLI** 

Para registrar o cluster do ElastiCache para Valkey e Redis OSS, use o comando [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) com os seguintes parâmetros: 
+ `--service-namespace`: defina o valor como `elasticache`
+ `--resource-id`: o identificador do recurso para o cluster. Para este parâmetro, o tipo de recurso é `ReplicationGroup` e o identificador exclusivo é nome do cluster, por exemplo `replication-group/myscalablecluster`. 
+ `--scalable-dimension`: defina este valor como `elasticache:replication-group:NodeGroups`. 
+ `--max-capacity `: o número máximo de fragmentos a serem gerenciados pelo ajuste de escala automático do ElastiCache. Para obter informações sobre a relação entre `--min-capacity`, `--max-capacity` e o número de fragmentos em seu cluster, consulte [Capacidades mínima e máxima](AutoScaling-Policies.md#AutoScaling-MinMax). 
+ `--min-capacity `: o número mínimo de fragmentos a serem gerenciados pelo ajuste de escala automático do ElastiCache. Para obter informações sobre a relação entre `--min-capacity`, `--max-capacity` e o número de fragmentos em seu cluster, consulte [Capacidades mínima e máxima](AutoScaling-Policies.md#AutoScaling-MinMax). 

**Example**  
 No exemplo a seguir, registre um cluster do ElastiCache de nome `myscalablecluster`. O registro indica que o cluster deve ser escalado dinamicamente para ter de um a dez fragmentos.   
Para Linux, macOS ou Unix:  

```
aws application-autoscaling register-scalable-target \
    --service-namespace elasticache \
    --resource-id replication-group/myscalablecluster \
    --scalable-dimension elasticache:replication-group:NodeGroups \
    --min-capacity 1 \
    --max-capacity 10 \
```
Para Windows:  

```
aws application-autoscaling register-scalable-target ^
    --service-namespace elasticache ^
    --resource-id replication-group/myscalablecluster ^
    --scalable-dimension elasticache:replication-group:NodeGroups ^
    --min-capacity 1 ^
    --max-capacity 10 ^
```

**Usar a API**

Para registrar o cluster do ElastiCache, use o comando [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) com os seguintes parâmetros: 
+ ServiceNamespace: defina este valor como elasticache. 
+ ResourceID: o identificador de recursos para o cluster do ElastiCache. Para este parâmetro, o tipo de recurso é ReplicationGroup e o identificador exclusivo é nome do cluster, por exemplo `replication-group/myscalablecluster`. 
+ ScalableDimension: defina este valor como `elasticache:replication-group:NodeGroups`. 
+ MinCapacity: o número mínimo de fragmentos a serem gerenciados pelo ajuste de escala automático do ElastiCache. Para obter informações sobre a relação entre --min-capacity, --max-capacity e o número de réplicas no cluster, consulte [Capacidades mínima e máxima](AutoScaling-Policies.md#AutoScaling-MinMax).
+ MaxCapacity: o número máximo de fragmentos a serem gerenciados pelo ajuste de escala automático do ElastiCache. Para obter informações sobre a relação entre --min-capacity, --max-capacity e o número de réplicas no cluster, consulte [Capacidades mínima e máxima](AutoScaling-Policies.md#AutoScaling-MinMax).

**Example**  
No exemplo a seguir, registre um cluster do ElastiCache chamado `myscalablecluster` na API do Application Auto Scaling. Este registro indica que o cluster deve ser escalado dinamicamente para ter de uma a 5 réplicas.   

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.RegisterScalableTarget
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:NodeGroups",
    "MinCapacity": 1,
    "MaxCapacity": 5
}
```

# Definir uma política de escalabilidade
<a name="AutoScaling-Scaling-Defining-Policy-API"></a>

Uma configuração de política de escalabilidade de rastreamento de destino é representada por um bloco JSON no qual as métricas e valores de destino são definidos. Você pode salvar uma configuração de política de escalabilidade como um bloco JSON em um arquivo de texto. Você pode usar esse arquivo de texto ao invocar a AWS CLI ou a API do Application Auto Scaling. Para obter mais informações sobre a sintaxe de configuração de política, consulte [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html) na Referência da API do Application Auto Scaling. 

As seguintes opções estão disponíveis para definir uma configuração de política de escalabilidade com monitoramento do objetivo: 

**Topics**
+ [Uso de uma métrica predefinida](#AutoScaling-Scaling-Predefined-Metric)
+ [Uso de uma métrica personalizada](#AutoScaling-Scaling-Custom-Metric)
+ [Uso de períodos de desaquecimento](#AutoScaling-Scaling-Cooldown-periods)

## Uso de uma métrica predefinida
<a name="AutoScaling-Scaling-Predefined-Metric"></a>

Com o uso de métricas predefinidas, você pode definir rapidamente uma política de escalabilidade com monitoramento do objetivo para um cluster do ElastiCache para Valkey e Redis OSS que funcione com o monitoramento do objetivo no ajuste de escala automático do ElastiCache. 

Atualmente, o ElastiCache oferece suporte às seguintes métricas predefinidas no Auto Scaling do NodeGroup: 
+ **ElastiCachePrimaryEngineCPUUtilization**: o valor médio da métrica `EngineCPUUtilization` no CloudWatch em todos os nós primários no cluster.
+ **ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage**: o valor médio da métrica `DatabaseMemoryUsageCountedForEvictPercentage` no CloudWatch em todos os nós primários no cluster.
+ **ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage**: o valor médio da métrica `ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage` no CloudWatch em todos os nós primários no cluster.

Para ter mais informações sobre as métricas `EngineCPUUtilization`, `DatabaseMemoryUsageCountedForEvictPercentage` e `DatabaseCapacityUsageCountedForEvictPercentage`, consulte [Monitorando o uso com CloudWatch métricas](CacheMetrics.md). Para usar uma métrica predefinida em sua política de escalabilidade, crie uma configuração de rastreamento de destino para sua política de escalabilidade. Essa configuração deve incluir uma `PredefinedMetricSpecification` para a métrica predefinida e um TargetValue para o valor de destino dessa métrica. 

**Example**  
O exemplo a seguir descreve uma configuração de política típica para a escalabilidade com monitoramento do objetivo para um cluster do ElastiCache para Valkey e Redis OSS. Nessa configuração, a métrica predefinida `ElastiCachePrimaryEngineCPUUtilization` é usada para ajustar o cluster com base em uma utilização média da CPU de 40 por cento em todos os nós primários no cluster.   

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    }
}
```

## Uso de uma métrica personalizada
<a name="AutoScaling-Scaling-Custom-Metric"></a>

 Com o uso de métricas personalizadas, você pode definir uma política de escalabilidade de rastreamento de destino que atenda a suas exigências personalizadas. Você pode definir uma métrica personalizada com base em qualquer métrica do ElastiCache que mude na proporção da escalabilidade. Nem todas as métricas do ElastiCache funcionam para o monitoramento do objetivo. A métrica deve ser de utilização válida e descrever o quão ocupada uma instância está. O valor da métrica deve aumentar ou diminuir na proporção do número de fragmentos no cluster. Essa aumento ou redução proporcional é necessário para usar os dados da métrica para expandir ou reduzir proporcionalmente o número de fragmentos. 

**Example**  
O exemplo a seguir descreve uma configuração de rastreamento de destino para uma política de escalabilidade. Nessa configuração, uma métrica personalizada ajusta um cluster do ElastiCache for Redis OSS com base na utilização média de uma CPU em 50 por centro em todos os fragmentos em um cluster chamado `my-db-cluster`. 

```
{
    "TargetValue": 50,
    "CustomizedMetricSpecification":
    {
        "MetricName": "EngineCPUUtilization",
        "Namespace": "AWS/ElastiCache",
        "Dimensions": [
            {
                "Name": "ReplicationGroup","Value": "my-db-cluster"
            },
            {
                "Name": "Role","Value": "PRIMARY"
            }
        ],
        "Statistic": "Average",
        "Unit": "Percent"
    }
}
```

## Uso de períodos de desaquecimento
<a name="AutoScaling-Scaling-Cooldown-periods"></a>

Você pode especificar um valor, em segundos, para `ScaleOutCooldown` a fim de adicionar um desaquecimento para expandir seu cluster. De forma similar, você pode adicionar um valor, em segundos, para `ScaleInCooldown` a fim de adicionar um período de desaquecimento para reduzir a escala na horizontal do seu cluster. Para obter mais informações, consulte [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html) na Referência da API do Application Auto Scaling. 

 O exemplo a seguir descreve uma configuração de rastreamento de destino para uma política de escalabilidade. Nessa configuração, a métrica predefinida `ElastiCachePrimaryEngineCPUUtilization` é usada para ajustar um cluster do ElastiCache para Redis OSS com base em uma utilização média da CPU de 40 por cento em todos os nós primários do cluster. A configuração fornece um período de espera de 10 minutos para reduzir a escala horizontalmente, e um período de espera de 5 minutos para aumentar a escala horizontalmente. 

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    },
    "ScaleInCooldown": 600,
    "ScaleOutCooldown": 300
}
```

# Desabilitar a atividade de redução
<a name="AutoScaling-Scaling-Disabling-Scale-in"></a>

Você pode evitar que a configuração da política de escalabilidade com monitoramento de objetivo reduza a escala na horizontal de seu cluster desabilitando a atividade de redução de escala horizontal. Desabilitar a atividade de redução de escala na horizontal impede que a política de escalabilidade exclua fragmentos, enquanto permite ao mesmo tempo que a política de escalabilidade crie-os conforme necessário. 

Você pode especificar um valor booleano para `DisableScaleIn` a fim de permitir ou evitar a atividade de redução de escala na horizontal no seu cluster. Para obter mais informações, consulte [TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_TargetTrackingScalingPolicyConfiguration.html) na Referência da API do Application Auto Scaling. 

O exemplo a seguir descreve uma configuração de rastreamento de destino para uma política de escalabilidade. Nessa configuração, a métrica predefinida `ElastiCachePrimaryEngineCPUUtilization` ajusta um cluster do ElastiCache para Valkey e Redis OSS com base em uma utilização média da CPU de 40 por cento em todos os nós primários do cluster. A configuração desativa a atividade de redução para a política de escalabilidade. 

```
{
    "TargetValue": 40.0,
    "PredefinedMetricSpecification":
    {
        "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
    },
    "DisableScaleIn": true
}
```

# Aplicar uma política de escalabilidade
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy"></a>

Após registrar seu cluster com o ajuste de escala automático do ElastiCache para Valkey e Redis OSS e definir uma política de escalabilidade, aplique a política de escalabilidade ao cluster registrado. Para aplicar uma política de escalabilidade a um cluster do ElastiCache para Redis OSS, você pode usar a AWS CLI ou a API do Application Auto Scaling. 

## Aplicação de uma política de escalabilidade usando a AWS CLI
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy-CLI"></a>

Para aplicar uma política de escalabilidade a seu cluster do ElastiCache para Valkey e Redis OSS, use o comando [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) com os seguintes parâmetros: 
+ **--policy-name**: o nome da política de escalabilidade. 
+ **--policy-type**: defina este valor como `TargetTrackingScaling`. 
+ **--resource-id**: o identificador do recurso. Para este parâmetro, o tipo de recurso é `ReplicationGroup` e o identificador exclusivo é nome do cluster, por exemplo `replication-group/myscalablecluster`. 
+ **--service-namespace**: defina este valor como `elasticache`. 
+ **--scalable-dimension**: defina este valor como `elasticache:replication-group:NodeGroups`. 
+ **--target-tracking-scaling-policy-configuration**: a configuração da política de escalabilidade com monitoramento do objetivo a ser usada para o cluster. 

No exemplo a seguir, é aplicada uma política de escalabilidade com monitoramento do objetivo chamada `myscalablepolicy` a um cluster do ElastiCache para Valkey e Redis OSS chamado `myscalablecluster` com o ajuste de escala automático do ElastiCache. Para fazer isso, use uma configuração de política salva em um arquivo chamado `config.json`. 

Para Linux, macOS ou Unix:

```
aws application-autoscaling put-scaling-policy \
    --policy-name myscalablepolicy \
    --policy-type TargetTrackingScaling \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:NodeGroups \
    --target-tracking-scaling-policy-configuration file://config.json
```

Para Windows:

```
aws application-autoscaling put-scaling-policy ^
    --policy-name myscalablepolicy ^
    --policy-type TargetTrackingScaling ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:NodeGroups ^
    --target-tracking-scaling-policy-configuration file://config.json
```

## Aplicação de uma política de escalabilidade usando a API
<a name="AutoScaling-Scaling-Applying-a-Scaling-Policy-API"></a>

Para aplicar uma política de escalabilidade a seu cluster do ElastiCache para Valkey e Redis OSS, use o comando da AWS CLI [PutScalingPolicy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) com os seguintes parâmetros: 
+ **--policy-name**: o nome da política de escalabilidade. 
+ **--resource-id**: o identificador do recurso. Para este parâmetro, o tipo de recurso é `ReplicationGroup` e o identificador exclusivo é nome do cluster, por exemplo `replication-group/myscalablecluster`. 
+ **--service-namespace**: defina este valor como `elasticache`. 
+ **--scalable-dimension**: defina este valor como `elasticache:replication-group:NodeGroups`. 
+ **--target-tracking-scaling-policy-configuration**: a configuração da política de escalabilidade com monitoramento do objetivo a ser usada para o cluster. 

No exemplo a seguir, aplique a política de escalabilidade com monitoramento do objetivo chamada `myscalablepolicy` para um cluster do ElastiCache chamado `myscalablecluster` com a escalabilidade automática do ElastiCache. Use uma configuração de política com base na métrica predefinida `ElastiCachePrimaryEngineCPUUtilization`. 

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.PutScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:NodeGroups",
    "PolicyType": "TargetTrackingScaling",
    "TargetTrackingScalingPolicyConfiguration": {
        "TargetValue": 40.0,
        "PredefinedMetricSpecification":
        {
            "PredefinedMetricType": "ElastiCachePrimaryEngineCPUUtilization"
        }
    }
}
```

# Editar uma política de escalabilidade
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy"></a>

Você pode editar uma política de escalabilidade usando o Console de gerenciamento da AWS, a AWS CLI ou a API do Application Auto Scaling. 

## Editar uma política de escalabilidade usando o Console de gerenciamento da AWS
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CON"></a>

**Para editar uma política de ajuste de escala automático em um cluster do ElastiCache para Valkey e Redis OSS**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. No painel de navegação, selecione o mecanismo apropriado. 

1. Selecione o cluster ao qual você deseja adicionar uma política (escolha o botão à esquerda do nome do cluster). 

1. Selecione a guia **Auto Scaling policies** (Políticas do Auto Scaling). 

1. Em **Scaling policies** (Políticas de escalabilidade), escolha o botão à esquerda da política de autoescalabilidade que você deseja alterar e selecione **Modify** (Modificar). 

1. Faça as alterações necessárias na política.

1. Escolha **Modificar**.

## Edição de uma política de escalabilidade usando a AWS CLI e a API
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CLI"></a>

Você pode usar a AWS CLI ou a API do Application Auto Scaling para editar uma política de escalabilidade da mesma forma que você aplica uma política de escalabilidade: 
+ Ao usar a AWS CLI, especifique o nome da política que você deseja editar no parâmetro `--policy-name`. Especifique novos valores para os parâmetros que você deseja alterar. 
+ Ao usar a API do Application Auto Scaling, especifique o nome da política que você deseja editar no parâmetro `PolicyName`. Especifique novos valores para os parâmetros que você deseja alterar. 

Para obter mais informações, consulte [Aplicar uma política de escalabilidade](AutoScaling-Scaling-Applying-a-Scaling-Policy.md).

# Excluir uma política de escalabilidade
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy"></a>

Você pode excluir uma política de escalabilidade usando o Console de gerenciamento da AWS, a AWS CLI ou a API do Application Auto Scaling. 

## Excluir uma política de escalabilidade usando o Console de gerenciamento da AWS
<a name="AutoScaling-Scaling-Editing-a-Scaling-Policy-CON"></a>

**Para excluir uma política do Auto Scaling de um cluster do ElastiCache para Redis OSS**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. No painel de navegação, escolha **Valkey** ou **Redis OSS**. 

1. Escolha o cluster cuja política de autoescalabilidade você deseja editar (selecione o nome do cluster, e não o botão à esquerda). 

1. Selecione a guia **Auto Scaling policies** (Políticas do Auto Scaling). 

1. Na seção **Auto scaling policies** (Políticas de autoescalabilidade), escolha a respectiva política e selecione **Delete** (Excluir). 

## Excluir uma política de escalabilidade usando o AWS CLI
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy-CLI"></a>

Para excluir uma política de escalabilidade do seu cluster do ElastiCache para Valkey e Redis OSS, use o comando [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/delete-scaling-policy.html) AWS CLI com os seguintes parâmetros: 
+ **--policy-name**: o nome da política de escalabilidade. 
+ **--resource-id**: o identificador do recurso. Para este parâmetro, o tipo de recurso é `ReplicationGroup` e o identificador exclusivo é nome do cluster, por exemplo `replication-group/myscalablecluster`. 
+ **--service-namespace**: defina este valor como `elasticache`. 
+ **--scalable-dimension**: defina este valor como `elasticache:replication-group:NodeGroups`. 

No exemplo a seguir, a política de escalabilidade com monitoramento do objetivo chamada `myscalablepolicy` é excluída de um cluster chamado `myscalablecluster`. 

Para Linux, macOS ou Unix:

```
aws application-autoscaling delete-scaling-policy \
    --policy-name myscalablepolicy \
    --resource-id replication-group/myscalablecluster \
    --service-namespace elasticache \
    --scalable-dimension elasticache:replication-group:NodeGroups
```

Para Windows:

```
aws application-autoscaling delete-scaling-policy ^
    --policy-name myscalablepolicy ^
    --resource-id replication-group/myscalablecluster ^
    --service-namespace elasticache ^
    --scalable-dimension elasticache:replication-group:NodeGroups
```

## Exclusão de uma política de escalabilidade usando a API
<a name="AutoScaling-Scaling-Deleting-a-Scaling-Policy-API"></a>

Para excluir uma política de escalabilidade do seu cluster do ElastiCache para Valkey e Redis OSS, use o comando [DeleteScalingPolicy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/delete-scaling-policy.html) AWS CLI com os seguintes parâmetros: 
+ **--policy-name**: o nome da política de escalabilidade. 
+ **--resource-id**: o identificador do recurso. Para este parâmetro, o tipo de recurso é `ReplicationGroup` e o identificador exclusivo é nome do cluster, por exemplo `replication-group/myscalablecluster`. 
+ **--service-namespace**: defina este valor como `elasticache`. 
+ **--scalable-dimension**: defina este valor como `elasticache:replication-group:NodeGroups`. 

No exemplo a seguir, a política de escalabilidade com monitoramento do objetivo chamada `myscalablepolicy` é excluída de um cluster chamado `myscalablecluster`. 

```
POST / HTTP/1.1
Host: autoscaling.us-east-2.amazonaws.com
Accept-Encoding: identity
Content-Length: 219
X-Amz-Target: AnyScaleFrontendService.DeleteScalingPolicy
X-Amz-Date: 20160506T182145Z
User-Agent: aws-cli/1.10.23 Python/2.7.11 Darwin/15.4.0 botocore/1.4.8
Content-Type: application/x-amz-json-1.1
Authorization: AUTHPARAMS
{
    "PolicyName": "myscalablepolicy",
    "ServiceNamespace": "elasticache",
    "ResourceId": "replication-group/myscalablecluster",
    "ScalableDimension": "elasticache:replication-group:NodeGroups"
}
```

# Use CloudFormation para políticas do Auto Scaling
<a name="AutoScaling-with-Cloudformation-Shards"></a>

Este trecho mostra como criar uma política com monitoramento do objetivo e aplicá-la a um recurso [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) usando o recurso [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html). Ela usa as funções intrínsecas [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) e [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) para construir a propriedade `ResourceId` com o nome lógico do recurso `AWS::ElastiCache::ReplicationGroup` especificado no mesmo modelo. 

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"

  ScalingPolicy:
    Type: "AWS::ApplicationAutoScaling::ScalingPolicy"
    Properties:
      ScalingTargetId: !Ref ScalingTarget
      ServiceNamespace: elasticache
      PolicyName: testpolicy
      PolicyType: TargetTrackingScaling
      ScalableDimension: 'elasticache:replication-group:NodeGroups'
      TargetTrackingScalingPolicyConfiguration:
        PredefinedMetricSpecification:
          PredefinedMetricType: ElastiCachePrimaryEngineCPUUtilization
        TargetValue: 40
```

# Escalabilidade programada
<a name="AutoScaling-with-Scheduled-Scaling-Shards"></a>

A escalabilidade com base em uma programação permite que você dimensione sua aplicação em resposta a alterações de demanda. Para usar a escalabilidade programada, você deve criar ações programadas, que instruem o ElastiCache para Valkey e Redis OSS a executar ações de escalabilidade em momentos específicos. Quando você cria uma ação programada, especifica um cluster existente, quando a ação de escalabilidade deve ocorrer, a capacidade mínima e a capacidade máxima. É possível criar ações programadas para escalar uma única vez ou de forma programada. 

 Você só pode criar uma ação programada para clusters que já existam. Você não pode criar uma ação programada ao mesmo tempo em que você cria um cluster.

Para obter mais informações sobre terminologia para criação, gerenciamento e exclusão de ações programadas, consulte [Comandos normalmente usados para criação, gerenciamento e exclusão de ações programadas](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html#scheduled-scaling-commonly-used-commands) 

**Para criar em uma programação recorrente:**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. No painel de navegação, escolha **Valkey** ou **Redis OSS**. 

1. Escolha o cluster ao qual você deseja adicionar uma política. 

1. Escolha **Manage Auto Scaling policies** (Gerenciar políticas do Auto Scaling) no menu suspenso **Actions** (Ações). 

1. Escolha a guia **Auto Scaling policies** (Políticas do Auto Scaling).

1. Na seção **Auto Scaling policies** (Políticas de Auto Scaling), a caixa de diálogo **Add Scaling policy** (Adicionar política de escalabilidade) será exibida. Escolha **Scheduled scaling** (Escalabilidade programada).

1. Em **Policy Name** (Nome da política), insira um nome para a política. 

1. Em **Scalable Dimension** (Dimensão escalável), escolha **Shards** (Fragmentos). 

1. Em **Target Shards** (Fragmentos de destino), escolha o valor. 

1. Em **Recurrence** (Recorrência), escolha **Recurring** (Recorrente). 

1. Em **Frequency** (Frequência), escolha o respectivo valor. 

1. Em **Start Date** (Data de início) e **Start time** (Horário de início), escolha o horário a partir do qual a política entrará em vigor. 

1. Escolha **Add policy** (Adicionar política). 

**Para criar uma ação programada para executar uma única vez:**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. No painel de navegação, escolha **Valkey** ou **Redis OSS**. 

1. Escolha o cluster ao qual você deseja adicionar uma política. 

1. Escolha **Manage Auto Scaling policies** (Gerenciar políticas do Auto Scaling) no menu suspenso **Actions** (Ações). 

1. Escolha a guia **Auto Scaling policies** (Políticas do Auto Scaling).

1. Na seção **Auto Scaling policies** (Políticas de Auto Scaling), a caixa de diálogo **Add Scaling policy** (Adicionar política de escalabilidade) será exibida. Escolha **Scheduled scaling** (Escalabilidade programada).

1. Em **Policy Name** (Nome da política), insira um nome para a política. 

1. Em **Scalable Dimension** (Dimensão escalável), escolha **Shards** (Fragmentos). 

1. Em **Target Shards** (Fragmentos de destino), escolha o valor. 

1. Em **Recurrence** (Recorrência), escolha **One Time** (Uma vez). 

1. Em **Start Date** (Data de início) e **Start time** (Horário de início), escolha o horário a partir do qual a política entrará em vigor. 

1. Em **End Date** (Data de término), escolha a data até quando a política estará em vigor. 

1. Escolha **Add policy** (Adicionar política). 

**Para excluir uma ação programada**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon ElastiCache em [https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/).

1. No painel de navegação, escolha **Valkey** ou **Redis OSS**. 

1. Escolha o cluster ao qual você deseja adicionar uma política. 

1. Escolha **Manage Auto Scaling policies** (Gerenciar políticas do Auto Scaling) no menu suspenso **Actions** (Ações). 

1. Escolha a guia **Auto Scaling policies** (Políticas do Auto Scaling).

1. Na seção **Auto scaling policies** (Políticas do Auto Scaling), escolha a política do Auto Scaling e depois escolha **Delete** (Excluir) na caixa de diálogo **Actions** (Ações).

**Para gerenciar a escalabilidade programada usando o AWS CLI **

Use as seguintes APIs de application-autoscaling:
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-action.html) 
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/describe-scheduled-actions.html) 
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/delete-scheduled-action.html) 

## Use CloudFormation para criar uma ação programada
<a name="AutoScaling-with-Cloudformation-Declare-Scheduled-Action"></a>

Este trecho mostra como criar uma política com monitoramento do objetivo e aplicá-la a um recurso [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html) usando o recurso [AWS::ApplicationAutoScaling::ScalableTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html). Ela usa as funções intrínsecas [Fn::Join](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) e [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) para construir a propriedade `ResourceId` com o nome lógico do recurso `AWS::ElastiCache::ReplicationGroup` especificado no mesmo modelo. 

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"
     ScheduledActions:
       - EndTime: '2020-12-31T12:00:00.000Z'
         ScalableTargetAction:
           MaxCapacity: '5'
           MinCapacity: '2'
         ScheduledActionName: First
         Schedule: 'cron(0 18 * * ? *)'
```