Gerenciando a escalabilidade automática do Amazon Keyspaces com a Cassandra Query Language (CQL) - Amazon Keyspaces (para Apache Cassandra)

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

Gerenciando a escalabilidade automática do Amazon Keyspaces com a Cassandra Query Language (CQL)

Para criar e gerenciar configurações de auto scaling para tabelas do Amazon Keyspaces com a Cassandra Query Language (CQL), você pode usar. cqlsh Este tópico fornece uma visão geral das tarefas de escalonamento automático que você pode gerenciar programaticamente usando o CQL.

Para obter mais informações sobre as instruções CQL descritas neste tópico, consulteInstruções DDL (linguagem de definição de dados) no Amazon Keyspaces.

Antes de começar

Você precisa concluir as tarefas seguintes antes de iniciar.

Configurar permissões do

Se você ainda não fez isso, configure as permissões apropriadas para o usuário criar e gerenciar configurações de escalabilidade automática. No AWS Identity and Access Management (IAM), a política AWS gerenciada AmazonKeyspacesFullAccess é necessária para gerenciar as políticas de escalabilidade do Amazon Keyspaces. Para obter detalhes das etapas, consulte, Antes de começar: concessão de permissões de usuário para o ajuste de escala automático do Amazon Keyspaces.

Configurar o cqlsh

Se ainda não tiver feito isso, você deve instalar e configurarcqlsh. Para fazer isso, siga as instruções emUsar a cqlsh-expansion para se conectar ao Amazon Keyspaces. Em seguida, você pode usar o AWS CloudShell para executar os comandos nas seções a seguir.

Crie uma nova tabela com escalabilidade automática usando CQL

Ao criar uma nova tabela do Amazon Keyspaces, você pode habilitar automaticamente o auto scaling para a capacidade de gravação ou leitura da tabela na declaração. CREATE TABLE Isso permite que o Amazon Keyspaces entre em contato com o Application Auto Scaling em seu nome para registrar a tabela como uma meta escalável e ajustar a capacidade provisionada de gravação ou leitura.

Para obter mais informações sobre como criar uma tabela multirregional e definir diferentes configurações de escalonamento automático para réplicas de tabela, consulte. Criação de uma tabela multirregional com configurações padrão (CQL)

nota

O escalonamento automático do Amazon Keyspaces exige a presença de uma função vinculada ao serviço (AWSServiceRoleForApplicationAutoScaling_CassandraTable) para realizar ações automáticas de escalabilidade em seu nome. Esta função é criada automaticamente para você. Para ter mais informações, consulte Uso de perfis vinculados ao serviço para o Amazon Keyspaces.

Para definir as configurações de escalabilidade automática para uma tabela de forma programática, você usa a AUTOSCALING_SETTINGS instrução que contém os parâmetros para o escalonamento automático do Amazon Keyspaces. Os parâmetros definem as condições que orientam o Amazon Keyspaces a ajustar a taxa de transferência provisionada da sua tabela e quais ações opcionais adicionais devem ser tomadas. Neste exemplo, você define as configurações de escalonamento automático para mytable.

A política contém os elementos a seguir:

  • AUTOSCALING_SETTINGS— Especifica se o Amazon Keyspaces tem permissão para ajustar a capacidade de processamento em seu nome. Os seguintes valores são obrigatórios:

    • provisioned_write_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • provisioned_read_capacity_autoscaling_update:

      • minimum_units

      • maximum_units

    • scaling_policy— O Amazon Keyspaces oferece suporte à política de rastreamento de alvos. Para definir a política de rastreamento de alvos, você configura os seguintes parâmetros.

      • target_value— O escalonamento automático do Amazon Keyspaces garante que a proporção entre a capacidade consumida e a capacidade provisionada permaneça igual ou próxima a esse valor. Você define target_value como uma porcentagem.

      • disableScaleIn: (Opcional) Um boolean que especifica se scale-in está desativado ou ativado para a tabela. Esse parâmetro está desativado por padrão. Para ativarscale-in, defina o boolean valor comoFALSE. Isso significa que a capacidade é reduzida automaticamente para uma tabela em seu nome.

      • scale_out_cooldown: A atividade de expansão aumenta a capacidade de throughput provisionado de sua tabela. Para adicionar um período de desaquecimento nas atividades de aumento da escala na horizontal, especifique um valor, em segundos, para scale_out_cooldown. Se você não especificar um valor, o valor padrão será 0. Para obter mais informações sobre metas de rastreamento e períodos de espera, consulte Políticas de escalabilidade de rastreamento de metas no Guia do usuário do Application Auto Scaling.

      • scale_in_cooldown: Uma atividade de redução da escala diminui o throughput provisionado de sua tabela. Para adicionar um período de desaquecimento nas atividades de redução da escala na horizontal, especifique um valor, em segundos, para scale_in_cooldown. Se você não especificar um valor, o valor padrão será 0. Para obter mais informações sobre metas de rastreamento e períodos de espera, consulte Políticas de escalabilidade de rastreamento de metas no Guia do usuário do Application Auto Scaling.

