0Pricing
AWS Solutions Architect · Aula

Capacidade provisionada versus sob demanda

Escolha entre throughput provisionado com escalabilidade automática e o modo sob demanda com base na previsibilidade do tráfego e no custo.

Capacidade provisionada versus sob demanda é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.

Explicação das unidades de capacidade do DynamoDB

O DynamoDB mede a taxa de transferência em Read Capacity Units (RCUs) e Write Capacity Units (WCUs). Uma RCU permite uma leitura fortemente consistente por segundo (ou duas leituras eventualmente consistentes) para itens de até 4 KB. Uma WCU permite uma gravação por segundo para itens de até 1 KB.

Para itens maiores, o custo aumenta proporcionalmente: uma gravação de 10 KB custa 10 WCUs; uma leitura fortemente consistente de 10 KB custa 3 RCUs (ceil(10/4) = 3). Compreender as unidades de capacidade é essencial para estimar custos e diagnosticar erros de limitação ProvisionedThroughputExceededException.

Modo de capacidade provisionada

No modo de capacidade provisionada, você especifica o número exato de RCU e WCU que sua tabela deve suportar. O DynamoDB reserva essa taxa de transferência e cobra por ela, independentemente de você utilizá-la ou não. Se sua aplicação exceder a capacidade provisionada, as solicitações serão limitadas e retornarão uma ProvisionedThroughputExceededException.

O modo provisionado é ideal para cargas de trabalho com tráfego previsível e estável. O custo por unidade é menor que no modo sob demanda, e você pode reduzi-lo ainda mais adquirindo capacidade reservada do DynamoDB (compromissos de 1 ou 3 anos com desconto de até 76%).

# Create a table with provisioned capacity
aws dynamodb create-table \
  --table-name Products \
  --attribute-definitions AttributeName=ProductId,AttributeType=S \
  --key-schema AttributeName=ProductId,KeyType=HASH \
  --provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=50

Modo de capacidade sob demanda

No modo sob demanda, o DynamoDB aumenta ou reduz a escala automaticamente para acomodar qualquer nível de tráfego, sem planejamento de capacidade. Você paga por solicitação: por RRU (unidade de solicitação de leitura) e por WRU (unidade de solicitação de gravação) efetivamente consumidas. Não há capacidade provisionada para gerenciar nem limitação causada por limites provisionados.

O modo sob demanda é ideal para: cargas de trabalho imprevisíveis ou com picos, tabelas novas cujo tráfego é desconhecido e ambientes de desenvolvimento/teste com acesso infrequente. O custo por solicitação é maior que o do modo provisionado; portanto, para cargas de trabalho estáveis e de alto volume, o modo provisionado é mais econômico.

# Create a table in on-demand mode
aws dynamodb create-table \
  --table-name Events \
  --attribute-definitions AttributeName=EventId,AttributeType=S \
  --key-schema AttributeName=EventId,KeyType=HASH \
  --billing-mode PAY_PER_REQUEST

Alternância entre modos de capacidade

Você pode alternar uma tabela entre os modos provisionado e sob demanda a qualquer momento usando o console ou a CLI. No entanto, só é possível alternar de modo uma vez a cada 24 horas. Depois de mudar para o modo sob demanda, a tabela mantém a capacidade provisionada de pico anterior como seu nível inicial de taxa de transferência, evitando limitações imediatas caso o tráfego já esteja alto.

Uma estratégia comum é usar o modo sob demanda durante o lançamento inicial, quando os padrões de tráfego são desconhecidos, e depois mudar para o modo provisionado com escalabilidade automática quando o tráfego se tornar previsível, reduzindo os custos.

# Switch a table to on-demand billing mode
aws dynamodb update-table \
  --table-name Products \
  --billing-mode PAY_PER_REQUEST

Escalabilidade automática do DynamoDB no modo provisionado

A escalabilidade automática do DynamoDB ajusta automaticamente suas RCU e WCU provisionadas em resposta ao tráfego real. Você define um percentual de utilização desejado (por exemplo, 70%) e um intervalo de capacidade mínima/máxima. Uma política de escalabilidade automática de aplicações monitora a capacidade consumida pela tabela e ajusta a capacidade provisionada para manter a utilização desejada.

A escalabilidade automática reage a mudanças sustentadas no tráfego e pode levar alguns minutos para aumentar a escala. Ela não lida bem com picos repentinos de tráfego; nesses casos, aqueça previamente a capacidade de forma manual ou use o modo sob demanda.

# Register table as an auto scaling target
aws application-autoscaling register-scalable-target \
  --service-namespace dynamodb \
  --resource-id 'table/Products' \
  --scalable-dimension dynamodb:table:ReadCapacityUnits \
  --min-capacity 10 \
  --max-capacity 1000

Capacidade de expansão temporária

O DynamoDB retém até 5 minutos de capacidade provisionada não utilizada como capacidade de expansão temporária. Quando o tráfego da tabela excede brevemente o nível provisionado, o DynamoDB utiliza o conjunto de expansão temporária para atender às solicitações extras sem aplicar limitações. Quando esse conjunto se esgota, as solicitações excedentes seguintes sofrem limitação.

