Dimensionamento para clusters Memcached - Amazon ElastiCache

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Dimensionamento para clusters Memcached

ElastiCache for Memcached oferece um serviço de cache em memória totalmente gerenciado que implanta, opera e escala verticalmente o Memcached na nuvem. AWS

Dimensionamento vertical sob demanda

Com o escalonamento vertical, o ElastiCache for Memcached fornece um sistema de cache de memória distribuído de alto desempenho, amplamente usado para acelerar aplicativos dinâmicos, aliviando a carga do banco de dados. Ele armazena dados e objetos na RAM, reduzindo a necessidade de leitura de fontes de dados externas.

Você pode usar clusters autoprojetados ElastiCache pelo Memcached para escalabilidade vertical. Você pode aplicar o escalonamento vertical aos clusters existentes, bem como aos novos. Isso pode fornecer flexibilidade na alocação de recursos, permitindo que os usuários se adaptem com eficiência às mudanças nas cargas de trabalho sem alterar a arquitetura do cluster. Essa capacidade de escalar melhora o desempenho aumentando a capacidade do cache durante os períodos de alta demanda e diminuindo a escala para otimizar os custos durante os períodos de baixa demanda. Isso simplifica as operações, elimina a necessidade de criar novos clusters para mudar os requisitos de recursos e permite respostas rápidas às flutuações do tráfego. No geral, o escalonamento vertical para caches autoprojetados pelo Memcached pode ajudar a aumentar a eficiência de custos, melhorar a utilização de recursos e até mesmo permitir que os usuários alterem o tipo de instância do Memcached. Tudo isso facilitando que os usuários alinhem sua infraestrutura de cache às necessidades reais do aplicativo.

nota
  • Modificações de cache e tipo de nó projetadas por você mesmo estão disponíveis somente para as versões 1.5 ou posteriores do mecanismo Memcached.

  • A descoberta automática deve estar ativada para usar a escala vertical.

Configurando o escalonamento vertical sob demanda para ElastiCache clusters Memcached

Você pode configurar o escalonamento vertical sob demanda para o Memcached comscale-config, que contém dois parâmetros:

  1. ScaleIntervalMinutes: Tempo (em minutos) entre lotes de escalabilidade durante o processo de atualização do Memcached

  2. ScalePercentage: Porcentagem de nós a serem escalados simultaneamente durante o processo de atualização do Memcached

Convertendo um tipo de nó existente do Memcached em um cache que pode ser escalado verticalmente por meio da CLI

Para converter um cache autoprojetado do Memcached existente em um cache que pode ser escalado verticalmente, você pode usar por meio elasticache modify-cache-cluster da CLI.

aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config <scale-config> \ --apply-immediately

Configurando o dimensionamento vertical com a CLI

Para configurar o escalonamento vertical para seu cache autoprojetado pelo Memcached por meio da CLI, use elasticache modify-cache-cluster with e seus parâmetros e. scale-config ScalePercentage ScaleIntervalMinutes

  • scale-interval-minutes: isso define o tempo (em minutos) entre os lotes de escalonamento. Essa configuração pode variar de 2 a 30 minutos. Se nenhum valor for especificado, o valor padrão de 5 minutos será aplicado.

  • porcentagem de escala: especifica a porcentagem de nós a serem escalados simultaneamente em cada lote. Essa configuração pode variar de 10 a 100. A configuração é arredondada ao dividir, então, por exemplo, se o resultado for 49,5, uma configuração de 50 será aplicada. Se nenhum valor for especificado, o valor padrão de 20 será aplicado.

Essas opções de configuração permitirão que você ajuste o processo de escalabilidade de acordo com suas necessidades específicas, equilibrando entre minimizar a interrupção do cluster e otimizar a velocidade de escalabilidade. O parâmetro scale-config só será aplicável aos tipos de mecanismos Memcached e será ignorado para outros mecanismos de cache, garantindo compatibilidade com versões anteriores do uso atual da API em outros clusters.

Chamada de API

aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config '{ "ScalePercentage": 30, "ScaleIntervalMinutes": 2 }' --apply-immediately

Resultado:

Retorna o ID do cluster de cache e a alteração pendente.

{ "CacheCluster": { "CacheNodeType": "old_insance_type", ... ... "PendingModifiedValues": { "CacheNodeType": "new_instance_type" }, } }

Listar sua configuração de escala vertical do cache do Memcached

Você pode recuperar as opções de dimensionamento para seus caches do Memcached e ver quais são as opções atuais para o dimensionamento vertical.

Chamada de API

aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>

Resultado:

{ "ScaleUpModifications": [ "cache.x.xxxx", "cache.x.xxxx" ], "ScaleDownModifications": [ "cache.x.xxxx", "cache.x.xxxx", "cache.x.xxxx" ] }

Dimensionamento vertical para Memcached com o AWS Management Console