nota

Para compreender melhor como o target_value funciona, suponha que você tenha uma tabela com uma configuração de throughput provisionado de 200 unidades de capacidade de gravação. Você decide criar uma política de dimensionamento para essa tabela, com um target_value de 70%.

Agora, suponha que você comece a direcionar tráfego de gravação para a tabela de forma que o throughput de gravação real seja de 150 unidades de capacidade. A consumed-to-provisioned proporção agora é (150/200), ou 75 por cento. Essa proporção excede sua meta, então o auto scaling aumenta a capacidade de gravação provisionada para 215, de modo que a proporção seja (150/215), ou 69,77 por cento — o mais próxima possível da sua, mas não a excedendo. target_value

Para mytable, você define a capacidade TargetValue de leitura e gravação em 50 por cento. O auto scaling do Amazon Keyspaces ajusta a taxa de transferência provisionada da tabela na faixa de 5 a 10 unidades de capacidade para que a proporção permaneça em ou perto de 50%. consumed-to-provisioned Para a capacidade de leitura, você define os valores para ScaleOutCooldown e ScaleInCooldown para 60 segundos.

Você pode usar a seguinte declaração para criar uma nova tabela do Amazon Keyspaces com o auto scaling ativado.

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 } } } };

Ative o escalonamento automático em uma tabela existente usando CQL

Para uma tabela existente do Amazon Keyspaces, você pode ativar o escalonamento automático para a capacidade de gravação ou leitura da tabela usando a instrução. ALTER TABLE Se você estiver atualizando uma tabela que está atualmente no modo de capacidade sob demanda, isso capacity_mode é necessário. Se sua tabela já estiver no modo de capacidade provisionada, esse campo poderá ser omitido.

nota

O ajuste de escala automático do Amazon Keyspaces requer a presença de um perfil vinculado ao serviço (AWSServiceRoleForApplicationAutoScaling_CassandraTable) que realize ações de ajuste em seu nome. Esta função é criada automaticamente para você. Para ter mais informações, consulte Uso de perfis vinculados ao serviço para o Amazon Keyspaces.

No exemplo a seguir, a instrução atualiza a tabela mytable, que está no modo de capacidade sob demanda. A instrução altera o modo de capacidade da tabela para o modo provisionado com o escalonamento automático ativado.

A capacidade de gravação é configurada na faixa de 5 a 10 unidades de capacidade com um valor alvo de 50%. A capacidade de leitura também é configurada na faixa de 5 a 10 unidades de capacidade com um valor alvo de 50%. Para a capacidade de leitura, você define os valores para scale_out_cooldown e scale_in_cooldown para 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 } } } };

Veja a configuração de auto scaling do Amazon Keyspaces da sua tabela usando CQL

Para ver detalhes da configuração de escalonamento automático de uma tabela, use o comando a seguir.

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

A saída desse comando é semelhante a esta.

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

Desative o escalonamento automático do Amazon Keyspaces para uma tabela usando CQL

Você pode desativar o escalonamento automático do Amazon Keyspaces para sua tabela a qualquer momento. Se você não precisar mais escalar a capacidade de leitura ou gravação da sua tabela, considere desativar o auto scaling para que o Amazon Keyspaces não continue modificando as configurações de capacidade de leitura ou gravação da sua tabela. Você pode atualizar a tabela com uma ALTER TABLE declaração.

A instrução a seguir desativa o escalonamento automático para a capacidade de gravação da tabela mytable. Também exclui os CloudWatch alarmes que foram criados em seu nome.

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

Para excluir a função vinculada ao serviço que o Application Auto Scaling usa, você deve desativar o escalonamento automático em todas as tabelas da conta. Regiões da AWS