

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Escalado automático del número de réplicas de un clúster de bases de datos de Amazon Neptune
<a name="manage-console-autoscaling"></a>

Puede usar el escalado automático de Neptune para ajustar automáticamente el número de réplicas de Neptune en un clúster de base de datos para cumplir con los requisitos de conectividad y carga de trabajo. El escalado automático permite que el clúster de base de datos de Neptune gestione los aumentos de carga de trabajo y, luego, cuando la carga de trabajo disminuye, elimina las réplicas innecesarias, por lo que no tiene que pagar por la capacidad no utilizada.

Solo puede usar el escalado automático con un clúster de base de datos de Neptune que ya tenga una instancia de escritor principal y al menos una instancia de réplica de lectura (consulte [Clústeres e instancias de base de datos de Amazon Neptune](feature-overview-db-clusters.md)). Además, todas las instancias de réplica de lectura del clúster deben estar en un estado disponible. Si alguna réplica de lectura está en un estado distinto al disponible, el ajuste de escalado automático de Neptune no hace nada hasta que estén disponibles todas las réplicas de lectura del clúster.

Si necesita crear un nuevo clúster, consulte [Creación de un clúster de Neptune](get-started-create-cluster.md).

Con la AWS CLI puede definir y aplicar una [política de escalado](#manage-console-autoscaling-define-policy) al clúster de base de datos. También puede utilizar la AWS CLI para editar o eliminar la política de escalado automático. La política especifica los siguientes parámetros de escalado automático:
+ El número mínimo y máximo de réplicas que se van a tener en el clúster.
+ Un intervalo `ScaleOutCooldown` entre la actividad de escalado de adición de réplicas y un intervalo `ScaleInCooldown` entre la actividad de escalado de eliminación de réplicas.
+ La métrica de CloudWatch y el valor del desencadenador de métrica para escalar o reducir verticalmente.

La frecuencia de las acciones de escalado automático de Neptune se reduce de varias maneras:
+ Inicialmente, para que el escalado automático añada o elimine un lector, la alarma de umbral máximo `CPUUtilization` debe superarse durante al menos tres minutos o la alarma de umbral mínimo debe superarse durante al menos 15 minutos.
+ Tras la primera adición o eliminación, la frecuencia de las siguientes acciones de escalado automático de Neptune queda limitada por la configuración `ScaleOutCooldown` y `ScaleInCooldown` de la política de escalado automático.

Si la métrica de CloudWatch que está utilizando alcanza el umbral máximo que especificó en la política, si el intervalo `ScaleOutCooldown` ha transcurrido desde la última acción de escalado automático y si el clúster de base de datos aún no tiene el número máximo de réplicas que estableció, el escalado automático de Neptune crea una nueva réplica con el mismo tipo de instancia que la instancia principal del clúster de base de datos.

Del mismo modo, si la métrica alcanza el umbral mínimo que especificó y si el intervalo `ScaleInCooldown` ha transcurrido desde la última acción de escalado automático, y si el clúster de base de datos tiene más réplicas que el número mínimo que especificó, el escalado automático de Neptune elimina una de las réplicas.

**nota**  
Escalado automático de Neptune solo elimina las réplicas que ha creado. No elimina las réplicas preexistentes.

Con el parámetro de clúster de base de datos [neptune\$1autoscaling\$1config](parameters.md#parameters-db-cluster-parameters-neptune_autoscaling_config), también puede especificar el tipo de instancia de las nuevas réplicas de lectura que crea el escalado automático de Neptune, los periodos de mantenimiento de esas réplicas de lectura y las etiquetas que se asociarán a cada una de las nuevas réplicas de lectura. Estos ajustes de configuración se proporcionan en una cadena JSON como valor del parámetro `neptune_autoscaling_config`, tal y como se muestra a continuación:

```
"{
  \"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\"
}"
```

Tenga en cuenta que a todas las comillas de la cadena JSON se les debe aplicar una secuencia de escape con un carácter de barra diagonal inversa (`\`). Todos los espacios en blanco de la cadena son opcionales, como de costumbre.

Cualquiera de los tres ajustes de configuración no especificados en el parámetro `neptune_autoscaling_config` se copia de la configuración de la instancia de escritor principal del clúster de base de datos.

Cuando el [escalado automático](https://docs.aws.amazon.com/autoscaling/plans/userguide/) añade una nueva instancia de réplica de lectura, antepone `autoscaled-reader` al ID de instancia de base de datos (por ejemplo, `autoscaled-reader-7r7t7z3lbd-20210828`). También añade una etiqueta a cada réplica de lectura que cree con la clave `autoscaled-reader` y un valor de `TRUE`. Puede verla en la pestaña **Etiquetas** de la página de detalles de la instancia de base de datos de la Consola de administración de AWS.

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

El nivel de promoción de todas las instancias de réplica de lectura creadas mediante el escalado automático es el de menor prioridad, que, de forma predeterminada es `15`. Esto significa que durante una conmutación por error, cualquier réplica con una mayor prioridad, como una creada manualmente, se promocionaría primero. Consulte [Tolerancia a errores para un clúster de base de datos de Neptune](backup-restore-overview-fault-tolerance.md).

El escalado automático de Neptune se implementa mediante Application Auto Scaling con una [política de escalado de seguimiento de destino](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) que utiliza una métrica de CloudWatch [`CPUUtilization`](cw-metrics.md#cw-metrics-available) en Neptune como métrica predefinida.

## Uso del escalado automático en un clúster de base de datos de Neptune sin servidor
<a name="autoscaling-with-serverless"></a>

Neptune sin servidor responde mucho más rápido que el escalado automático de Neptune cuando la demanda supera la capacidad de una instancia y escala verticalmente la instancia en lugar de añadir otra. Mientras que el escalado automático se ha diseñado para adaptarse a aumentos o disminuciones relativamente estables de la carga de trabajo, la tecnología sin servidor destaca a la hora de gestionar los picos y fluctuaciones rápidos de la demanda.

Al comprender sus puntos fuertes, puede combinar el escalado automático y la tecnología sin servidor para crear una infraestructura flexible que gestione los cambios en la carga de trabajo de forma eficaz y haga frente a la demanda y, al mismo tiempo, minimice los costos.

Para permitir que el escalado automático funcione de forma eficaz junto con la tecnología sin servidor, es importante [establecer la configuración `maxNCU` del clúster sin servidor](neptune-serverless-capacity-scaling.md#neptune-serverless-capacity-range-max) lo suficientemente alta como para adaptarse a los picos y los cambios breves en la demanda. De lo contrario, los cambios transitorios no desencadenan el escalado sin servidor, lo que puede provocar que el escalado automático genere muchas instancias adicionales innecesarias. Si la opción `maxNCU` está establecida en un nivel lo suficientemente alto, el escalado sin servidor puede gestionar esos cambios de forma más rápida y económica.

## Cómo habilitar el escalado automático para Amazon Neptune
<a name="manage-console-autoscaling-enable"></a>

El escalado automático solo se puede habilitar para un clúster de base de datos de Neptune con la AWS CLI. No se puede habilitar el escalado automático con la Consola de administración de AWS.

Además, el escalado automático no se admite en las siguientes regiones de Amazon:
+ África (Ciudad del Cabo): `af-south-1`
+ Medio Oriente (EAU): `me-central-1`
+ AWS GovCloud (EE. UU. Este): `us-gov-east-1`
+ AWS GovCloud (EE. UU. Oeste): `us-gov-west-1`

La habilitación del escalado automático para un clúster de base de datos de Neptune consta de tres pasos:

### 1. Registro de un clúster de base de datos con Application Auto Scaling
<a name="manage-console-autoscaling-register"></a>

El primer paso para habilitar el escalado automático de un clúster de base de datos de Neptune consiste en registrar el clúster con Application Auto Scaling, con la AWS CLI o uno de los SDK de Application Auto Scaling. El clúster ya debe tener una instancia principal y al menos una instancia de lectura de réplica:

Por ejemplo, para registrar un clúster para que se escale automáticamente con de una a ocho réplicas adicionales, puede usar el 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) de la AWS CLI de la siguiente manera:

```
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
```

Esto equivale a usar la operación de la API de Application Auto Scaling [https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html](https://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/API_RegisterScalableTarget.html).

El comando `register-scalable-target` de la AWS CLI usa los siguientes parámetros:
+ **`service-namespace`**   –   establezca en `neptune`.

  Este parámetro equivale al parámetro `ServiceNamespace` de la API de Application Auto Scaling.
+ **`resource-id`**: configure esta opción en el identificador de recursos del clúster de base de datos de Neptune. El tipo de recurso es `cluster`, seguido de dos puntos (“`:`”) y, a continuación, el nombre del clúster de base de datos.

  Este parámetro equivale al parámetro `ResourceID` de la API de Application Auto Scaling.
+ **`scalable-dimension`**: la dimensión escalable en este caso es el número de instancias de réplica en el clúster de base de datos, por lo que este parámetro está establecido en `neptune:cluster:ReadReplicaCount`.

  Este parámetro equivale al parámetro `ScalableDimension` de la API de Application Auto Scaling.
+ **`min-capacity`**: el número mínimo de instancias de réplica de base de datos de lector que Application Auto Scaling va a administrar. Este valor debe establecerse en el rango comprendido entre 0 y 15 y debe ser igual o inferior al valor especificado para el número máximo de réplicas de Neptune en `max-capacity`. Debe haber al menos un lector en el clúster de base de datos para que funcione el escalado automático.

  Este parámetro equivale al parámetro `MinCapacity` de la API de Application Auto Scaling.
+ **`max-capacity`**: el número máximo de instancias de réplica de base de datos de lector en el clúster de base de datos, incluidas las instancias preexistentes y las instancias nuevas administradas por Application Auto Scaling. Este valor debe establecerse en el rango comprendido entre 0 y 15 y debe ser igual o superior al valor especificado para el número mínimo de réplicas de Neptune en `min-capacity`.

  El parámetro `max-capacity` de la AWS CLI equivale al parámetro `MaxCapacity` de la API de Application Auto Scaling.

Al registrar el clúster de base de datos, Application Auto Scaling crea un rol vinculado a un servicio `AWSServiceRoleForApplicationAutoScaling_NeptuneCluster`. Para obtener más información, consulte [Roles vinculados a servicios para el escalado automático de aplicaciones](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) en la *Guía del usuario de Application Auto Scaling*.

### 2. Definición de una política de escalado automático para su uso con un clúster de base de datos
<a name="manage-console-autoscaling-define-policy"></a>

Una política de escalado de seguimiento de destino se define como un objeto de texto JSON que también se puede guardar en un archivo de texto. En el caso de Neptune, esta política actualmente solo puede utilizar la métrica [`CPUUtilization`](cw-metrics.md#cw-metrics-available) de CloudWatch en Neptune como una métrica predefinida denominada `NeptuneReaderAverageCPUUtilization`.

A continuación se muestra un ejemplo de la política de configuración de escalado de seguimiento de destino para Neptune:

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

Este elemento **`TargetValue`** incluye el porcentaje de utilización de la CPU por encima del cual el escalado automático *se escala horizontalmente* (es decir, añade más réplicas) y por debajo *se escala verticalmente* (es decir, elimina las réplicas). En este caso, el porcentaje de destino que desencadena el escalado es de `60.0` %.

El elemento **`ScaleInCooldown`** especifica la cantidad de tiempo, en segundos, tras completarse un actividad de reducción horizontal antes de que pueda comenzar otra. El valor predeterminado es de 300 segundos. En este caso, el valor de 600 especifica que deben transcurrir al menos diez minutos entre la finalización de la eliminación de una réplica y el inicio de otra.

El elemento **`ScaleOutCooldown`** especifica la cantidad de tiempo, en segundos, tras completarse un actividad de escalado horizontal antes de que pueda comenzar otra. El valor predeterminado es de 300 segundos. En este caso, el valor de 600 especifica que deben transcurrir al menos diez minutos entre la finalización de la adición de una réplica y el inicio de otra.

El elemento **`DisableScaleIn`** es un valor booleano que, si está presente y establecido en `true` deshabilita la reducción horizontal por completo, lo que significa que el escalado automático puede añadir réplicas, pero nunca eliminará ninguna. De forma predeterminada, el escalado interno está habilitado, y el valor `DisableScaleIn` está establecido en `false`.

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

Tras registrar el clúster de base de datos de Neptune con Application Auto Scaling y definir una política de escalado JSON en un archivo de texto, puede aplicar la política de escalado al clúster de base de datos registrado. Puede utilizar el 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) de la AWS CLI con los siguientes parámetros:

```
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)
```

Cuando haya aplicado la política de escalado automático, este se habilitará en el clúster de base de datos.

También puede usar el 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) de la AWS CLI para actualizar una política de escalado automático existente.

Consulte también [PutScalingPolicy](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) en la *Referencia de la API de Application Auto Scaling*.

## Eliminación del escalado automático de un clúster de base de datos de Neptune
<a name="manage-console-autoscaling-delete"></a>

Para eliminar el escalado automático de un clúster de base de datos de Neptune, utilice los comandos [delete-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scaling-policy.html) y [deregister-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/deregister-scalable-target.html) de la AWS CLI.