Throughput máximo para tabelas sob demanda - Amazon DynamoDB

Throughput máximo para tabelas sob demanda

Em relação a tabelas sob demanda, é possível especificar o throughput máximo de leitura ou de gravação (ou de ambas) por segundo em tabelas individuais e índices secundários globais (GSIs) associados. Especificar um throughput máximo sob demanda ajuda a manter o uso e os custos por tabela limitados. Por padrão, as configurações de throughput máximo não se aplicam e sua taxa de throughput sob demanda é limitada pelas cotas de serviço da AWS de todos os GSIs e tabelas em uma tabela. Se necessário, é possível solicitar um aumento na cota do serviço.

Ao configurar o throughput máximo para uma tabela sob demanda, as solicitações de throughput que excederem a quantidade máxima especificada terão controle de utilização. É possível modificar as configurações de throughput por tabela a qualquer momento, com base nos requisitos da aplicação.

Veja a seguir alguns casos de uso comuns que podem se beneficiar do uso do throughput máximo para tabelas sob demanda:

  • Otimização do custo de throughput: o uso de throughput máximo para tabelas sob demanda oferece um nível adicional de previsibilidade e capacidade de gerenciamento de custos. Além disso, oferece maior flexibilidade para usar o modo sob demanda para comportar workloads com diferentes padrões de tráfego e orçamentos.

  • Proteção contra uso excessivo: ao definir o throughput máximo, é possível evitar um aumento acidental no consumo de leitura ou de gravação, que pode surgir de código não otimizado ou de processos não autorizados, em uma tabela sob demanda. Essa configuração por tabela pode proteger as organizações contra o consumo excessivo de recursos em determinado período.

  • Proteger os serviços subsequentes: uma aplicação do cliente pode incluir tecnologias com e sem servidor. A parte sem servidor da arquitetura pode ser escalada rapidamente para atender à demanda. No entanto, os componentes subsequentes com capacidades fixas podem ficar sobrecarregados. A implementação de configurações de throughput máximo para tabelas sob demanda pode impedir a propagação de um grande volume de eventos para vários componentes subsequentes com efeitos secundários inesperados.

É possível configurar o throughput máximo para o modo sob demanda para tabelas de região única novas e existentes, além de tabelas globais e GSIs. Também é possível configurar o throughput máximo durante a restauração da tabela e a importação de dados dos fluxos de trabalho do Amazon S3.

É possível especificar as configurações de throughput máximo para tabelas sob demanda usando o console do DynamoDB, a AWS CLI, o AWS CloudFormation ou a API do DynamoDB.

nota

O throughput máximo de uma tabela sob demanda é aplicado de acordo com o melhor esforço e deve ser considerado como alvo e não como limite máximo garantido de solicitações. A workload pode exceder temporariamente o throughput máximo especificado devido à capacidade de expansão. Em alguns casos, o DynamoDB usa a capacidade de expansão para atender a leituras ou gravações que ultrapassam as configurações de throughput máximo da tabela. Com a capacidade de expansão, as solicitações de leitura ou gravação inesperadas podem ter êxito onde, de outra forma, seriam limitadas.

Considerações ao usar o throughput máximo para o modo sob demanda

Ao usar o throughput máximo para tabelas no modo sob demanda, as seguintes considerações se aplicam:

  • É possível definir de forma independente o throughput máximo de leituras e gravações de qualquer tabela sob demanda ou índice secundário global individual dentro dessa tabela para ajustar a abordagem com base em requisitos específicos.

  • Você pode usar o Amazon CloudWatch para monitorar e entender as métricas de uso por tabela do DynamoDB e para determinar as configurações de throughput máximo apropriadas para o modo sob demanda. Para ter mais informações, consulte Métricas e dimensões do DynamoDB.

  • Ao especificar as configurações de throughput máximo de leitura ou de gravação (ou de ambas) em uma réplica de tabela global, as mesmas configurações de throughput máximo são aplicadas automaticamente a todas as tabelas de réplica. É importante que as tabelas de réplica e os índices secundários em uma tabela global tenham configurações idênticas de throughput para garantir a replicação apropriada dos dados. Para ter mais informações, consulte Práticas recomendadas e requisitos para gerenciar tabelas globais.

  • O menor throughput máximo de leitura ou de gravação que você pode especificar é de uma unidade de solicitação por segundo.

  • O throughput máximo especificado deve ser menor do que a cota de throughput padrão que está disponível para qualquer tabela sob demanda ou índice secundário global individual dentro dessa tabela.

Controle de utilização de solicitações e métricas do CloudWatch

Se a aplicação exceder o throughput máximo de leitura ou de gravação definido na tabela sob demanda, o DynamoDB começará a controlar a utilização dessas solicitações. Quando o DynamoDB limita uma leitura ou gravação, ele retorna uma ThrottlingException para o chamador. Depois, você poderá tomar as medidas apropriadas, se necessário. Por exemplo, é possível aumentar ou desabilitar a configuração de throughput máximo da tabela ou aguardar um curto intervalo antes de repetir a solicitação.

Para simplificar o monitoramento do throughput máximo configurado para uma tabela ou um índice secundário global, o CloudWatch fornece as seguintes métricas: OnDemandMaxReadRequestUnits e OnDemandMaxWriteRequestUnits.