Creazione di una policy di dimensionamento con monitoraggio degli obiettivi per l'Applicazione di Dimensionamento automatico tramite la matematica dei parametri - Application Auto Scaling

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à.

Creazione di una policy di dimensionamento con monitoraggio degli obiettivi per l'Applicazione di Dimensionamento automatico tramite la matematica dei parametri

Utilizzando la matematica metrica, puoi interrogare più CloudWatch metriche e utilizzare espressioni matematiche per creare nuove serie temporali basate su queste metriche. Puoi visualizzare le serie temporali risultanti nella CloudWatch console e aggiungerle ai dashboard. Per ulteriori informazioni sulla matematica dei parametri, consulta Using metric Math nella Amazon User Guide. CloudWatch

Alle espressioni matematiche dei parametri si applicano le seguenti considerazioni:

  • Puoi interrogare qualsiasi metrica disponibile. CloudWatch Ogni parametro è una combinazione univoca di nome del parametro, spazio dei nomi e nessuna o più dimensioni.

  • È possibile utilizzare qualsiasi operatore aritmetico (+ - */^), funzione statistica (come AVG o SUM) o altra funzione che supporti. CloudWatch

  • È possibile utilizzare i parametri e i risultati di altre espressioni matematiche nelle formule dell'espressione matematica.

  • Qualsiasi espressione utilizzata in una specifica dei parametri deve restituire una singola serie temporale.

  • È possibile verificare che un'espressione matematica metrica sia valida utilizzando la console o l'API. CloudWatch CloudWatch GetMetricData

Esempio: backlog della coda di Amazon SQS per attività

Per calcolare il backlog della coda di Amazon SQS per attività, prendi il numero approssimativo di messaggi disponibili per il recupero dalla coda e dividi tale numero per il numero di attività Amazon ECS attive nel servizio. Per ulteriori informazioni, consulta Amazon Elastic Container Service (ECS) Auto Scaling using custom metrics sul AWS Compute Blog.

La logica dell'espressione è questa:

sum of (number of messages in the queue)/(number of tasks that are currently in the RUNNING state)

Quindi le informazioni sui CloudWatch parametri sono le seguenti.

ID CloudWatch metrico Statistic Periodo
m1 ApproximateNumberOfMessagesVisible Somma 1 minuto
m2 RunningTaskCount Media 1 minuto

L'ID dell'operazione matematica sui parametri e l'espressione sono i seguenti.

ID Expression
e1 (m1)/(m2)

Il diagramma seguente illustra l'architettura di questa metrica:

Application Auto Scaling con diagramma architettonico delle code
Per utilizzare questa matematica dei parametri al fine di creare una policy di dimensionamento con monitoraggio degli obiettivi (AWS CLI)
  1. Memorizza l'espressione matematica dei parametri come parte di un specifico parametro personalizzato in un file JSON denominato config.json.

    Utilizza la tabella seguente come guida. Sostituisci ciascun placeholder input dell'utente con le tue informazioni.

    { "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "my-queue" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the ECS running task count (the number of currently running tasks)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "RunningTaskCount", "Namespace": "ECS/ContainerInsights", "Dimensions": [ { "Name": "ClusterName", "Value": "my-cluster" }, { "Name": "ServiceName", "Value": "my-service" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue": 100 }

    Per ulteriori informazioni, consulta TargetTrackingScalingPolicyConfigurationl'Application Auto Scaling API Reference.

    Nota

    Di seguito sono riportate alcune risorse aggiuntive che possono aiutarti a trovare nomi di metriche, namespace, dimensioni e statistiche per le metriche: CloudWatch

  2. Per creare questo criterio, esegui il put-scaling-policycomando utilizzando il file JSON come input, come illustrato nell'esempio seguente.

    aws application-autoscaling put-scaling-policy --policy-name sqs-backlog-target-tracking-scaling-policy \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/my-cluster/my-service \ --policy-type TargetTrackingScaling --target-tracking-scaling-policy-configuration file://config.json

    In caso di successo, questo comando restituisce l'Amazon Resource Name (ARN) della policy e gli ARN dei due CloudWatch allarmi creati per tuo conto.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:012345678910:scalingPolicy: 8784a896-b2ba-47a1-b08c-27301cc499a1:resource/ecs/service/my-cluster/my-service:policyName/sqs-backlog-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0", "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmHigh-9bc77b56-0571-4276-ba0f-d4178882e0a0" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:012345678910:alarm:TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4", "AlarmName": "TargetTracking-service/my-cluster/my-service-AlarmLow-9b6ad934-6d37-438e-9e05-02836ddcbdc4" } ] }
    Nota

    Se questo comando genera un errore, assicurati di averlo aggiornato AWS CLI localmente alla versione più recente.

Limitazioni

  • La dimensione massima della richiesta è 50 KB. Questa è la dimensione totale del payload per la richiesta PutScalingPolicyAPI quando si utilizza la matematica metrica nella definizione della politica. Se si supera questo limite, l'Applicazione di Dimensionamento automatico rifiuta la richiesta.

  • I seguenti servizi non sono supportati quando si usa la matematica dei parametri con le policy di dimensionamento con monitoraggio degli obiettivi:

    • Amazon Keyspaces (per Apache Cassandra)

    • DynamoDB

    • Amazon EMR

    • MSK Amazon

    • Amazon Neptune