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à su richiesta 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 applicare la scalabilità verticale ai cluster esistenti basati su nodi 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 i cluster basati su nodi 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 nodo sono disponibili solo per i cluster Memcached basati su nodi con versioni del motore 1.5 o successive.
Auto Discovery deve essere abilitato per poter utilizzare il ridimensionamento verticale.
Configurazione del ridimensionamento verticale su richiesta per i cluster Memcached basati su nodi
È 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 un cluster esistente basato su nodi Memcached in una cache scalabile verticalmente, puoi utilizzarlo tramite la CLI. elasticache modify-cache-cluster
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 scalabilità verticale per un cluster Memcached basato su nodi tramite la CLI, usa with e i relativi parametri e. elasticache modify-cache-cluster scale-config ScalePercentage ScaleIntervalMinutes
scale-interval-minutes: definisce il tempo (in minuti) che intercorre tra i batch di scalabilità. 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 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 Console di gestione AWS
Segui questi passaggi per Console di gestione AWS convertire un cluster Memcached basato su nodi in un cluster scalabile verticalmente.
Accedi a e apri la console all'indirizzo.Console di gestione AWS ElastiCache https://console.aws.amazon.com/elasticache/
Seleziona il cluster 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 i cluster basati su nodi.
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 un cluster Memcached basato su nodi tramite la CLI
Quando si esegue la scalabilità orizzontale di un cluster Memcached basato su nodi, è possibile utilizzare una policy di tracciamento degli obiettivi, una policy pianificata o entrambe.
Registra una risorsa come obiettivo scalabile
Chiama l'
RegisterScalableTargetAPI in AWS Application Auto Scaling per registrare la destinazione per la dimensione scalabile.elasticache:cache-cluster:NodesAPI:. 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 di Cache Node, utilizzando la metrica predefinita
ElastiCacheCPUUtilization, impostata su 50 per cluster 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.
PutScheduledActionPolitica 1: Scalabilità orizzontale
Il
atcomando in--schedulepianifica 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
MinCapacityeMaxCapacity. 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
MinCapacityeMaxCapacityla scala in modo da riportare i nodi della cacheMaxCapacitya 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'
DescribeScalingActivitiesAPI.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 politica di ridimensionamento
È possibile modificare o eliminare le politiche chiamando nuovamente
PutScalingPolicyl'API oDeleteScalingPolicychiamando o Action.DeleteScheduledAnnulla la registrazione degli obiettivi scalabili
È possibile annullare la registrazione del target scalabile tramite l'API.
DeregisterScalableTargetL'annullamento della registrazione di un target scalabile comporta l'eliminazione delle politiche di scalabilità e delle 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 un cluster Memcached basato su nodi tramite Console di gestione AWS
Segui questi passaggi per convertire un cluster Memcached Console di gestione AWS esistente basato su nodi in un cluster scalabile orizzontalmente.
Accedi a e apri la console all'indirizzo.Console di gestione AWS 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).