

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á.

# Ajuste de escala automático do número de réplicas em um cluster de banco de dados do Amazon Neptune
<a name="manage-console-autoscaling"></a>

É possível usar o ajuste de escala automático do Neptune para ajustar automaticamente o número de réplicas do Neptune em um cluster de banco de dados para atender aos requisitos de conectividade e workload. O ajuste de escala automático permite que o cluster de banco de dados do Neptune processe aumentos na workload e, quando a workload diminui, o ajuste de escala automático remove réplicas desnecessárias para que você não pague pela capacidade não utilizada.

É possível usar o ajuste de escala automático apenas com um cluster de banco de dados do Neptune que já tenha uma instância de gravador principal e pelo menos uma instância de réplica de leitura (consulte [Clusters e instâncias de banco de dados do Amazon Neptune](feature-overview-db-clusters.md)). Além disso, todas as instâncias de réplica de leitura no cluster devem estar em um estado disponível. Se alguma réplica de leitura estiver em um estado diferente de disponível, o ajuste de escala automático do Neptune não fará nada até que todas as réplicas de leitura no cluster estejam disponíveis.

Consulte [Criar cluster do Neptune](get-started-create-cluster.md) se você precisar criar um cluster.

Usando a AWS CLI, defina e aplique uma [política de escalabilidade](#manage-console-autoscaling-define-policy) ao cluster de banco de dados. Você também pode usar a AWS CLI para editar ou excluir a política de ajuste de escala automático. A política especifica os seguintes parâmetros de ajuste de escala automático:
+ O número mínimo e máximo de réplicas a serem mantidas no cluster.
+ Um intervalo `ScaleOutCooldown` entre a atividade de escalabilidade de adição de réplicas e um intervalo `ScaleInCooldown` entre a atividade de escalabilidade de exclusão de réplicas.
+ A métrica do CloudWatch e o valor de gatilho da métrica para aumentar ou reduzir a escala verticalmente.

A frequência das ações de ajuste de escala automático do Neptune é reduzida de várias maneiras:
+ Inicialmente, para que o ajuste de escala automático adicione ou exclua um leitor, o alarme alto `CPUUtilization` deve ser violado por pelo menos três minutos ou o alarme baixo deve ser violado por pelo menos 15 minutos.
+ Após a primeira adição ou exclusão, a frequência das ações subsequentes de ajuste de escala automático do Neptune é limitada pelas configurações `ScaleOutCooldown` e `ScaleInCooldown` na política de ajuste de escala automático.

Se a métrica do CloudWatch que você está usando atingir o limite alto especificado na política e se o intervalo `ScaleOutCooldown` tiver decorrido desde a última ação de ajuste de escala automático e o cluster de banco de dados ainda não tiver o número máximo de réplicas definido, o ajuste de escala automático do Neptune criará uma réplica usando o mesmo tipo da instância principal do cluster de banco de dados.

Da mesma forma, se a métrica atingir o limite baixo especificado e se o intervalo `ScaleInCooldown` tiver decorrido desde a última ação de ajuste de escala automático, e se o cluster de banco de dados tiver mais do que o número mínimo de réplicas especificado, o ajuste de escala automático do Neptune excluirá uma das réplicas.

**nota**  
O ajuste de escala automático do Neptune remove somente as réplicas criadas. Ele não remove réplicas preexistentes.

Usando o parâmetro de cluster de banco de dados [neptune\$1autoscaling\$1config](parameters.md#parameters-db-cluster-parameters-neptune_autoscaling_config), também é possível especificar o tipo de instância das novas réplicas de leitura criadas pelo ajuste de escala automático do Neptune, as janelas de manutenção dessas réplicas de leitura e as tags a serem associadas a cada uma das novas réplicas de leitura. Você fornece essas configurações em uma string JSON como o valor do parâmetro `neptune_autoscaling_config`, desta forma:

```
"{
  \"tags\": [
    { \"key\" : \"reader tag-0 key\", \"value\" : \"reader tag-0 value\" },
    { \"key\" : \"reader tag-1 key\", \"value\" : \"reader tag-1 value\" },
  ],
  \"maintenanceWindow\" : \"wed:12:03-wed:12:33\",
  \"dbInstanceClass\" : \"db.r5.xlarge\"
}"
```

Observe que as aspas dentro da string JSON devem ter todas um caractere de escape que é uma barra invertida (`\`). Todos os espaços em branco na string são opcionais, como de costume.

Qualquer uma das três definições de configuração não especificadas no parâmetro `neptune_autoscaling_config` é copiada da configuração da instância de gravador principal do cluster de banco de dados.

Quando o [ajuste de escala automático](https://docs.aws.amazon.com/autoscaling/plans/userguide/) adiciona uma nova instância de réplica de leitura, ele inclui no ID da instância de banco de dados o prefixo `autoscaled-reader` (por exemplo, `autoscaled-reader-7r7t7z3lbd-20210828`). Ele também adiciona uma tag a cada réplica de leitura criada com a chave `autoscaled-reader` e um valor de `TRUE`. É possível visualizar essa tag na guia **Tags** da página de detalhes da instância de banco de dados no Console de gerenciamento da AWS.

```
 "key" : "autoscaled-reader",  "value" : "TRUE"
```

O nível de promoção de todas as instâncias de réplica de leitura criadas pelo ajuste de escala automático é o de menor prioridade, que é `15` por padrão. Isso significa que, durante um failover, qualquer réplica com uma prioridade maior, como uma criada manualmente, será promovida primeiro. Consulte [Tolerância a falhas para um cluster de banco de dados do Neptune](backup-restore-overview-fault-tolerance.md).

O ajuste de escala automático do Neptune é implementado usando o Application Auto Scaling com uma [política de escalabilidade de rastreamento de destino](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) que usa uma métrica do CloudWatch [`CPUUtilization`](cw-metrics.md#cw-metrics-available) do Neptune como métrica predefinida.

## Usar o ajuste de escala automático em um cluster de banco de dados sem servidor do Neptune
<a name="autoscaling-with-serverless"></a>

O Neptune Serverless responde com uma velocidade muito maior do que o ajuste de escala automático do Neptune quando a demanda excede a capacidade de uma instância e aumenta a escala da instância verticalmente em vez de adicionar outra instância. Enquanto o ajuste de escala automático é projetado para corresponder a aumentos ou diminuições relativamente estáveis na workload, a tecnologia sem servidor é excelente para lidar com picos rápidos e oscilações na demanda.

Compreendendo os pontos fortes, você pode combinar o ajuste de escala automático e a tecnologia sem servidor para criar uma infraestrutura flexível que lidará com as mudanças na workload com eficiência e atenderá à demanda minimizando os custos.

Para permitir que o ajuste de escala automático funcione com eficiência com a tecnologia sem servidor, é importante [definir a configuração do `maxNCU` do cluster sem servidor](neptune-serverless-capacity-scaling.md#neptune-serverless-capacity-range-max) alta o suficiente para acomodar picos e breves mudanças na demanda. Caso contrário, alterações transitórias não acionam a escalabilidade sem servidor, o que pode fazer com que o ajuste de escala automático gere muitas instâncias adicionais desnecessárias. Se o `maxNCU` estiver definido como alto o suficiente, o ajuste de escala automático sem servidor pode lidar com essas alterações de forma mais rápida e econômica.

## Como habilitar o ajuste de escala automático do Amazon Neptune
<a name="manage-console-autoscaling-enable"></a>

O ajuste de escala automático só pode ser habilitado para um cluster de banco de dados do Neptune usando a AWS CLI. Não é possível habilitar o ajuste de escala automático usando o. Console de gerenciamento da AWS.

Além disso, o ajuste de escala automático não é compatível com as seguintes regiões da Amazon:
+ África (Cidade do Cabo): `af-south-1`
+ Oriente Médio (Emirados Árabes Unidos): `me-central-1`
+ AWS GovCloud (Leste dos EUA): `us-gov-east-1`
+ AWS GovCloud (Oeste dos EUA): `us-gov-west-1`

Habilitar o ajuste de escala automático para um cluster de banco de dados do Neptune envolve três etapas:

### 1. Registrar o cluster de banco de dados com o Application Auto Scaling
<a name="manage-console-autoscaling-register"></a>

A primeira etapa para habilitar o ajuste de escala automático para um cluster de banco de dados do Neptune é registrar o cluster no Application Auto Scaling usando a AWS CLI ou um dos SDKs do Application Auto Scaling. O cluster já deve ter uma instância principal e pelo menos uma instância de réplica de leitura:

Por exemplo, para registrar um cluster para ser escalado automaticamente com de uma a oito réplicas adicionais, é possível usar o comando [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html) da AWS CLI da seguinte forma:

```
aws application-autoscaling register-scalable-target \
  --service-namespace neptune \
  --resource-id cluster:(your DB cluster name) \
  --scalable-dimension neptune:cluster:ReadReplicaCount \
  --min-capacity 1 \
  --max-capacity 8
```

Isso equivale a usar a operação da API [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html) do Application Auto Scaling.

O comando `register-scalable-target` da AWS CLI usa os seguintes parâmetros:
+ **`service-namespace`**   –   defina como `neptune`.

  Esse parâmetro equivale ao parâmetro `ServiceNamespace` na API do Application Auto Scaling.
+ **`resource-id`**: defina como o identificador de recurso do cluster de banco de dados do Neptune. O tipo de recurso é `cluster`, seguido por dois pontos (“`:`“) e, depois, pelo nome do cluster de banco de dados.

  Esse parâmetro equivale ao parâmetro `ResourceID` na API do Application Auto Scaling.
+ **`scalable-dimension`**: a dimensão escalável nesse caso é o número de instâncias de réplica no cluster de banco de dados, então você define esse parâmetro como `neptune:cluster:ReadReplicaCount`.

  Esse parâmetro equivale ao parâmetro `ScalableDimension` na API do Application Auto Scaling.
+ **`min-capacity`**: o número mínimo de instâncias de réplica de banco de dados de leitor a serem gerenciadas pelo Application Auto Scaling. Esse valor deve ser definido no intervalo de 0 a 15 e deve ser igual ou menor que o valor especificado para o número máximo de réplicas do Neptune em `max-capacity`. Deve haver pelo menos um leitor no cluster de banco de dados para que o ajuste de escala automático funcione.

  Esse parâmetro equivale ao parâmetro `MinCapacity` na API do Application Auto Scaling.
+ **`max-capacity`**: o número máximo de instâncias de réplicas de banco de dados de leitor no cluster de banco de dados, incluindo instâncias preexistentes e novas instâncias gerenciadas pelo Application Auto Scaling. Esse valor deve ser definido entre 0 e 15 e deve ser igual ou maior que o valor especificado para o número mínimo de réplicas do Neptune em `min-capacity`.

  O parâmetro `max-capacity` da AWS CLI equivale ao parâmetro `MaxCapacity` na API do Application Auto Scaling.

Quando você registra o cluster de banco de dados, o Application Auto Scaling cria um perfil vinculado ao serviço `AWSServiceRoleForApplicationAutoScaling_NeptuneCluster`. Para obter mais informações, consulte [Service-linked roles for Application auto-scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html), no *Guia do usuário do Application Auto Scaling*.

### 2. Definir uma política de ajuste de escala automático a ser usada com o cluster de banco de dados
<a name="manage-console-autoscaling-define-policy"></a>

Uma política de escalabilidade de rastreamento de destino é definida como um objeto de texto JSON que também pode ser salvo em um arquivo de texto. Para o Neptune, essa política atualmente só pode usar a métrica do CloudWatch [`CPUUtilization`](cw-metrics.md#cw-metrics-available) no Neptune como uma métrica predefinida chamada `NeptuneReaderAverageCPUUtilization`.

Veja um exemplo de política de configuração de escalabilidade de rastreamento de destino para o Neptune:

```
{
  "PredefinedMetricSpecification": { "PredefinedMetricType": "NeptuneReaderAverageCPUUtilization" },
  "TargetValue": 60.0,
  "ScaleOutCooldown" : 600,
  "ScaleInCooldown" : 600
}
```

O elemento **`TargetValue`** aqui contém a porcentagem de utilização da CPU acima da qual o ajuste de escala automático *se expande* (ou seja, adiciona mais réplicas) e abaixo da qual ele *é reduzido* (ou seja, exclui réplicas). Nesse caso, a porcentagem de destino que aciona a escalabilidade é `60.0`%.

O elemento **`ScaleInCooldown`** especifica a quantidade de tempo, em segundos, após a conclusão de redução da escala antes que outra redução possa ser iniciada. O padrão é trezentos segundos. Aqui, o valor de seiscentos especifica que devem decorrer pelo menos dez minutos entre a conclusão de uma exclusão de réplica e o início de outra.

O elemento **`ScaleOutCooldown`** especifica a quantidade de tempo, em segundos, após a conclusão de expansão da escala antes que outra expansão possa ser iniciada. O padrão é trezentos segundos. Aqui, o valor de seiscentos especifica que devem decorrer pelo menos dez minutos entre a conclusão de uma adição de réplica e o início de outra.

O elemento **`DisableScaleIn`** é um valor booliano que, se estiver presente e definido como `true` desabilitará totalmente a redução da escala, o que significa que o ajuste de escala automático poderá adicionar réplicas, mas nunca removerá nenhuma. Por padrão, a redução da escala está habilitada e `DisableScaleIn` é `false`.

### 
<a name="manage-console-autoscaling-apply-policy"></a>

Depois de registrar o cluster de banco de dados do Neptune com o Application Auto Scaling e definir uma política de escalabilidade JSON em um arquivo de texto, aplique a política de escalabilidade ao cluster de banco de dados registrado. É possível fazer isso usando o comando [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) da AWS CLI com parâmetros da seguinte forma:

```
aws application-autoscaling put-scaling-policy \
  --policy-name (name of the scaling policy) \
  --policy-type TargetTrackingScaling \
  --resource-id cluster:(name of your Neptune DB cluster) \
  --service-namespace neptune \
  --scalable-dimension neptune:cluster:ReadReplicaCount \
  --target-tracking-scaling-policy-configuration file://(path to the JSON configuration file)
```

Quando você aplica a política de ajuste de escala automático, o ajuste de escala automático é habilitado no cluster de banco de dados.

Você também pode usar o comando [https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html) da AWS CLI para atualizar uma política de ajuste de escala automático existente.

Consulte também [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) na *Referência de API do Application Auto Scaling*.

## Remover o ajuste de escala automático de um cluster de banco de dados do Neptune
<a name="manage-console-autoscaling-delete"></a>

Para remover o ajuste de escala automático de um cluster de banco de dados do Neptune, use os comandos [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html) e [deregister-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/deregister-scalable-target.html) da AWS CLI.