A capacidade de expansão temporária é um recurso de curto prazo, não um substituto para o planejamento correto de capacidade. Monitore as métricas do CloudWatch ConsumedReadCapacityUnits e ConsumedWriteCapacityUnits para detectar quando sua carga de trabalho estiver consumindo capacidade de expansão temporária de forma consistente e ajuste a taxa de transferência provisionada adequadamente.

Limitação e tratamento de erros

Quando a capacidade provisionada é excedida (e a capacidade de expansão temporária se esgota), o DynamoDB retorna ProvisionedThroughputExceededException. Os SDKs da AWS incluem lógica integrada de novas tentativas, com espera exponencial e aleatoriedade, que repete automaticamente as solicitações limitadas.

Para diagnosticar limitações, verifique as métricas do CloudWatch SystemErrors e ThrottledRequests. Se chaves de partição específicas estiverem sofrendo limitações enquanto a utilização geral da tabela estiver baixa, você terá um problema de partição sobrecarregada: redesenhe a chave de partição, adicione uma chave de ordenação ou use fragmentação de gravações.

Estimativa dos requisitos de capacidade

Para estimar a capacidade no modo provisionado:

  • Calcule gravações máximas por segundo × tamanho médio do item / 1 KB (arredondado para cima) = WCUs necessárias
  • Calcule leituras máximas por segundo × tamanho médio do item / 4 KB (arredondado para cima) = RCUs necessárias (fortemente consistentes); divida por dois para leituras eventualmente consistentes
  • Adicione uma margem de segurança de 20–30% acima do pico para absorver picos antes que a capacidade de expansão temporária seja consumida

Exemplo: 1.000 gravações/s de itens de 2 KB = 2.000 WCUs. 5.000 leituras/s de itens de 8 KB (eventualmente consistentes) = ceil(8/4) × 5.000 / 2 = 5.000 RCUs.

Capacidade reservada para redução de custos

A capacidade reservada do DynamoDB permite comprar uma quantidade fixa de RCU e WCU por um período de 1 ou 3 anos, pagando antecipadamente para obter um desconto significativo (de até 76%) em relação aos preços do modo sob demanda. A capacidade reservada se aplica a todas as tabelas provisionadas em uma Região e é aplicada automaticamente às suas cobranças por hora.

A capacidade reservada se aplica somente ao modo provisionado; não é possível usá-la com o modo sob demanda. Essa é a melhor opção de economia para cargas de trabalho estáveis e previsíveis, que você consiga estimar com segurança para um período de 1 a 3 anos.

Comparação dos modos: guia de decisão para a prova

Use este guia de decisão para questões da SAA-C03 sobre modos de capacidade:

  • Sob demanda: tráfego imprevisível, aplicação nova, acesso infrequente, carga de trabalho com picos, quando você deseja não ter nenhum gerenciamento de capacidade
  • Provisionado: tráfego consistente e previsível, preocupação com custos, disposição para gerenciar a capacidade, possibilidade de obter descontos de capacidade reservada
  • Provisionado + escalabilidade automática: linha de base previsível com alguma variação, quando você deseja ajustes automáticos sem alterações manuais

Na prova, palavras-chave como 'com picos', 'imprevisível' ou 'sobrecarga operacional mínima' indicam o modo sob demanda; 'tráfego constante' ou 'otimização de custos' indicam o modo provisionado.

Capacidade adaptativa

A capacidade adaptativa do DynamoDB redistribui automaticamente a taxa de transferência de partições frias para partições quentes em tempo real. Se uma chave de partição estiver recebendo mais tráfego do que sua parcela alocada, a capacidade adaptativa toma emprestada a taxa de transferência de partições subutilizadas para acomodar a partição quente, desde que a capacidade total da tabela não seja excedida.

A capacidade adaptativa está sempre habilitada e não exige configuração. Ela reduz as limitações de partições quentes em padrões de acesso moderadamente desiguais. Para cargas de trabalho com distribuição extremamente desequilibrada (por exemplo, quando uma chave de partição recebe 90% do tráfego), a capacidade adaptativa não é suficiente: você deve redesenhar a chave de partição ou usar fragmentação de gravações.

Verificação rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.

Recapitulação da lição

Nesta lição, você aprendeu que: o modo provisionado define RCU/WCU fixas para cargas de trabalho previsíveis a um custo menor; o modo sob demanda ajusta a escala automaticamente para tráfego imprevisível, com um preço por solicitação mais alto; e a escalabilidade automática ajusta a capacidade provisionada com base em percentuais de utilização desejados. A seguir, exploraremos Global Secondary Indexes e Local Secondary Indexes para padrões de consulta alternativos.

Perguntas Frequentes

A aula “Capacidade provisionada versus sob demanda” é grátis?

Sim — o texto completo de “Capacidade provisionada versus sob demanda” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.

O que vou aprender em “Capacidade provisionada versus sob demanda”?

Escolha entre throughput provisionado com escalabilidade automática e o modo sob demanda com base na previsibilidade do tráfego e no custo. Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AWS Solutions Architect?

Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Capacidade provisionada versus sob demanda”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AWS Solutions Architect?

Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Tabelas, itens e chaves primárias
  2. Capacidade provisionada versus sob demanda
  3. Índices secundários globais e índices secundários locais
  4. Streams do DynamoDB e tabelas globais
← Voltar para AWS Solutions Architect