Avaliar o modo de capacidade de uma tabela do DynamoDB
Esta seção apresenta uma visão geral de como selecionar o modo de capacidade adequado para a tabela do DynamoDB. Cada modo é ajustado para atender às necessidades de uma workload diferente em termos de capacidade de resposta a mudanças no throughput, bem como de como esse uso é cobrado. Você deve ponderar sobre esses fatores ao tomar a decisão.
Tópicos
Quais modos de capacidade de tabela estão disponíveis
Ao criar uma tabela do DynamoDB, é necessário selecionar o modo de capacidade sob demanda ou provisionada. Você pode alternar entre os modos de capacidade de leitura/gravação uma vez a cada 24 horas. A única exceção é que, se você alternar uma tabela de modo provisionado para o modo sob demanda, poderá voltar para o modo provisionado no mesmo período de 24 horas.
Modo de capacidade sob demanda
O modo de capacidade sob demanda foi projetado para eliminar a necessidade de planejar ou provisionar a capacidade da tabela do DynamoDB. Nesse modo, a tabela atenderá instantaneamente às solicitações feitas a ela sem a necessidade de escalar recursos (até o dobro do throughput máximo anterior da tabela).
As tabelas sob demanda são cobradas pela contagem do número de solicitações reais à tabela. Portanto, você pagará apenas pelo que usar e não pelo que foi provisionado.
Tabelas de capacidade provisionada
O modo de capacidade provisionada é um modelo mais tradicional em que é possível definir que capacidade a tabela tem disponível para solicitações feitas diretamente ou com a ajuda do ajuste de escala automático. Como uma capacidade específica é provisionada para a tabela a qualquer momento, o faturamento baseia-se na capacidade provisionada e não no número de solicitações. Ultrapassar a capacidade alocada também pode fazer com que a tabela rejeite solicitações e reduza a experiência dos usuários de suas aplicações.
O modo de capacidade provisionada exige um equilíbrio entre não superprovisionar ou subprovisionar a tabela para manter o controle de utilização baixo e os custos ajustados.
Quando selecionar o modo de capacidade sob demanda
Para otimizar o custo, o modo sob demanda é a melhor opção quando se tem uma workload semelhante ao grafo a seguir.
Os seguintes fatores contribuem para esse tipo de workload:
-
Tempo de solicitação imprevisível (resultando em picos de tráfego)
-
Volume variável de solicitações (resultante de workloads em lote)
-
Queda para 0 ou abaixo de 18% do pico em determinada hora (resultante de ambientes de desenvolvimento ou teste)
Com relação a workloads com os fatores acima, usar o ajuste de escala automático para manter capacidade suficiente na tabela e responder aos picos de tráfego provavelmente fará com que a tabela seja superprovisionada e tenha um custo superior ao necessário ou seja subprovisionada e as solicitações tenham um controle de utilização desnecessário.
Como as tabelas sob demanda são cobradas de acordo com o modelo de pagamento por solicitação (de leitura e de gravação), você paga apenas pelo que usar, o que permite contrabalançar com facilidade custos e performance. Você também pode configurar o throughput máximo de leitura ou de gravação (ou de ambas) por segundo para tabelas individuais sob demanda e índices secundários globais a fim de ajudar a limitar os custos e o uso. Para ter mais informações, consulte Throughput máximo do DynamoDB para tabelas sob demanda. É necessário avaliar regularmente as tabelas sob demanda para verificar se a workload ainda tem os fatores acima. Caso a workload esteja estabilizada, considere a possibilidade de mudar para o modo provisionado a fim de otimizar ainda mais os custos.
Quando selecionar o modo de capacidade provisionada
Uma workload ideal para o modo de capacidade provisionada é aquela com um padrão de uso mais previsível, como o grafo abaixo.
nota
Recomendamos analisar as métricas em um período detalhado, como 14 dias ou 24 horas, antes de utilizar a capacidade provisionada.
Os seguintes fatores contribuem para esse tipo de workload:
-
Tráfego previsível/cíclico em determinada hora ou determinado dia
-
Intermitências limitadas de tráfego de curto prazo
Como os volumes de tráfego em determinada hora ou determinado dia são mais estáveis, podemos definir a capacidade provisionada da tabela relativamente próxima à capacidade real consumida. A otimização de custos de uma tabela de capacidade provisionada é, em última análise, um exercício para obter a capacidade provisionada (linha azul) o mais próximo possível da capacidade consumida (linha laranja) sem aumentar ThrottledRequests
na tabela. O espaço entre as duas linhas representa tanto capacidade desperdiçada quanto garantia contra uma experiência inadequada do usuário devido ao controle de utilização.
O DynamoDB fornece autoescalabilidade para tabelas de capacidade provisionada que equilibrarão isso automaticamente em seu nome. Isso permite que você acompanhe a capacidade consumida ao longo do dia e defina a capacidade da tabela com base em algumas variáveis.
Unidades de capacidade mínima
É possível definir a capacidade mínima de uma tabela para limitar o controle de utilização, mas isso não reduzirá o custo da tabela. Se a tabela tiver períodos de baixo uso seguidos de uma expansão repentina de alto uso, definir o mínimo poderá impedir que a autoescalabilidade defina a capacidade da tabela com um valor muito baixo.
Unidades de capacidade máxima
É possível definir a capacidade máxima de uma tabela para impedir que a tabela escale acima do pretendido. Considere a possibilidade de aplicar um máximo para tabelas de desenvolvimento ou teste em que os testes de carga em grande escala não são desejados. É possível definir um máximo para qualquer tabela, mas avalie regularmente essa configuração em relação à linha de base da tabela ao usá-la na produção para evitar controle de utilização acidental.
Utilização pretendida
Definir a meta de utilização da tabela é o principal meio de otimização de custos para uma tabela de capacidade provisionada. Definir um valor percentual mais baixo aqui aumentará o superprovisionamento da tabela, o que eleva os custos, mas reduz o risco de controle de utilização. Definir um valor percentual mais alto diminuirá o superprovisionamento da tabela, mas aumentará o risco de controle de utilização.
Fatores adicionais a serem considerados ao escolher um modo de capacidade de tabela
Ao decidir entre os dois modos, há alguns fatores adicionais que vale a pena considerar.
Capacidade reservada
Para tabelas de capacidade provisionada, o DynamoDB oferece a opção de comprar capacidade reservada para leitura e gravação [unidades de capacidade de gravação replicada (rWCU) e tabelas Standard-IA não estão qualificadas atualmente]. Se você optar por comprar reservas para essa capacidade, será possível reduzir uma porcentagem significativa do custo da tabela.
Ao decidir entre os dois modos de tabela, considere quanto esse desconto adicional afetará o custo da tabela. Em muitos casos, até mesmo uma workload relativamente imprevisível pode ser mais barata de ser executada em uma tabela de capacidade provisionada superprovisionada com capacidade reservada.
Melhorar a previsibilidade da workload
Em algumas situações, uma workload pode aparentemente ter um padrão previsível e imprevisível. Embora isso possa ser facilmente atendido com uma tabela sob demanda, os custos provavelmente serão melhores se for possível melhorar os padrões imprevisíveis da workload.
Uma das causas mais comuns para esses padrões são as importações em lote. Esse tipo de tráfego geralmente pode exceder a capacidade básica da tabela a tal ponto que o controle de utilização ocorreria se ela fosse executada. Para manter uma workload como essa em execução em uma tabela de capacidade provisionada, considere as seguintes opções:
-
Se o lote ocorrer em horários programados, será possível programar um aumento na capacidade de autoescalabilidade antes da execução
-
Caso o lote ocorra aleatoriamente, considere a possibilidade de tentar estender o tempo de execução em vez de executá-lo o mais rápido possível
-
Adicione um período de aceleração à importação no qual a velocidade da importação começa pequena, mas aumenta lentamente em alguns minutos até que o ajuste de escala automático tenha a oportunidade de começar a ajustar a capacidade da tabela.