Para converter um cache autoprojetado do Memcached existente em um cache que possa ser escalado verticalmente por meio do https://console.aws.amazon.com/elasticache/, siga estas etapas.

  1. Faça login no AWS Management Console e abra o ElastiCache console em https://console.aws.amazon.com/elasticache/.

  2. Selecione o cache do Memcached a ser convertido.

  3. Selecione a guia Modificar.

  4. Vá até a seção Configurações de cache e selecione o tipo de nó desejado.

  5. Selecione Visualizar alterações e revise as alterações.

  6. Selecione Modify.

Dimensionamento horizontal automatizado para Memcached

ElastiCache agora se integra ao serviço AWS Application Auto Scaling (AAS) para incluir escalabilidade horizontal automatizada para clusters Memcached. Você pode definir políticas de escalabilidade por meio do serviço AWS Application Auto Scaling e ajustar automaticamente o número de nós nos clusters do Memcached conforme necessário, com base em métricas ou cronogramas predefinidos.

nota

Atualmente, o escalonamento horizontal automatizado não está disponível nas regiões de Pequim e Ningxia.

Esses são os métodos disponíveis para escalar automaticamente horizontalmente seus caches projetados por você mesmo.

  • Escalonamento programado: o escalonamento baseado em um cronograma permite que você defina seu próprio cronograma de escalabilidade para mudanças de carga previsíveis. Por exemplo, toda semana o tráfego para seu aplicativo web começa a aumentar na quarta-feira, permanece alto na quinta-feira e começa a diminuir na sexta-feira. Você pode configurar o Auto Scaling para aumentar a capacidade na quarta-feira e diminuir a capacidade na sexta-feira.

  • Rastreamento de metas: com as políticas de escalabilidade de rastreamento de metas, você escolhe uma métrica de escalabilidade e define um valor alvo. O Application Auto Scaling cria e gerencia os CloudWatch alarmes que acionam a política de escalabilidade e calcula o ajuste de escalabilidade com base na métrica e no valor alvo. A política de escalabilidade adiciona ou remove capacidade conforme necessário para manter a métrica no valor de destino especificado ou próxima a ele.

Como configurar o escalonamento horizontal para um cache autoprojetado ElastiCache para Memcached por meio da CLI

