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
Questa sezione descrive come configurare la scalabilità basata su Amazon Amazon SQS.
Attività
Fase 1: Creare una metrica personalizzata CloudWatch
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 su 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
-
Utilizzate il get-queue-attributescomando SQS per ottenere il numero di messaggi in attesa nella coda ().
ApproximateNumberOfMessages
aws sqs get-queue-attributes --queue-url
https://sqs.region.amazonaws.com/123456789/MyQueue
\ --attribute-names ApproximateNumberOfMessages -
Utilizzate il describe-auto-scaling-groupscomando 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-names
my-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 su una metrica personalizzata. CloudWatch 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 in
corsivo
con 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 comando seguente. put-metric-dataaws cloudwatch put-metric-data --metric-name
MyBacklogPerInstance
--namespaceMyNamespace
\ --unit None --value20
--dimensionsMyOptionalMetricDimensionName=MyOptionalMetricDimensionValue
Dopo che l'applicazione ha emesso la metrica desiderata, i dati vengono inviati a. CloudWatch La metrica è visibile nella console. CloudWatch Puoi accedervi accedendo AWS Management Console e accedendo alla pagina. CloudWatch Puoi visualizzare il parametro passando alla pagina dei parametri oppure cercandolo nella casella di ricerca. Per informazioni sulla visualizzazione dei parametri, consulta Visualizza i parametri disponibili nella Amazon CloudWatch User Guide.
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.
Creazione di una policy di dimensionamento con monitoraggio degli obiettivi (AWS CLI)
-
Utilizza il comando
cat
seguente per archiviare un valore di destinazione per la policy di dimensionamento e una specifica del parametro personalizzato in un file JSON con nomeconfig.json
nella directory principale. Sostituisci ciascunplaceholder input dell'utente
con 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 put-scaling-policycomando, insieme al
config.json
file creato nel passaggio precedente, per creare la tua politica di scalabilità.aws autoscaling put-scaling-policy --policy-name
sqs100-target-tracking-scaling-policy
\ --auto-scaling-group-namemy-asg
--policy-type TargetTrackingScaling \ --target-tracking-configurationfile://~/config.json
Ciò crea due allarmi: uno per l'aumento e uno per la riduzione orizzontali. Restituisce inoltre l'Amazon Resource Name (ARN) della policy con cui è registrata CloudWatch, che CloudWatch utilizza per richiamare la scalabilità 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 Amazon SQS standard e invio di un messaggio o Creazione di una coda Amazon SQS FIFO 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.
-
Usa il describe-auto-scaling-groupscomando per verificare che il gruppo abbia avviato un'istanza.
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
Per testare il funzionamento della bilancia
-
Segui la procedura descritta in Ricevi ed elimina 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.
-
Usa il describe-auto-scaling-groupscomando per verificare che il gruppo abbia terminato un'istanza.
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg