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à.
Configurazione del dimensionamento in base ad Amazon SQS
La procedura seguente descrive come configurare il ridimensionamento automatico basato su Amazon SQS. Scoprirai come creare una metrica CloudWatch personalizzata, come impostare una policy di tracciamento degli obiettivi utilizzando e come testare la AWS CLI tua configurazione.
Prima di iniziare, assicurati di aver AWS CLI installato e configurato. Inoltre, devi disporre di una coda Amazon SQS da utilizzare. Le seguenti attività presuppongono che tu abbia già una coda (standard o FIFO), un gruppo Auto Scaling e istanze EC2 che eseguono l'applicazione che utilizza la coda.
Per ulteriori informazioni su Amazon SQS, consulta la Guida per gli sviluppatori di Amazon Simple Queue Service).
Processi
Passaggio CloudWatch 1: creare una metrica personalizzata
Un parametro personalizzato viene definito utilizzando uno spazio dei nomi e un nome parametro a scelta. Gli spazi dei nomi per i parametri personalizzati non possono iniziare con AWS/. Per ulteriori informazioni sulla pubblicazione di metriche personalizzate, consulta l'argomento Pubblica metriche personalizzate nella Amazon CloudWatch User Guide.
Segui questa procedura per creare la metrica personalizzata leggendo prima le informazioni dal tuo account. AWS Successivamente, calcola il parametro backlog per istanza, come suggerito in una sezione precedente. Infine, pubblica questo numero con una granularità CloudWatch di 1 minuto. Quando possibile, consigliamo vivamente di dimensionare in base ai parametri con una granularità di 1 minuto, per garantire una risposta più rapida alle modifiche apportate al carico del sistema.
Per creare una metrica personalizzata ( CloudWatch AWS CLI)
-
Utilizza il comando get-queue-attributes
di SQS per ottenere il numero di messaggi in attesa nella coda ( ApproximateNumberOfMessages).aws sqs get-queue-attributes --queue-urlhttps://sqs.region.amazonaws.com/123456789/MyQueue\ --attribute-names ApproximateNumberOfMessages -
Utilizza il comando describe-auto-scaling-groups
per ottenere la capacità di esecuzione del gruppo, ovvero il numero di istanze nello stato del ciclo di vita InService. Questo comando restituisce le istanze di un gruppo con scalabilità automatica insieme allo stato del loro ciclo di vita.aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namesmy-asg -
Calcola il backlog per istanza dividendo il numero approssimativo di messaggi disponibili per il recupero dalla coda per la capacità operativa del gruppo.
-
Crea uno script che viene eseguito ogni minuto per recuperare il valore del backlog per istanza e pubblicarlo in una CloudWatch metrica personalizzata. Quando pubblichi una metrica personalizzata, specifichi il nome, lo spazio dei nomi, l'unità, il valore e nessuna o più dimensioni del parametro. Una dimensione è composta da un nome di dimensione e un valore di dimensione.
Per pubblicare la metrica personalizzata, sostituisci i valori segnaposto
italicscon il nome della metrica preferita, il valore della metrica, uno spazio dei nomi (purché non inizi con "AWS«) e le dimensioni (opzionale), quindi esegui il seguente comando put-metric-data. https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudwatch/put-metric-data.htmlaws cloudwatch put-metric-data --metric-nameMyBacklogPerInstance--namespaceMyNamespace\ --unit None --value20--dimensionsMyOptionalMetricDimensionName=MyOptionalMetricDimensionValue
Quando l'applicazione emette il parametro desiderato, i dati vengono inviati a CloudWatch. La metrica è visibile nella console. CloudWatch Puoi accedervi effettuando il login Console di gestione AWS e navigando nella pagina. CloudWatch Puoi visualizzare il parametro passando alla pagina dei parametri oppure cercandolo nella casella di ricerca. Per informazioni sulla visualizzazione delle metriche, consulta Visualizza le metriche disponibili nella Amazon User Guide. CloudWatch
Fase 2: creazione una policy di dimensionamento con monitoraggio degli obiettivi
Il parametro creato può ora essere aggiunto a una policy di dimensionamento con monitoraggio degli obiettivi.
Per creare una politica di scalabilità del tracciamento degli obiettivi (AWS CLI)
-
Utilizza il comando
catseguente per archiviare un valore di destinazione per la policy di dimensionamento e una specifica del parametro personalizzato in un file JSON con nomeconfig.jsonnella directory principale. Sostituisci ogniuser input placeholdercon le tue informazioni. PerTargetValue, calcola il backlog accettabile per accettabile e inseriscilo qui. Per calcolare questo numero, stabilisci un valore di latenza normale e dividilo per il tempo medio necessario per elaborare un messaggio, come descritto in una precedente sezione.Se non hai specificato alcuna dimensione per il parametro creato nel passaggio 1, non includere alcuna dimensione nel parametro specifico personalizzato.
$ cat ~/config.json { "TargetValue":100, "CustomizedMetricSpecification":{ "MetricName":"MyBacklogPerInstance", "Namespace":"MyNamespace", "Dimensions":[ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue" } ], "Statistic":"Average", "Unit":"None" } } -
Utilizza il comando put-scaling-policy
insieme al file config.jsoncreato nella fase precedente per creare la policy di dimensionamento.aws autoscaling put-scaling-policy --policy-namesqs100-target-tracking-scaling-policy\ --auto-scaling-group-namemy-asg--policy-type TargetTrackingScaling \ --target-tracking-configurationfile://~/config.jsonCiò crea due allarmi: uno per l'aumento e uno per la riduzione orizzontali. Restituisce inoltre l'Amazon Resource Name (ARN) della policy con cui è stata registrata CloudWatch, che viene CloudWatch utilizzato per invocare lo scaling ogni volta che la soglia metrica viene violata.
Fase 3: test delle policy di dimensionamento
Una volta completata la configurazione, verifica che la policy di dimensionamento funzioni. Puoi testarla incrementando il numero di messaggi nella coda SQS e verificando che il gruppo con scalabilità automatica abbia avviato un'istanza EC2 aggiuntiva. Puoi testarla anche diminuendo il numero di messaggi nella coda SQS e verificando che il gruppo con scalabilità automatica abbia terminato un'istanza EC2.
Per testare la funzione di aumento orizzontale
-
Segui i passaggi descritti in Creazione di una coda standard Amazon SQS e invio di un messaggio o Creazione di una coda FIFO Amazon SQS e invio di un messaggio per aggiungere messaggi alla coda. Verifica di aver aumentato il numero di messaggi nella coda in modo che il parametro backlog per istanza superi il valore di destinazione.
Possono trascorrere alcuni minuti prima che le modifiche richiamino l'allarme.
-
Per verificare che il gruppo abbia avviato un'istanza, utilizza il comando describe-auto-scaling-groups
. aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg
Per testare il funzionamento della bilancia
-
Segui i passaggi descritti in Ricevere ed eliminare un messaggio (console) per eliminare i messaggi dalla coda. Verifica di aver ridotto il numero di messaggi nella coda, in modo che il parametro backlog per istanza sia inferiore al valore di destinazione.
Possono trascorrere alcuni minuti prima che le modifiche richiamino l'allarme.
-
Utilizza il comando describe-auto-scaling-groups
per verificare che il gruppo abbia terminato un'istanza. aws autoscaling describe-auto-scaling-groups --auto-scaling-group-namemy-asg