Para escalabilidade horizontal com o ElastiCache Memcached, você pode ter uma política de rastreamento de metas, uma política programada ou ambas.

  1. Registre um recurso como alvo escalável

    Chame a RegisterScalableTarget API no AWS Application Auto Scaling para registrar o destino da dimensão escalável. elasticache:cache-cluster:Nodes

    API: ApplicationAutoScaling. RegisterScalableTarget

    Entrada:

    { "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }
  2. Crie uma política de escalabilidade de rastreamento do Target

    Em seguida, você pode criar uma política de escalabilidade de rastreamento de metas para o recurso chamando a API put scaling policy.

  3. Métrica predefinida

    A seguir está uma política que se expande de acordo com a dimensão do Cache Node, usando a métrica predefinida ElastiCacheCPUUtilization, definida como 50 para o cluster de cache test-cluster-1. Ao excluir nós para aumentar a escala, os últimos n nós serão removidos.

    API: ApplicationAutoScaling. PutScalingPolicy

    Entrada:

    { "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50, "PredefinedMetricSpecification": { "PredefinedMetricType": "ElastiCacheCPUUtilization" }, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }

    Saída:

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/elasticache/cache-cluster/test-cluster-1:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }
  4. Métrica personalizada

    Você também pode definir uma política de escalabilidade por dimensão usando uma porcentagem personalizada baseada na métrica do Cloudwatch.

    Entrada:

    { "PolicyName": "cpu50-target-tracking-scaling-policy", "PolicyType": "TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration": { "CustomizedMetricSpecification": { "Dimensions": [ { "Name": "MyMetricDimension", "Value": "DimensionValue" } ], "MetricName": "MyCustomMetric", "Namespace": "MyNamespace", "Statistic": "Average", "Unit": "Percent" }, "TargetValue": 40, "ScaleOutCooldown": 600, "ScaleInCooldown": 600 }, "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1" }
  5. Ações programadas

    Quando precisar escalar para um evento específico e depois escalar depois do evento, você pode criar duas ações agendadas chamando a PutScheduledAction API.

    Política 1: Expansão horizontal

    O at comando em --schedule agenda a ação para ser executada uma vez em uma data e hora especificadas no futuro. O campo de programação também suporta taxa (minuto, hora, dia etc.) e cron (para expressão cron).

    Na data e hora especificadas, o Application Auto Scaling atualiza os valores MinCapacity e MaxCapacity. O Application Auto Scaling se expande MinCapacity para colocar os nós de cache em 70.

    API: ApplicationAutoScaling. PutScheduledAction

    Entrada:

    { "ResourceId": "elasticache:ache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 100, "MinCapacity": 70 }, "Schedule": "at(2020-05-20T17:05:00)", "ScheduledActionName": "ScalingOutScheduledAction", "ServiceNamespace": "elasticache", }

    Política 2: Ampliação

    Na data e hora especificadas, o Application Auto Scaling atualiza o MinCapacity e MaxCapacity da tabela e se expande MaxCapacity para retornar os nós de cache para 60.

    API: ApplicationAutoScaling. PutScheduledAction

    Entrada:

    { "ResourceId": "elasticache:cache-cluster:test-cluster-1", "ScalableDimension": "elasticache:cache-cluster:Nodes", "ScalableTargetAction": { "MaxCapacity": 60, "MinCapacity": 40 }, "Schedule": "at(2020-05-21T17:05:00)", "ScheduledActionName": "ScalingInScheduledAction", "ServiceNamespace": "elasticache", }
  6. Veja as atividades de escalabilidade

    Você pode ver as atividades de escalabilidade usando a DescribeScalingActivities API.

    API: ApplicationAutoScaling. DescribeScalingActivities

    Saída:

    { "ScalingActivities": [ { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 30.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "4d759079-a31f-4d0c-8468-504c56e2eecf", "StartTime": 1462574194.658, "elasticacheNamespace": "elasticache", "EndTime": 1462574276.686, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Failed to set desired count to 30", "StatusCode": "Failed" }, { "ScalableDimension": "elasticache:elasticache:DesiredCount", "Description": "Setting desired count to 25.", "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ActivityId": "90aff0eb-dd6a-443c-889b-b809e78061c1", "StartTime": 1462574254.223, "elasticacheNamespace": "elasticache", "EndTime": 1462574333.492, "Cause": "monitor alarm TargetTracking-elasticache/cache-cluster/test-cluster-1-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca in state ALARM triggered policy cpu50-target-tracking-scaling-policy", "StatusMessage": "Successfully set desired count to 25. Change successfully fulfilled by elasticache.", "StatusCode": "Successful" } ] }
  7. Editar/excluir política de escalabilidade

    Você pode editar ou excluir políticas chamando a PutScalingPolicy API novamente ou chamando DeleteScalingPolicy ou DeleteScheduled Action.

  8. Cancele o registro de alvos escaláveis

    Você pode cancelar o registro do alvo escalável por meio da DeregisterScalableTarget API. O cancelamento do registro de uma meta escalável exclui as políticas de escalabilidade e as ações programadas associadas a ela.

    API: ApplicationAutoScaling. DeregisterScalableTarget

    Entrada:

    { "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }
  9. Limpeza de políticas de escalabilidade

  10. Várias políticas de escalabilidade

    Você pode criar várias políticas de escalabilidade. A seguir estão os principais textos explicativos sobre o comportamento do rastreamento de alvos do Auto Scaling.

    • Você pode ter várias políticas de escalabilidade de rastreamento de destino para um destino escalável, desde que cada uma delas use uma métrica diferente.

    • A intenção do Application Auto Scaling é sempre priorizar a disponibilidade, portanto, seu comportamento será diferente dependendo se as políticas de monitoramento do objetivo estão prontas para aumentar ou reduzir a escala. Ele vai expandir o destino dimensionável se qualquer uma das políticas de rastreamento de destino estiverem prontas para expandir, mas vai reduzir somente se todas as políticas de rastreamento de destino (com a parte de redução habilitada) estiverem prontas para reduzir

    • Se várias políticas instruírem o destino escalável a expandir ou reduzir ao mesmo tempo, o Application Auto Scaling fará a escalabilidade com base na política que fornece a maior capacidade tanto para expandir como para reduzir. Isso oferece maior flexibilidade para cobrir vários cenários e garante que sempre haja capacidade suficiente para processar suas cargas de trabalho de aplicativos.

    nota

    AWS O Application Auto Scaling não coloca políticas de escalabilidade em fila. O Application Auto Scaling aguardará a conclusão do primeiro escalonamento, depois esfriará e repetirá o algoritmo acima.

Dimensione automaticamente horizontalmente um cache do Memcached por meio do AWS Management Console

Para converter um cache autoprojetado do Memcached existente em um cache que possa ser escalado horizontalmente por meio do https://console.aws.amazon.com/elasticache/, siga estas etapas.

  1. Faça login no AWS Management Console e abra o ElastiCache console em https://console.aws.amazon.com/elasticache/.

  2. Selecione o cache do Memcached a ser convertido.

  3. Acesse a guia Escalonamento automático.

  4. Selecione a política de escalabilidade a ser aplicada, selecionando Adicionar escalabilidade dinâmica ou Adicionar escalabilidade programada.

  5. Preencha os detalhes da política selecionada conforme necessário.

  6. Clique em Criar.