Uso de Amazon Neptune sin servidor - Amazon Neptune

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.

Uso de Amazon Neptune sin servidor

Puede crear un nuevo clúster de base de datos de Neptune como uno sin servidor o, en algunos casos, puede convertir un clúster de base de datos existente para usarlo sin servidor. También puede convertir las instancias de base de datos de un clúster de base de datos sin servidor en instancias sin servidor y a partir de ellas. Neptune Serverless solo se puede utilizar en aquellos lugares en los que Regiones de AWS sea compatible, con algunas otras limitaciones (consulte). Restricciones de Amazon Neptune sin servidor

También puede usar la pila de AWS CloudFormation de Neptune para crear un clúster de base de datos de Neptune sin servidor.

Creación de un nuevo clúster de base de datos que utilice la tecnología sin servidor

Para crear un clúster de base de datos de Neptune que utilice la tecnología sin servidor, puede hacerlo mediante la AWS Management Console del mismo modo que lo hace para crear un clúster aprovisionado. La diferencia es que en la opción Tamaño de la instancia de base de datos, debe establecer la clase de instancia de base de datos en sin servidor. Cuando lo haga, tendrá que establecer el rango de capacidad sin servidor para el clúster.

También puede crear un clúster de base de datos sin servidor mediante comandos como AWS CLI los siguientes (en Windows, sustituya '\' por '^'):

aws neptune create-db-cluster \ --region (an Región de AWS region that supports serverless) \ --db-cluster-identifier (ID for the new serverless DB cluster) \ --engine neptune \ --engine-version (optional: 1.2.0.1 or above) \ --serverless-v2-scaling-configuration "MinCapacity=1.0, MaxCapacity=128.0"

También puede especificar el parámetro serverless-v2-scaling-configuration, tal y como se indica a continuación:

--serverless-v2-scaling-configuration '{"MinCapacity":1.0, "MaxCapacity":128.0}'

A continuación, puede ejecutar el comando describe-db-clusters para el atributo ServerlessV2ScalingConfiguration, que debería devolver la configuración del rango de capacidad que ha especificado:

"ServerlessV2ScalingConfiguration": { "MinCapacity": (the specified minimum number of NCUs), "MaxCapacity": (the specified maximum number of NCUs) }

Conversión de un clúster o instancia de base de datos existente en la tecnología sin servidor

Si tiene un clúster de base de datos de Neptune que utiliza la versión 1.2.0.1 o posterior del motor, puede convertirlo en un clúster sin servidor. Este proceso provoca cierto tiempo de inactividad.

El primer paso es añadir un rango de capacidad al clúster existente. Puede hacerlo mediante el AWS Management Console comando o mediante un AWS CLI comando como este (en Windows, sustituya '\' por '^'):

aws neptune modify-db-cluster \ --db-cluster-identifier (your DB cluster ID) \ --serverless-v2-scaling-configuration \ MinCapacity=(minimum number of NCUs, such as 2.0), \ MaxCapacity=(maximum number of NCUs, such as 24.0)

El siguiente paso consiste en crear una nueva instancia de base de datos sin servidor para reemplazar la instancia principal existente (el escritor) en el clúster. De nuevo, puede realizar este y todos los pasos siguientes utilizando el AWS Management Console o el AWS CLI. En cualquier caso, debe especificar la clase de instancias de bases de datos como sin servidor. El AWS CLI comando tendría este aspecto (en Windows, sustituya '\' por '^'):

aws neptune create-db-instance \ --db-instance-identifier (an instance ID for the new writer instance) \ --db-cluster-identifier (ID of the DB cluster) \ --db-instance-class db.serverless --engine neptune

Cuando la nueva instancia de escritor esté disponible, realice una conmutación por error para convertirla en la instancia de escritor del clúster:

aws neptune failover-db-cluster \ --db-cluster-identifier (ID of the DB cluster) \ --target-db-instance-identifier (instance ID of the new serverless instance)

A continuación, elimine la antigua instancia de escritor:

aws neptune delete-db-instance \ --db-instance-identifier (instance ID of the old writer instance) \ --skip-final-snapshot

Por último, haga lo mismo para crear una nueva instancia sin servidor que sustituya a cada instancia de lector aprovisionada existente que desee convertir en una instancia sin servidor, y elimine las instancias aprovisionadas existentes (no es necesaria una conmutación por error para las instancias de lector).

Modificación del rango de capacidad de un clúster de base de datos sin servidor existente

Puede cambiar el rango de capacidad de un clúster de base de datos Neptune sin servidor mediante la AWS CLI de la siguiente manera (en Windows, sustituya “\” por “^”):

aws neptune modify-db-cluster \ --region (an AWS region that supports serverless) \ --db-cluster-identifier (ID of the serverless DB cluster) \ --apply-immediately \ --serverless-v2-scaling-configuration MinCapacity=4.0, MaxCapacity=32

El cambio del rango de capacidad provoca cambios en los valores predeterminados de algunos parámetros de configuración. Neptune puede aplicar algunos de estos nuevos valores predeterminados de inmediato, pero algunos de los cambios en los parámetros dinámicos entrarán en vigor solo después de reiniciar. El estado pending-reboot indica que es necesario reiniciar para aplicar algunos cambios en los parámetros.

Cambio de una instancia de base de datos sin servidor a aprovisionada

Todo lo que necesita hacer para convertir una instancia de Neptune sin servidor en una aprovisionada es cambiar su clase de instancia por una de las clases de instancias aprovisionadas. Consulte Modificación de una instancia de base de datos de Neptune (y aplicación inmediata).

Supervisión de la capacidad sin servidor con Amazon CloudWatch

Puede usarlo CloudWatch para monitorear la capacidad y el uso de las instancias sin servidor de Neptune en su clúster de base de datos. Hay dos CloudWatch métricas que le permiten realizar un seguimiento de la capacidad actual sin servidor tanto a nivel de clúster como a nivel de instancia:

  • ServerlessDatabaseCapacity: como métrica en el nivel de instancia, ServerlessDatabaseCapacity indica la capacidad actual de la instancia en NCU. Como métrica en el nivel de clúster, representa la media de todos los valores de ServerlessDatabaseCapacity de todas las instancias de base de datos del clúster.

  • NCUUtilization: esta métrica indica el porcentaje de capacidad posible que se está utilizando. Se calcula como la ServerlessDatabaseCapacity actual (tanto en el nivel de instancia o de clúster) dividida por la configuración de capacidad máxima del clúster de base de datos.

    Si esta métrica se acerca al 100 % en el nivel de clúster, lo que significa que el clúster ha escalado lo más alto posible, plantéese aumentar la configuración de capacidad máxima.

    Si se acerca al 100% para una instancia de lector mientras que la instancia de escritor no está cerca de su capacidad máxima, plantéese añadir más instancias de lector para distribuir la carga de trabajo de lectura.

Tenga en cuenta que las métricas CPUUtilization y FreeableMemory tienen significados ligeramente diferentes para las instancias sin servidor que para las instancias aprovisionadas. En un contexto sin servidor, CPUUtilization es un porcentaje que se calcula como la cantidad de CPU que se utiliza actualmente dividida por la cantidad de CPU disponible a máxima capacidad. Del mismo modo, FreeableMemory indica la cantidad de memoria que se puede liberar que estaría disponible si una instancia estuviera al máximo de su capacidad.

En el siguiente ejemplo, se muestra cómo utilizarla AWS CLI en Linux para recuperar los valores de capacidad mínima, máxima y media de una instancia de base de datos determinada, medidos cada 10 minutos durante una hora. El comando de Linux date especifica las horas de inicio y finalización en relación con la fecha y la hora en curso. La función sort_by en el parámetro --query ordena los resultados cronológicamente en función del campo Timestamp:

aws cloudwatch get-metric-statistics \ --metric-name "ServerlessDatabaseCapacity" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/Neptune" --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=(instance ID) \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table