Administración del escalado automático de Amazon Keyspaces con Cassandra Query Language (CQL) - Amazon Keyspaces (para Apache Cassandra)

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.

Administración del escalado automático de Amazon Keyspaces con Cassandra Query Language (CQL)

Para crear y administrar la configuración de escalado automático para las tablas de Amazon Keyspaces con Cassandra Query Language (CQL), puede utilizar. cqlsh En este tema se ofrece una descripción general de las tareas de autoescalado que puede gestionar mediante programación mediante CQL.

Para obtener más información sobre las instrucciones de CQL descritas en este tema, consulte. Instrucciones DDL (lenguaje de definición de datos) en Amazon Keyspaces

Antes de empezar

Debe completar las siguientes tareas antes de empezar.

Configuración de permisos de

Si aún no lo ha hecho, debe configurar los permisos apropiados para que el usuario pueda crear y administrar los ajustes de escalado automático. En AWS Identity and Access Management (IAM), la política AWS gestionada AmazonKeyspacesFullAccess es necesaria para gestionar las políticas de escalado de Amazon Keyspaces. Para conocer los pasos en detalle, consulte Antes de comenzar: Concesión de permisos a los usuarios para el escalado automático de Amazon Keyspaces.

Configurar cqlsh

Si aún no lo ha hecho, debe instalarlo y configurarlo. cqlsh Para ello, siga las instrucciones que aparecen enUso de la cqlsh-expansion para conectarse a Amazon Keyspaces. A continuación, puede utilizar el AWS CloudShell para ejecutar los comandos de las siguientes secciones.

Cree una tabla nueva con escalado automático mediante CQL

Al crear una nueva tabla de Amazon Keyspaces, puede activar automáticamente el escalado automático para la capacidad de escritura o lectura de la tabla en la CREATE TABLE declaración. Esto permite a Amazon Keyspaces ponerse en contacto con Application Auto Scaling en su nombre para registrar la tabla como un objetivo escalable y ajustar la capacidad de escritura o lectura aprovisionada.

Para obtener más información sobre cómo crear una tabla de varias regiones y configurar diferentes ajustes de escalado automático para las réplicas de tablas, consulte. Crear una tabla multirregional con la configuración predeterminada (CQL)

nota

El escalado automático de Amazon Keyspaces requiere la presencia de un rol vinculado a un servicio (AWSServiceRoleForApplicationAutoScaling_CassandraTable) para realizar acciones de escalado automático en su nombre. Este rol se crea automáticamente para usted. Para obtener más información, consulte Uso de roles vinculados a servicios para Amazon Keyspaces.

Para configurar los ajustes de escalado automático de una tabla mediante programación, utilice la AUTOSCALING_SETTINGS instrucción que contiene los parámetros del escalado automático de Amazon Keyspaces. Los parámetros definen las condiciones que obligan a Amazon Keyspaces a ajustar el rendimiento aprovisionado de la tabla y qué acciones opcionales adicionales se deben realizar. En este ejemplo, se definen los ajustes de escalado automático para mytable.

La política contiene los componentes siguientes:

  • AUTOSCALING_SETTINGS— Especifica si Amazon Keyspaces puede ajustar la capacidad de procesamiento en su nombre. Se requieren los siguientes valores:

    • provisioned_write_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • provisioned_read_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • scaling_policy— Amazon Keyspaces es compatible con la política de seguimiento de objetivos. Para definir la política de seguimiento objetivo, debe configurar los siguientes parámetros.

      • target_value— El escalado automático de Amazon Keyspaces garantiza que la relación entre la capacidad consumida y la capacidad aprovisionada se mantenga en este valor o cerca de él. target_value se define como un porcentaje.

      • disableScaleIn: (Opcional) A boolean que especifica si scale-in está deshabilitada o habilitada para la tabla. Este parámetro está desactivado de forma predeterminada. Para activarloscale-in, defina el boolean valor enFALSE. Esto significa que la capacidad de una mesa se reduce automáticamente en tu nombre.

      • scale_out_cooldown: una actividad de escalado horizontal aumenta el rendimiento aprovisionado de su tabla. Para añadir un periodo de recuperación para las actividades de escalado horizontal, especifique un valor para scale_out_cooldown en segundos. Si no especificas ningún valor, el valor predeterminado es 0. Para obtener más información sobre el seguimiento de objetivos y los períodos de enfriamiento, consulte Políticas de escalado de seguimiento de objetivos en la Guía del usuario de Application Auto Scaling.

      • scale_in_cooldown: una actividad de reducción horizontal disminuye el rendimiento aprovisionado de su tabla. Para añadir un periodo de recuperación para las actividades de reducción horizontal, especifique un valor para scale_in_cooldown en segundos. Si no especifica ningún valor, el valor predeterminado es 0. Para obtener más información sobre el seguimiento de objetivos y los períodos de enfriamiento, consulte Políticas de escalado de seguimiento de objetivos en la Guía del usuario de Application Auto Scaling.

nota

Para entender cómo funciona target_value, imagine que tiene una tabla con una configuración de rendimiento aprovisionado de 200 unidades de capacidad de escritura. Decide crear una política de escalado para esta tabla, con un valor de target_value del 70 %.

