Planejamento da capacidade de throughput para tabelas globais do DynamoDB
A migração do tráfego de uma região para outra exige uma análise cuidadosa das configurações da tabela do DynamoDB em relação à capacidade.
Algumas considerações sobre o gerenciamento da capacidade de gravação:
Uma tabela global deve estar no modo sob demanda ou provisionada com o ajuste de escala automático ativado.
Se provisionada com o ajuste de escala automático, as configurações de gravação (utilização mínima, máxima e pretendida) são replicadas em todas as regiões. Embora as configurações de ajuste de escala automático sejam sincronizadas, a capacidade real de gravação provisionada pode variar de maneira independente entre as regiões.
Um motivo pelo qual você pode ver uma capacidade de gravação provisionada diferente é devido ao recurso de TTL. Ao habilitar a TTL no DynamoDB, você pode especificar um nome de atributo cujo valor indica a hora de expiração do item, em segundos no formato de hora epoch do Unix. Depois desse período, o DynamoDB poderá excluir o item sem incorrer em custos de gravação. Com tabelas globais, você pode configurar a TTL em uma região, e essa configuração é replicada automaticamente para as outras regiões associadas à tabela global. Quando um item é elegível para exclusão por meio de uma regra de TTL, esse trabalho pode ser feito em qualquer região. A operação de exclusão é executada sem consumir unidades de gravação na tabela de origem, mas as tabelas de réplica receberão uma gravação replicada dessa operação de exclusão e incorrerão em custos de unidade de gravação replicada.
Se você estiver usando o ajuste de escala automático, garanta que a configuração de capacidade máxima de gravação provisionada seja suficientemente alta para lidar com todas as operações de gravação, bem como com todas as possíveis operações de exclusão por TTL. O ajuste de escala automático ajusta cada região de acordo com seu consumo de gravação. As tabelas sob demanda não têm configuração de capacidade máxima de gravação provisionada, mas o limite máximo de throughput de gravação por tabela especifica a capacidade máxima de gravação sustentada que a tabela sob demanda permitirá. O limite padrão é 40 mil, mas esse limite é ajustável. Recomendamos que você o defina alto o suficiente para lidar com todas as operações de gravação (incluindo operações de gravação TTL) que a tabela sob demanda possa precisar. Esse valor deve igual em todas as regiões participantes quando você configura tabelas globais.
Algumas considerações sobre o gerenciamento da capacidade de leitura:
É permitido que as configurações de gerenciamento da capacidade de leitura sejam diferentes entre regiões, pois presume-se que regiões diferentes possam ter padrões de leitura independentes. Ao adicionar uma réplica global a uma tabela, a capacidade da região de origem é propagada. Após a criação, você pode ajustar as configurações de capacidade de leitura, que não são transferidas para o outro lado.
Ao usar o ajuste de escala automático do DynamoDB, certifique-se de que as configurações de capacidade máxima de leitura provisionada sejam suficientemente altas para lidar com todas as operações de leitura em todas as regiões. Durante as operações padrão, a capacidade de leitura talvez esteja distribuída entre as regiões, mas durante um failover, a tabela deve ser capaz de se adaptar automaticamente ao aumento da workload de leitura. As tabelas sob demanda não têm configuração de capacidade máxima de leitura provisionada, mas o limite máximo de throughput de leitura por tabela especifica a capacidade máxima de leitura sustentada que a tabela sob demanda permitirá. O limite padrão é 40 mil, mas esse limite é ajustável. Recomendamos que você o defina alto o suficiente para lidar com todas as operações de leitura que a tabela possa precisar se todas as operações de leitura fossem roteadas para essa única região.
Se uma tabela em uma região não costuma receber tráfego de leitura, mas pode precisar absorver uma grande quantidade de tráfego de leitura após um failover, você pode aumentar a capacidade de leitura provisionada da tabela, esperar que a tabela termine de ser atualizada e reduzir o provisionamento da tabela novamente. Você pode deixar a tabela no modo provisionado ou alterná-la para o modo sob demanda. Isso pré-prepara a tabela para aceitar um nível mais alto de tráfego de leitura.
O ARC inclui verificações de prontidão que podem ser úteis para confirmar se as regiões do DynamoDB têm configurações de tabela e cotas de conta semelhantes, independentemente de você usar ou não o Route 53 para rotear solicitações. Essas verificações de prontidão também podem ajudar a ajustar as cotas por conta para garantir que elas correspondam.