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.
Auto-scaling la cantidad de réplicas en un clúster de base de datos de Amazon Neptune
Puede usar el escalado automático de Neptune para ajustar automáticamente la cantidad de réplicas de Neptune en un clúster de base de datos a fin de cumplir con sus requisitos de conectividad y carga de trabajo. Auto-scaling permite que su clúster de base de datos de Neptune gestione los aumentos de la carga de trabajo y, a continuación, cuando la carga de trabajo disminuye, el escalado automático elimina las réplicas innecesarias para que no tenga 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). 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.
Con el AWS CLI, puede definir y aplicar una política de escalado al clúster de base de datos. También puede utilizarla AWS CLI para editar o eliminar su 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
ScaleOutCooldownentre la actividad de escalado de adición de réplicas y un intervaloScaleInCooldownentre la actividad de escalado de eliminación de réplicas.La CloudWatch métrica y el valor de activación de la métrica para aumentar o reducir la escala.
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
CPUUtilizationdebe 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
ScaleOutCooldownyScaleInCooldownde la política de escalado automático.
Si la CloudWatch métrica que está utilizando alcanza el umbral alto que especificó en su política, si ha transcurrido el ScaleOutCooldown intervalo desde la última acción de escalado automático y si su 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.
nota
Read-replica el escalado automático elimina los lectores a través de la API de Neptune, por lo que la protección contra la eliminación de clústeres no impide que una actividad de escalado elimine una réplica de lectura. La protección contra la eliminación bloquea la eliminación del propio clúster de base de datos, no la eliminación de réplicas de lectura individuales. La política min-capacity de escalado de su empresa determina el número mínimo de lectores que debe mantener el escalado automático. Para obtener más información sobre la protección contra eliminación, consulte Cómo afecta la protección contra la eliminación de instancias de base de datos.
Con el parámetro de clúster de base de datos 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 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.
El escalado automático de Neptune se implementa mediante Application Auto Scaling con una política de escalado de seguimiento de objetivos que utiliza una métrica de Neptune como CPUUtilization CloudWatch métrica predefinida.
Uso del escalado automático en un clúster de base de datos de Neptune sin servidor
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 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
Auto-scaling solo se puede habilitar para un clúster de base de datos Neptune mediante. 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-1Medio Oriente (EAU):
me-central-1AWS GovCloud (US-East):
us-gov-east-1AWS GovCloud (US-West):
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
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 escalarlo automáticamente con entre una y ocho réplicas adicionales, puede usar el comando de la AWS CLI register-scalable-target 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 RegisterScalableTarget.
El comando AWS CLI register-scalable-target usa los siguientes parámetros:
-
service-namespace: se establece enneptune.Este parámetro equivale al parámetro
ServiceNamespacede 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 escluster, seguido de dos puntos (“:”) y, a continuación, el nombre del clúster de base de datos.Este parámetro equivale al parámetro
ResourceIDde 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 enneptune:cluster:ReadReplicaCount.Este parámetro equivale al parámetro
ScalableDimensionde 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 enmax-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
MinCapacityde 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 enmin-capacity.El
max-capacityAWS CLI parámetro es equivalente al parámetro de la API deMaxCapacityescalado automático de la aplicación.
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 las Service-linked funciones del escalado automático de aplicaciones 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
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 Neptuno, esta política actualmente solo puede usar la métrica de Neptuno como CPUUtilization CloudWatch 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.
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. Para ello, puede usar el AWS CLI put-scaling-policy comando con parámetros como los siguientes:
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 puedes usar el AWS CLI put-scaling-policy comando para actualizar una política de escalado automático existente.
Consulte también PutScalingPolicy en la referencia de la API de Auto Scaling de la aplicación.
Eliminación del escalado automático de un clúster de base de datos de Neptune
Para eliminar el escalado automático de un clúster de base de datos de Neptune, utilice los comandos AWS CLI delete-scaling-policy y deregister-scalable-target. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/deregister-scalable-target.html