Ahora, supongamos que comienza a dirigir el tráfico de escritura a la tabla, de tal forma que el rendimiento de escritura real es de 150 unidades de capacidad. La consumed-to-provisioned proporción es ahora (150/200), o sea, del 75 por ciento. Esta proporción supera su objetivo, por lo que el escalado automático aumenta la capacidad de escritura aprovisionada a 215, de modo que la proporción es (150/215), o un 69,77 por ciento, lo más cerca target_value posible de la suya, pero sin superarla.

En mytable, has establecido la capacidad de lectura y escritura en un 50 TargetValue por ciento. El escalado automático de Amazon Keyspaces ajusta el rendimiento aprovisionado de la tabla dentro del rango de 5 a 10 unidades de capacidad, de modo que la consumed-to-provisioned proporción se mantenga en el 50 por ciento o cerca de él. En cuanto a la capacidad de lectura, debe establecer los valores para y en 60 segundos. ScaleOutCooldown ScaleInCooldown

Puedes usar la siguiente declaración para crear una nueva tabla de Amazon Keyspaces con el escalado automático activado.

CREATE TABLE mykeyspace.mytable(pk int, ck int, PRIMARY KEY (pk, ck)) WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

Habilite el escalado automático en una tabla existente mediante CQL

En el caso de una tabla de Amazon Keyspaces existente, puede activar el escalado automático para la capacidad de escritura o lectura de la tabla mediante la ALTER TABLE instrucción. Si va a actualizar una tabla que actualmente está en modo de capacidad bajo demanda, capacity_mode es obligatorio. Si la tabla ya está en el modo de capacidad aprovisionada, puedes omitir este campo.

nota

El escalado automático de Amazon Keyspaces requiere la presencia de un rol vinculado a servicios (AWSServiceRoleForApplicationAutoScaling_CassandraTable) que realice acciones de escalado automático en su nombre. Este rol se crea automáticamente para usted. Para obtener más información, consulte Uso de roles vinculados a servicios para Amazon Keyspaces.

En el siguiente ejemplo, la instrucción actualiza la tabla mytable, que está en modo de capacidad bajo demanda. La declaración cambia el modo de capacidad de la tabla al modo aprovisionado con el escalado automático habilitado.

La capacidad de escritura se configura dentro del rango de 5 a 10 unidades de capacidad con un valor objetivo del 50%. La capacidad de lectura también se configura dentro del rango de 5 a 10 unidades de capacidad con un valor objetivo del 50%. En cuanto a la capacidad de lectura, se establecen los valores scale_in_cooldown para scale_out_cooldown y en 60 segundos.

ALTER TABLE mykeyspace.mytable WITH CUSTOM_PROPERTIES = { 'capacity_mode': { 'throughput_mode': 'PROVISIONED', 'read_capacity_units': 1, 'write_capacity_units': 1 } } AND AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50 } } }, 'provisioned_read_capacity_autoscaling_update': { 'maximum_units': 10, 'minimum_units': 5, 'scaling_policy': { 'target_tracking_scaling_policy_configuration': { 'target_value': 50, 'scale_in_cooldown': 60, 'scale_out_cooldown': 60 } } } };

Vea la configuración de escalado automático de Amazon Keyspaces de su mesa mediante CQL

Para ver los detalles de la configuración de escalado automático de una tabla, utilice el siguiente comando.

SELECT * FROM system_schema_mcs.autoscaling WHERE keyspace_name = 'mykeyspace' AND table_name = 'mytable';

La salida de este comando tiene el siguiente aspecto.

keyspace_name | table_name | provisioned_read_capacity_autoscaling_update | provisioned_write_capacity_autoscaling_update ---------------+------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- mykeyspace | mytable | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 60, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 60}}} | {'minimum_units': 5, 'maximum_units': 10, 'scaling_policy': {'target_tracking_scaling_policy_configuration': {'scale_out_cooldown': 0, 'disable_scale_in': false, 'target_value': 50, 'scale_in_cooldown': 0}}}

Desactive el escalado automático de Amazon Keyspaces para una tabla mediante CQL

Puedes desactivar el escalado automático de Amazon Keyspaces para tu mesa en cualquier momento. Si ya no necesita escalar la capacidad de lectura o escritura de la tabla, debería considerar la posibilidad de desactivar el escalado automático para que Amazon Keyspaces no siga modificando la configuración de la capacidad de lectura o escritura de la tabla. Puede actualizar la tabla con una ALTER TABLE declaración.

La siguiente instrucción desactiva el escalado automático para la capacidad de escritura de la tabla mytable. También elimina las CloudWatch alarmas que se crearon en su nombre.

ALTER TABLE mykeyspace.mytable WITH AUTOSCALING_SETTINGS = { 'provisioned_write_capacity_autoscaling_update': { 'autoscaling_disabled': true } };
nota

Para eliminar el rol vinculado al servicio que utiliza Application Auto Scaling, debe deshabilitar el escalado automático en todas las tablas de la cuenta. Regiones de AWS