Modo de capacidade provisionada do DynamoDB - Amazon DynamoDB

Modo de capacidade provisionada do DynamoDB

Ao criar uma tabela provisionada no DynamoDB, é necessário especificar a capacidade de throughput provisionado. Essa é a quantidade de throughput de leitura e de gravação que a tabela pode comportar. O DynamoDB usa essas informações para garantir que haja recursos suficientes do sistema para atender aos requisitos de throughput.

Opcionalmente, você pode permitir que o Auto Scaling do DynamoDB gerencie a capacidade de throughput da tabela. Para usar o ajuste de escala automático, você deve fornecer as configurações iniciais da capacidade de leitura e de gravação ao criar a tabela. O ajuste de escala automático do DynamoDB usa essas configurações iniciais como um ponto de partida e, depois, as ajusta dinamicamente em resposta aos requisitos da aplicação. Para ter mais informações, consulte Gerenciar a capacidade de throughput automaticamente com o Auto Scaling do DynamoDB.

À medida que os dados da aplicação e os requisitos de acesso mudarem, talvez seja necessário ajustar as configurações de throughput da tabela. Se você estiver usando o Auto Scaling do DynamoDB as configurações de throughput serão automaticamente ajustadas em resposta às workloads reais. Também é possível usar a operação UpdateTable para ajustar manualmente a capacidade de throughput da tabela. Você pode optar por fazer isso se precisar fazer o carregamento em massa de dados de um armazenamento de dados existentes para sua nova tabela do DynamoDB. Você pode criar a tabela com uma configuração alta de throughput de gravação e, em seguida, reduzir essa configuração depois que o carregamento de dados em massa for concluído.

É possível alternar as tabelas do modo sob demanda para o modo de capacidade provisionada a qualquer momento. Ao alternar várias vezes entre os modos de capacidade, as seguintes condições se aplicam:

  • É possível alternar uma tabela recém-criada no modo sob demanda para o modo de capacidade provisionada a qualquer momento. No entanto, só é possível voltar ao modo sob demanda 24 horas após o carimbo de data e hora de criação da tabela.

  • É possível alternar uma tabela existente no modo sob demanda para o modo de capacidade provisionada a qualquer momento. No entanto, você só pode voltar ao modo sob demanda 24 horas após o último carimbo de data e hora indicando uma mudança para o modo sob demanda.

Para ter mais informações sobre como alternar entre os modos de capacidade de leitura e de gravação, consulte Considerações ao alternar os modos de capacidade no DynamoDB.

Unidades de capacidade de leitura e unidades de capacidade de gravação

Para tabelas do modo provisionado, você precisa especificar os requisitos de throughput em termos de unidades de capacidade. Essas unidades representam o volume de dados que a aplicação precisa ler ou gravar por segundo. Você pode modificar essas configurações mais tarde, se necessário, ou permitir que o Auto Scaling do DynamoDB os modifique automaticamente.

Em relação a um item de até 4 KB, uma unidade de capacidade de leitura (RCU) representa uma operação de leitura altamente consistente por segundo ou duas operações de leitura final consistente por segundo. Para ter mais informações sobre os modelos de consistência de leitura do DynamoDB, consulte Consistência de leitura do DynamoDB.

Uma unidade de capacidade de gravação (WCU) representa uma gravação por segundo para um item de até 1 KB. Para ter mais informações sobre as diferentes operações de gravação e de leitura, consulte Operações de leitura e de gravação do DynamoDB.

Escolher as configurações iniciais de throughput

Cada aplicação tem diferentes requisitos para operações de leitura e gravação em um banco de dados. Quando estiver determinando as configurações iniciais de throughput de uma tabela do DynamoDB, leve em conta o seguinte:

  • Taxas esperadas de solicitações de leitura e de gravação: você precisa calcular o número de leituras e de gravações que precisa realizar por segundo.

  • Tamanhos de item: alguns itens são pequenos o suficiente para que possam ser lidos ou gravados usando uma única unidade de capacidade. Itens maiores exigem várias unidades de capacidade. Ao estimar o tamanho médio dos itens que estarão na tabela, você poderá especificar configurações precisas para o throughput provisionado.

  • Requisitos da consistência de leitura: as unidades de capacidade de leitura baseiam-se em operações de leitura altamente consistente, que consomem duas vezes mais recursos de banco de dados que as leituras finais consistentes. Você deve determinar se o seu aplicativo requer leituras altamente consistentes, ou se ele pode ignorar essa exigência e executar leituras finais consistentes em vez disso. As operações de leitura no DynamoDB são finais consistentes por padrão. É possível solicitar leituras altamente consistentes para essas operações, se necessário.

