Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Scalabilità per i cluster Memcached
ElastiCache for Memcached offre un servizio di caching in memoria completamente gestito che implementa, gestisce e ridimensiona verticalmente Memcached nel cloud. AWS
Scalabilità verticale su richiesta
Con la scalabilità verticale, ElastiCache per Memcached fornisce un sistema di caching della memoria distribuito ad alte prestazioni ampiamente utilizzato per velocizzare le applicazioni dinamiche alleviando il carico del database. Memorizza dati e oggetti nella RAM, riducendo la necessità di leggere da fonti di dati esterne.
È possibile utilizzare ElastiCache i cluster progettati internamente da Memcached per la scalabilità verticale. È possibile applicare la scalabilità verticale ai cluster esistenti e a quelli nuovi. Ciò può fornire flessibilità nell'allocazione delle risorse, consentendo agli utenti di adattarsi in modo efficiente ai carichi di lavoro in evoluzione senza alterare l'architettura del cluster. Questa capacità di scalabilità migliora le prestazioni aumentando la capacità della cache nei periodi di alta domanda e riducendola per ottimizzare i costi nei periodi di bassa domanda. Ciò semplifica le operazioni, elimina la necessità di creare nuovi cluster per modificare i requisiti di risorse e consente risposte rapide alle fluttuazioni del traffico. Nel complesso, la scalabilità verticale per le cache progettate autonomamente da Memcached può aiutare a migliorare l'efficienza dei costi, migliorare l'utilizzo delle risorse e persino consentire agli utenti di modificare il tipo di istanza Memcached. Tutto ciò consente agli utenti di allineare più facilmente la propria infrastruttura di caching alle effettive esigenze delle applicazioni.
Nota
Le modifiche al tipo di cache e nodo progettate autonomamente sono disponibili solo per le versioni 1.5 o successive del motore Memcached.
Auto Discovery deve essere abilitato per poter utilizzare il ridimensionamento verticale.
Configurazione del ridimensionamento verticale su richiesta per i cluster Memcached ElastiCache
È possibile configurare la scalabilità verticale su richiesta per Memcached con, che contiene due parametri: scale-config
ScaleIntervalMinutes: Tempo (in minuti) tra i batch di scalabilità durante il processo di aggiornamento di Memcached
ScalePercentage: percentuale di nodi da scalare contemporaneamente durante il processo di aggiornamento di Memcached
Conversione di un tipo di nodo Memcached esistente in una cache scalabile verticalmente tramite la CLI
Per convertire una cache Memcached progettata autonomamente in una cache scalabile verticalmente, puoi utilizzarla tramite elasticache modify-cache-cluster
la CLI.
aws elasticache modify-cache-cluster \ --cache-cluster-id <your-cluster-id> \ --cache-node-type <new-node-type> \ --scale-config <scale-config> \ --apply-immediately
Configurazione della scalabilità verticale con la CLI
Per configurare la scalatura verticale per la cache progettata autonomamente da Memcached tramite la CLI, usa elasticache modify-cache-cluster
with e i suoi parametri e. scale-config
ScalePercentage
ScaleIntervalMinutes
scale-interval-minutes: definisce il tempo (in minuti) tra i batch di ridimensionamento. Questa impostazione può variare da 2 a 30 minuti. Se non viene specificato alcun valore, viene applicato il valore predefinito di 5 minuti.
scale-percentage: specifica la percentuale di nodi da scalare contemporaneamente in ogni batch. Questa impostazione può variare da 10 a 100. L'impostazione viene arrotondata per eccesso quando si divide, quindi ad esempio se il risultato è 49,5 viene applicata un'impostazione di 50. Se non viene specificato alcun valore, viene applicato il valore predefinito 20.
Queste opzioni di configurazione vi consentiranno di ottimizzare il processo di scalabilità in base alle vostre esigenze specifiche, bilanciando tra la riduzione al minimo delle interruzioni del cluster e l'ottimizzazione della velocità di scalabilità. Il parametro scale-config sarà applicabile solo ai tipi di motori Memcached e verrà ignorato per gli altri motori di cache, garantendo la retrocompatibilità con l'utilizzo delle API esistenti per altri cluster.
Chiamata 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
Risultato:
Restituisce l'ID del cluster di cache e la modifica in sospeso.
{ "CacheCluster": { "CacheNodeType": "old_insance_type", ... ... "PendingModifiedValues": { "CacheNodeType": "new_instance_type" }, } }
Elenca le impostazioni di ridimensionamento verticale della cache Memcached
Puoi recuperare le opzioni di ridimensionamento per le tue cache Memcached e vedere quali sono le opzioni correnti per il ridimensionamento verticale.
Chiamata API
aws elasticache list-allowed-node-type-modifications --cache-cluster-id <your-cluster-id>
Risultato:
{ "ScaleUpModifications": [ "cache.x.xxxx", "cache.x.xxxx" ], "ScaleDownModifications": [ "cache.x.xxxx", "cache.x.xxxx", "cache.x.xxxx" ] }
Ridimensionamento verticale per Memcached con AWS Management Console
Per convertire una cache esistente progettata da Memcached in una cache scalabile verticalmente attraverso il, segui questi passaggi. https://console.aws.amazon.com/elasticache/
Accedi a AWS Management Console e apri la console all'indirizzo. ElastiCache https://console.aws.amazon.com/elasticache/
Seleziona la cache Memcached da convertire.
Seleziona la scheda Modifica.
Vai alla sezione Impostazioni cache e seleziona il tipo di nodo desiderato.
Seleziona Anteprima delle modifiche e rivedi le modifiche.
Selezionare Modify (Modifica).
Scalabilità orizzontale automatizzata per Memcached
ElastiCache ora si integra con il servizio AWS Application Auto Scaling (AAS) per includere la scalabilità orizzontale automatizzata per i cluster Memcached. È possibile definire policy di scalabilità tramite il servizio AWS Application Auto Scaling e regolare automaticamente il numero di nodi nei cluster Memcached secondo necessità, in base a metriche o pianificazioni predefinite.
Nota
La scalabilità orizzontale automatizzata non è attualmente disponibile nelle regioni di Pechino e Ningxia.
Questi sono i metodi disponibili per scalare automaticamente orizzontalmente le cache progettate autonomamente.
Scalabilità pianificata: la scalabilità basata su una pianificazione consente di impostare una pianificazione di ridimensionamento personalizzata per modifiche prevedibili del carico. Ad esempio, ogni settimana il traffico verso l'applicazione Web inizia ad aumentare di mercoledì, rimane elevato di giovedì e inizia a scendere di venerdì. È possibile configurare Auto Scaling per aumentare la capacità il mercoledì e diminuirla il venerdì.
Tracciamento degli obiettivi: con le politiche di scalabilità del tracciamento degli obiettivi, scegli una metrica di scalabilità e imposti un valore obiettivo. Application Auto Scaling crea e gestisce gli CloudWatch allarmi che attivano la politica di scalabilità e calcola la regolazione della scalabilità in base alla metrica e al valore target. La policy di dimensionamento aggiunge o rimuove la capacità in base alle necessità, per mantenere il parametro al valore di destinazione specificato o vicino a esso.
Come configurare la scalabilità orizzontale per una cache autoprogettata ElastiCache per Memcached tramite la CLI
Per la scalabilità orizzontale con ElastiCache Memcached, puoi avere una policy di tracciamento degli obiettivi, una policy pianificata o entrambe.
Registra una risorsa come obiettivo scalabile
Chiama l'
RegisterScalableTarget
API in AWS Application Auto Scaling per registrare la destinazione per la dimensione scalabile.elasticache:cache-cluster:Nodes
API:. ApplicationAutoScaling RegisterScalableTarget
Input:
{ "ScalableDimension": "elasticache:cache-cluster:Nodes", "ResourceId": "cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "MinCapacity": 20, "MaxCapacity": 50 }
Crea una politica di ridimensionamento del tracciamento di Target
Successivamente, puoi creare una politica di ridimensionamento di tracciamento di destinazione per la risorsa chiamando l'API put scaling policy.
Metrica predefinita
Di seguito è riportata una politica scalabile in base alla dimensione del nodo di cache, utilizzando la metrica predefinita
ElastiCacheCPUUtilization
, impostata su 50 per il cluster di cache test-cluster-1. Quando si eliminano i nodi per la scalabilità in, verranno rimossi gli ultimi n nodi.API:. ApplicationAutoScaling PutScalingPolicy
Input:
{ "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" }
Output:
{ "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" } ] }
Metrica personalizzata
Puoi anche impostare una politica di scalabilità sulla dimensione utilizzando una percentuale personalizzata basata sulla metrica di Cloudwatch.
Input:
{ "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" }
Operazioni pianificate
Quando devi scalare orizzontalmente per un particolare evento e poi ampliarlo dopo l'evento, puoi creare due azioni pianificate chiamando l'API.
PutScheduledAction
Politica 1: Scalabilità orizzontale
Il
at
comando in--schedule
pianifica l'esecuzione dell'azione una sola volta in una data e ora specificate nelle future. Il campo schedulazione supporta anche rate (minute, hour, day ecc.) e cron (per l'espressione cron).Alla data e all'ora specificate, Application Auto Scaling aggiorna i valori
MinCapacity
eMaxCapacity
. Application Auto Scaling è scalabile fino a MinCapacity portare i nodi della cache a 70.API:. ApplicationAutoScaling PutScheduledAction
Input:
{ "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", }
Politica 2: Scalabilità
Alla data e all'ora specificate, Application Auto Scaling aggiorna la tabella
MinCapacity
eMaxCapacity
la scala in modo da riportare i nodi della cacheMaxCapacity
a 60.API:. ApplicationAutoScaling PutScheduledAction
Input:
{ "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", }
Visualizza le attività di scalabilità
È possibile visualizzare le attività di scalabilità utilizzando l'
DescribeScalingActivities
API.API: ApplicationAutoScaling. DescribeScalingActivities
Output:
{ "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" } ] }
Modifica/elimina la politica di ridimensionamento
È possibile modificare o eliminare le politiche chiamando nuovamente
PutScalingPolicy
l'API oDeleteScalingPolicy
chiamando o Action.DeleteScheduled
Annulla la registrazione degli obiettivi scalabili
È possibile annullare la registrazione del target scalabile tramite l'API.
DeregisterScalableTarget
L'annullamento della registrazione di un target scalabile elimina le politiche di scalabilità e le azioni pianificate ad esso associate.API:. ApplicationAutoScaling DeregisterScalableTarget
Input:
{ "ResourceId": "elasticache/cache-cluster/test-cluster-1", "ServiceNamespace": "elasticache", "ScalableDimension": "elasticache:cache-cluster:Nodes" }
Pulizia delle politiche di scalabilità
Politiche di scalabilità multiple
È possibile creare più politiche di scalabilità. Di seguito sono riportati i principali richiami al comportamento di Auto Scaling Target Tracking.
È possibile avere più policy di dimensionamento del monitoraggio di target per un target scalabile, purché ciascuna di esse utilizzi un parametro diverso.
Lo scopo di Application Auto Scaling è sempre quello di assegnare la priorità alla disponibilità, quindi il suo comportamento varia a seconda che le policy di monitoraggio degli obiettivi siano pronte o meno per l'aumento o la riduzione orizzontale. L'obiettivo scalabile viene aumentato se una qualsiasi delle policy di monitoraggio dei target è pronta per l'aumento e viene ridotto solo se tutte le policy di monitoraggio dei target (con la porzione di riduzione abilitata) sono pronte per essere ridotte.
Se più policy impongono all'obiettivo scalabile una riduzione o un aumento orizzontale allo stesso tempo, Application Auto Scaling dimensiona in base alla policy che fornisce la capacità massima sia per la riduzione sia per l'aumento orizzontale. Ciò offre maggiore flessibilità per coprire scenari diversi e garantisce che vi sia sempre capacità sufficiente per elaborare i carichi di lavoro delle applicazioni.
Nota
AWS Application Auto Scaling non mette in coda le politiche di scalabilità. Application Auto Scaling attenderà il completamento del primo ridimensionamento, quindi si raffredderà e quindi ripeterà l'algoritmo precedente.
Ridimensiona automaticamente orizzontalmente una cache Memcached tramite AWS Management Console
Per convertire una cache Memcached progettata autonomamente da Memcached in una cache scalabile orizzontalmente tramite il, segui questi passaggi. https://console.aws.amazon.com/elasticache/
Accedi a AWS Management Console e apri la console all'indirizzo. ElastiCache https://console.aws.amazon.com/elasticache/
Seleziona la cache Memcached da convertire.
Vai alla scheda Autoscaling.
Seleziona la politica di ridimensionamento da applicare, selezionando Aggiungi ridimensionamento dinamico o Aggiungi ridimensionamento pianificato.
Se necessario, inserisci i dettagli per la politica selezionata.
Fai clic su Create (Crea).