Escalabilidade do ElastiCache
Você pode escalar seu cache do ElastiCache para atender às suas necessidades. Caches sem servidor e clusters autoprojetados oferecem várias opções de escalabilidade diferentes.
Escalar o ElastiCache Sem Servidor
O ElastiCache Sem Servidor acomoda automaticamente o tráfego de workload à medida que ele aumenta ou diminui. Para cada cache do ElastiCache Sem Servidor, o ElastiCache monitora continuamente a utilização de recursos, como CPU, memória e rede. Quando qualquer um desses recursos é restrito, o ElastiCache Sem Servidor escala adicionando um novo fragmento e redistribuindo dados ao novo fragmento, sem nenhum tempo de inatividade para a aplicação. Você pode monitorar os recursos que estão sendo consumidos pelo cache no CloudWatch monitorando a métrica BytesUsedForCache
para armazenamento de dados em cache e ElastiCacheProcessingUnits
(ECPU) para uso de computação.
Definição dos limites de escalabilidade para gerenciar custos
Você pode optar por configurar um uso máximo no armazenamento de dados em cache e na ECPU/segundo do cache para controlar os custos do cache. Isso vai garantir que o uso do cache jamais exceda o máximo configurado.
Se você definir uma escala máxima, a aplicação pode apresentar um desempenho de cache reduzido quando o cache atinge o máximo. Quando você define um máximo de armazenamento de dados em cache e o armazenamento de dados em cache atinge o máximo, o ElastiCache começa a remover dados no cache que tenham um tempo de vida útil (TTL) definido, usando a lógica LRU. Se não houver dados que possam ser removidos, as solicitações de gravação de dados adicionais receberão uma mensagem de erro de falta de memória (OOM). Quando você definir um máximo de ECPU/segundo e a utilização computacional da workload exceder esse valor, o ElastiCache começará a aplicar controle de utilização às solicitações.
Se você configurar um limite máximo em BytesUsedForCache
ouElastiCacheProcessingUnits
, será altamente recomendável configurar um alarme do CloudWatch com um valor inferior ao limite máximo para que você receber a notificação quando o cache estiver operando próximo desses limites. É recomendável definir um alarme em 75% do limite máximo definido. Consulte a documentação sobre como configurar os alarmes do CloudWatch.
Pré-escalabilidade com o ElastiCache Sem Servidor
Pré-escalabilidade do ElastiCache Sem Servidor
Com a pré-escalabilidade, também chamado de pré-preparação, você pode definir limites mínimos suportados para seu cache do ElastiCache. Você pode definir esses mínimos para unidades de processamento ElastiCache (eCPUs) por segundo ou armazenamento de dados. Isso pode ser útil na preparação para eventos de escalonamento previstos. Por exemplo, se uma empresa de jogos espera um aumento de 5 vezes nos logins no primeiro minuto de lançamento do novo jogo, ela pode preparar seu cache para esse aumento significativo no uso.
Você pode realizar a pré-escalabilidade usando o console, a CLI ou a API do ElastiCache. O ElastiCache Sem Servidor atualiza as ECPUs disponíveis por segundo no cache em 60 minutos e envia uma notificação de evento quando a atualização do limite mínimo é concluída.
Como funciona a pré-escalabilidade
Quando o limite mínimo de ECPUs por segundo ou armazenamento de dados é atualizado por meio do console, da CLI ou da API, esse novo limite fica disponível em 1 hora. O ElastiCache Sem Servidor suporta 30 mil ECPUs por segundo em um cache vazio e até 90 mil ECPUs/segundo ao usar o recurso de leitura da réplica. O ElastiCache pode dobrar ECPUs por segundo a cada 10 a 12 minutos. Essa velocidade de escalabilidade é suficiente para a maioria das workloads. Se você prevê que um próximo evento de escalabilidade possa exceder essa taxa, recomendamos definir o mínimo de ECPUs por segundo para o pico de ECPUs por segundo que você espera pelo menos 60 minutos antes do evento de pico. Caso contrário, o aplicativo poderá apresentar latência elevada e limitação de solicitações.
Quando a atualização do limite mínimo for concluída, o ElastiCache Sem Servidor começará a medir seus recursos para obter as novas eCPUs mínimas por segundo ou o novo armazenamento mínimo. Isso ocorre mesmo se o aplicativo não estiver executando solicitações no cache ou se o uso do armazenamento de dados estiver abaixo do mínimo. Quando você reduz o limite mínimo da configuração atual, a atualização é imediata, então o ElastiCache Sem Servidor começará a medir o novo limite mínimo imediatamente.
nota
Ao definir um limite mínimo de uso, você é cobrado por esse limite, mesmo que seu uso real seja menor que o limite mínimo de uso. O uso de ECPU ou armazenamento de dados que exceda o limite mínimo de uso é cobrado de acordo com a taxa normal. Por exemplo, se você definir um limite mínimo de uso de 100.000 ECPUs por segundo, será cobrado pelo menos US$ 1,224 por hora (usando os preços de ECPU em us-east-1), mesmo que seu uso seja inferior ao mínimo definido.
O ElastiCache Sem Servidor suporta a escala mínima solicitada em um nível agregado no cache. O ElastiCache Sem Servidor também suporta no máximo 30 mil ECPUs por segundo por slot (90 mil ECPUS/segundo ao usar a leitura da réplica usando conexões READONLY). Como prática recomendada, seu aplicativo deve garantir que a distribuição de chaves nos slots Valkey ou Redis OSS e o tráfego entre chaves sejam o mais uniformes possível.
Definição dos limites de escala usando o console e AWS CLI
Definição dos limites de escala usando o console da AWS
Faça login no AWS Management Console e abra o console do ElastiCache em https://console.aws.amazon.com/elasticache/
. No painel de navegação, escolha o mecanismo em execução no cache que você deseja modificar.
É exibida uma lista de caches que executam o mecanismo escolhido.
Escolha o cache a ser modificado selecionando o botão de opção à esquerda do nome do cache.
Escolha Açõe e Modificar.
Em Limites de uso, defina os limites de Memória ou Computar adequados.
Clique em Previsualizar alterações e em Salvar alterações.
Definição dos limites de escala usando a AWS CLI
Para alterar os limites de escala usando a CLI, use a API modify-serverless-cache.
Linux
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'
Windows:
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=10,Maximum=100,Unit=GB}, ECPUPerSecond={Minimum=1000,Maximum=100000}'
Remoção dos limites de escala usando a CLI
Para remover limites de escala usando a CLI, defina os parâmetros de limite mínimo e máximo como 0.
Linux
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> \ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'
Windows:
aws elasticache modify-serverless-cache --serverless-cache-name <cache name> ^ --cache-usage-limits 'DataStorage={Minimum=0,Maximum=0,Unit=GB}, ECPUPerSecond={Minimum=0,Maximum=0}'