Por exemplo, vamos supor que você queira ler oitenta itens por segundo de uma tabela. O tamanho desses itens é 3 KB, e você deseja leituras altamente consistentes. Nesse caso, cada leitura requer uma unidade de capacidade de leitura provisionada. Para determinar esse número, divida o tamanho do item da operação por 4 KB. Depois, arredonde o resultado para o número inteiro mais próximo, conforme mostrado no seguinte exemplo:

  • 3 KB/4 KB = 0,75 ou 1 unidade de capacidade de leitura

Portanto, para ler oitenta itens por segundo de uma tabela, defina o throughput de leitura provisionado da tabela como oitenta unidades de capacidade de leitura, conforme mostrado no seguinte exemplo:

  • 1 unidade de capacidade de leitura por item × 80 leituras por segundo = 80 unidades de capacidade de leitura

Agora, vamos supor que você queira gravar cem itens por segundo na tabela e que cada item tenha 512 bytes. Nesse caso, cada gravação requer uma unidade de capacidade de gravação provisionada. Para determinar esse número, divida o tamanho do item da operação por 1 KB. Depois, arredonde o resultado para o número inteiro mais próximo, conforme mostrado no seguinte exemplo:

  • 512 bytes/1 KB = 0,5 ou 1 unidade de capacidade de gravação.

Para gravar cem itens por segundo na tabela, defina o throughput de gravação provisionado da tabela como cem unidades de capacidade de gravação:

  • 1 unidade de capacidade de gravação por item × 100 gravações por segundo = 100 unidades de capacidade de gravação

Ajuste de escala automático do DynamoDB

O ajuste de escala automático do DynamoDB gerencia ativamente a capacidade de throughput de tabelas e de índices secundários globais. Com o Auto Scaling, você define um intervalo (limites superior e inferior) para unidades de capacidade de leitura e gravação. Você também define um percentual de utilização-alvo dentro desse intervalo. O Auto Scaling do DynamoDB procura manter sua utilização alvo, mesmo que a workload da sua aplicação aumente ou diminua.

Com o Auto Scaling do DynamoDB, uma tabela ou um índice secundário global pode aumentar sua capacidade provisionada de leitura e gravação para lidar com aumentos repentinos no tráfego, sem a controle de utilização de solicitações. Quando a workload diminuir, o Auto Scaling do DynamoDB diminuirá o throughput para que você não precise pagar por uma capacidade provisionada não utilizada.

nota

Se você usar o AWS Management Console para criar uma tabela ou um índice secundário global, o Auto Scaling do DynamoDB será habilitado por padrão.

É possível gerenciar as configurações de Auto Scaling a qualquer momento usando o console, a AWS CLI ou um dos AWS SDKs. Para ter mais informações, consulte Gerenciar a capacidade de throughput automaticamente com o Auto Scaling do DynamoDB.

Taxa de utilização

A taxa de utilização pode ajudar você a determinar se está sobrecarregando a capacidade de provisionamento. Nesse caso, você deve reduzir a capacidade da tabela para reduzir os custos. Inversamente, também pode ajudar você a determinar se está com pouca capacidade de provisionamento. Nesse caso, é necessário aumentar a capacidade da tabela para evitar um possível controle de utilização de solicitações durante instâncias de alto tráfego inesperado. Para ter mais informações, consulte Amazon DynamoDB auto scaling: Performance and cost optimization at any scale.

Se você estiver usando o ajuste de escala automático do DynamoDB, também precisará definir uma meta de porcentagem de utilização. O ajuste de escala automático usará essa porcentagem como meta para ajustar a capacidade para cima ou para baixo. Recomendamos definir a meta de utilização como 70%. Para ter mais informações, consulte Gerenciar a capacidade de throughput automaticamente com o Auto Scaling do DynamoDB.