Crea una politica di scalabilità predittiva per un gruppo Auto Scaling - Amazon EC2 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à.

Crea una politica di scalabilità predittiva per un gruppo Auto Scaling

Le seguenti procedure ti aiutano a creare una politica di scalabilità predittiva utilizzando o. AWS Management Console AWS CLI

Se il gruppo Auto Scaling è nuovo, deve fornire almeno 24 ore di dati prima che Amazon Auto EC2 Scaling possa generare una previsione.

Creazione di una policy di dimensionamento predittivo (console)

Se è la prima volta che crei una politica di scalabilità predittiva, ti consigliamo di utilizzare la console per creare più politiche di scalabilità predittiva in modalità solo previsione. Ciò consente di testare i potenziali effetti di diverse metriche e valori obiettivo. È possibile creare più criteri di dimensionamento predittivo per ciascun gruppo con scalabilità automatica, ma solo una delle policy può essere utilizzata per il dimensionamento attivo.

Utilizzare la procedura seguente per creare una policy di scalabilità predittiva utilizzando metriche predefinite (I/O di rete o CPU numero di richieste di Application Load Balancer per target). Il modo più semplice per creare una policy di dimensionamento predittivo è utilizzare i parametri predefiniti. Se preferisci utilizzare i parametri personalizzati, consulta Creazione di una policy di dimensionamento predittivo nella console (parametri predefiniti).

Creazione di una policy di dimensionamento predittivo
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/e scegli Auto Scaling Groups dal pannello di navigazione.

  2. Seleziona la casella di controllo accanto al gruppo con dimensionamento automatico.

    Si aprirà un riquadro diviso nella parte inferiore della pagina.

  3. Nella scheda Automatic scaling (Scalabilità automatica) scegli Create predictive scaling policy (Crea policy di dimensionamento predittivo) in Scaling policies (Policy di dimensionamento).

  4. Inserisci un nome per la policy.

  5. Attiva Scale based on forecast per autorizzare Amazon EC2 Auto Scaling a iniziare subito la scalabilità.

    Per mantenere la policy in modalità forecast only (solo forecast), mantieni l'opzioneScale based on forecast (Dimensiona in base al forecast) disattivata.

  6. In Metrics (Parametri), scegli i parametri nell'elenco di opzioni. Le opzioni includono Network In CPU, Network Out, Conteggio delle richieste di Application Load Balancer e Custom Metric Pair.

    Se hai scelto Application Load Balancer request count per target (Conteggio delle richieste Application Load Balancer per destinazione), scegli un gruppo di destinazione in Target group (Gruppo di destinazione). Application Load Balancer request count per target (Conteggio di richieste Application Load Balancer per destinazione) è supportato solo avrai allegato un gruppo di destinazione Application Load Balancer al gruppo con scalabilità automatica.

    Se hai scelto Custom metric pair (Coppia di parametri personalizzati), scegli i singoli parametri dagli elenchi a discesa per Load metric (Parametro del carico) e Scaling metric (Parametro di dimensionamento).

  7. Per l'utilizzo di Target, inserisci il valore target che Amazon EC2 Auto Scaling deve mantenere. Amazon EC2 Auto Scaling ridimensiona la capacità fino a raggiungere l'utilizzo medio previsto o fino a raggiungere il numero massimo di istanze specificato.

    Se il parametro di dimensionamento è... Allora l'utilizzo target rappresenta...
    CPU

    La percentuale di quella CPU che dovrebbe idealmente essere utilizzata da ogni istanza.

    Rete in ingresso

    Il numero medio di byte al minuto che ogni istanza dovrebbe idealmente ricevere.

    Rete in uscita

    Il numero medio di byte al minuto che ogni istanza dovrebbe idealmente inviare.

    Conteggio di richieste Application Load Balancer per destinazione

    Il numero medio di richieste al minuto che ogni istanza dovrebbe idealmente ricevere.

  8. (Facoltativo) In Pre-launch instances (Pre-avviare le istanze), scegli con quale anticipo desideri avviare le istanze prima che il forecast richieda l'aumento del carico.

  9. (Facoltativo) Per il comportamento relativo alla capacità massima, scegli se consentire ad Amazon EC2 Auto Scaling di scalare oltre la capacità massima del gruppo quando la capacità prevista supera il massimo definito. L'attivazione di questa impostazione permette l'aumento orizzontale durante i periodi in cui si prevede che il traffico sia al massimo.

  10. (Facoltativo) In Buffer maximum capacity above the forecasted capacity (Capacità massima del buffer superiore alla capacità prevista), scegli la capacità aggiuntiva da utilizzare quando quella prevista è prossima o superiore alla capacità massima. Il valore è specificato come una percentuale relativa alla capacità di previsione. Ad esempio, se il buffer è 10, indica un buffer del 10%. Pertanto, se la capacità di previsione è 50 e quella massima è 40, la capacità massima effettiva è 55.

    Se impostato su 0, Amazon EC2 Auto Scaling potrebbe scalare una capacità superiore alla capacità massima per eguagliare ma non superare la capacità prevista.

  11. Scegli Create predictive scaling policy (Crea policy di dimensionamento predittivo).

Utilizza la procedura seguente per creare una policy di dimensionamento predittivo utilizzando i parametri personalizzati. Le metriche personalizzate possono includere altre metriche fornite da CloudWatch o metriche su cui pubblichi. CloudWatch Per utilizzare l'CPUI/O di rete o il conteggio delle richieste di Application Load Balancer per destinazione, vedere. Creazione di una policy di dimensionamento predittivo nella console (parametri predefiniti)

Utilizza la procedura seguente per creare una policy di dimensionamento predittivo utilizzando i parametri personalizzati.

  • È necessario fornire le query non elaborate che consentano ad Amazon EC2 Auto Scaling di interagire con le metriche. CloudWatch Per ulteriori informazioni, consulta Politica di scalabilità predittiva avanzata che utilizza metriche personalizzate. Per assicurarti che Amazon EC2 Auto Scaling possa estrarre i dati dei parametri da cui provengono CloudWatch, verifica che ogni query restituisca punti dati. Confermalo utilizzando la CloudWatch console o l' CloudWatch GetMetricDataAPIoperazione.

    Nota

    Forniamo JSON payload di esempio nell'JSONeditor della console Amazon EC2 Auto Scaling. Questi esempi forniscono un riferimento per le coppie chiave-valore necessarie per aggiungere altre CloudWatch metriche fornite da AWS o metriche su cui hai pubblicato in precedenza. CloudWatch Puoi utilizzarli come punto di partenza, quindi personalizzarli in base alle tue esigenze.

  • Se utilizzi una metrica matematica, devi costruirla manualmente per adattarla al tuo scenario unico. JSON Per ulteriori informazioni, consulta Utilizzare le espressioni matematiche del parametro. Prima di utilizzare la formula del parametro nella tua policy, verifica che le query dei parametri basate su espressioni matematiche siano valide e restituiscano una singola serie temporale. Confermalo utilizzando la CloudWatch console o l'operazione. CloudWatch GetMetricDataAPI

Se commetti un errore in una query fornendo dati errati, ad esempio il nome del gruppo con scalabilità automatica errato, la previsione non conterrà alcun dato. Per la risoluzione dei problemi relativi ai parametri personalizzati, consulta Considerazioni sulle metriche personalizzate in una politica di scalabilità predittiva.

Creazione di una policy di dimensionamento predittivo
  1. Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/e scegli Auto Scaling Groups dal pannello di navigazione.

  2. Seleziona la casella di controllo accanto al gruppo con dimensionamento automatico.

    Si aprirà un riquadro diviso nella parte inferiore della pagina.

  3. Nella scheda Automatic scaling (Scalabilità automatica) scegli Create predictive scaling policy (Crea policy di dimensionamento predittivo) in Scaling policies (Policy di dimensionamento).

  4. Inserisci un nome per la policy.

  5. Attiva Scale based on forecast per autorizzare Amazon EC2 Auto Scaling a iniziare subito la scalabilità.

    Per mantenere la policy in modalità forecast only (solo forecast), mantieni l'opzioneScale based on forecast (Dimensiona in base al forecast) disattivata.

  6. Per Metrics (Parametri), scegli Custom metric pair (Coppia di parametri personalizzati).

    1. Per Load metric, scegli Custom CloudWatch metric per utilizzare una metrica personalizzata. Costruisci il JSON payload che contiene la definizione della metrica di carico per la policy e incollalo nella casella dell'JSONeditor, sostituendo ciò che è già nella casella.

    2. Per Scaling metric, scegli Metrica personalizzata per utilizzare una CloudWatch metrica personalizzata. Costruisci il JSON payload che contiene la definizione della metrica di scalabilità per la policy e incollalo nella casella dell'JSONeditor, sostituendo ciò che è già nella casella.

    3. (Facoltativo) Per aggiungere un parametro di capacità personalizzato, seleziona la casella di controllo Add custom capacity metric (Aggiungi parametro di capacità personalizzato). Costruisci il JSON payload che contiene la definizione della metrica di capacità per la policy e incollalo nella casella dell'JSONeditor, sostituendo ciò che è già nella casella.

      È necessario abilitare questa opzione solo per creare una nuova serie temporale per la capacità solo se i dati dei parametri di capacità riguardano più gruppi con scalabilità automatica. In questo caso, dovrai utilizzare la formula dei parametri per aggregare i dati in un'unica serie temporale.

  7. Per l'utilizzo di Target, inserisci il valore target che Amazon EC2 Auto Scaling deve mantenere. Amazon EC2 Auto Scaling ridimensiona la capacità fino a raggiungere l'utilizzo medio previsto o fino a raggiungere il numero massimo di istanze specificato.

  8. (Facoltativo) In Pre-launch instances (Pre-avviare le istanze), scegli con quale anticipo desideri avviare le istanze prima che il forecast richieda l'aumento del carico.

  9. (Facoltativo) Per il comportamento relativo alla capacità massima, scegli se consentire ad Amazon EC2 Auto Scaling di scalare oltre la capacità massima del gruppo quando la capacità prevista supera il massimo definito. L'attivazione di questa impostazione permette l'aumento orizzontale durante i periodi in cui si prevede che il traffico sia al massimo.

  10. (Facoltativo) In Buffer maximum capacity above the forecasted capacity (Capacità massima del buffer superiore alla capacità prevista), scegli la capacità aggiuntiva da utilizzare quando quella prevista è prossima o superiore alla capacità massima. Il valore è specificato come una percentuale relativa alla capacità di previsione. Ad esempio, se il buffer è 10, indica un buffer del 10%. Pertanto, se la capacità di previsione è 50 e quella massima è 40, la capacità massima effettiva è 55.

    Se impostato su 0, Amazon EC2 Auto Scaling potrebbe scalare una capacità superiore alla capacità massima per eguagliare ma non superare la capacità prevista.

  11. Scegli Create predictive scaling policy (Crea policy di dimensionamento predittivo).

Creazione di una policy di dimensionamento predittivo (AWS CLI)

Utilizza AWS CLI quanto segue per configurare le politiche di scalabilità predittiva per il tuo gruppo Auto Scaling. Sostituisci ciascuno user input placeholder con le tue informazioni.

Per ulteriori informazioni sui CloudWatch parametri che puoi specificare, consulta PredictiveScalingMetricSpecificationAmazon EC2 Auto API Scaling Reference.

Esempio 1: policy di dimensionamento predittivo in grado di creare forecast ma non di dimensionare

La seguente policy di esempio mostra una configurazione completa delle policy che utilizza metriche di CPU utilizzo per la scalabilità predittiva con un utilizzo target di. 40 ForecastOnlyla modalità viene utilizzata per impostazione predefinita, a meno che non si specifichi esplicitamente quale modalità utilizzare. Salva questa configurazione in un file denominato config.json.

{ "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ] }

Per creare la policy dalla riga di comando, esegui il put-scaling-policycomando con il file di configurazione specificato, come illustrato nell'esempio seguente.

aws autoscaling put-scaling-policy --policy-name cpu40-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

In caso di successo, questo comando restituisce l'Amazon Resource Name (ARN) della policy.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/cpu40-predictive-scaling-policy", "Alarms": [] }

Esempio 2: policy di dimensionamento predittivo in grado di creare forecast e di dimensionare

Per una policy che consenta ad Amazon EC2 Auto Scaling di prevedere e scalare, aggiungi la proprietà Mode con un valore di. ForecastAndScale Nell'esempio seguente viene illustrata una configurazione di policy che utilizza i parametri del conteggio delle richieste di Application Load Balancer. L'utilizzo di destinazione è 1000 e il dimensionamento predittivo è impostato sulla modalità ForecastAndScale.

{ "MetricSpecifications": [ { "TargetValue": 1000, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ALBRequestCount", "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff" } } ], "Mode": "ForecastAndScale" }

Per creare questa politica, esegui il put-scaling-policycomando con il file di configurazione specificato, come illustrato nell'esempio seguente.

aws autoscaling put-scaling-policy --policy-name alb1000-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

In caso di successo, questo comando restituisce l'Amazon Resource Name (ARN) della policy.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:19556d63-7914-4997-8c81-d27ca5241386:autoScalingGroupName/my-asg:policyName/alb1000-predictive-scaling-policy", "Alarms": [] }

Esempio 3: policy di dimensionamento predittivo in grado di dimensionare oltre la capacità massima

Nell'esempio seguente viene illustrato come creare una policy in grado di dimensionare oltre al limite di dimensione massima del gruppo quando è necessario per gestire un carico superiore al normale. Per impostazione predefinita, Amazon EC2 Auto Scaling non aumenta la EC2 capacità oltre la capacità massima definita. Tuttavia, potrebbe essere utile lasciarla dimensionare più in alto, con una capacità leggermente superiore, per evitare problemi di prestazioni o disponibilità.

Per consentire ad Amazon EC2 Auto Scaling di fornire capacità aggiuntiva quando si prevede che la capacità sia pari o molto vicina alla dimensione massima del gruppo, specifica le MaxCapacityBuffer proprietà MaxCapacityBreachBehavior and, come mostrato nell'esempio seguente. Devi specificare MaxCapacityBreachBehavior con un valore di IncreaseMaxCapacity. Il numero massimo di istanze che il gruppo può avere dipende dal valore di MaxCapacityBuffer.

{ "MetricSpecifications": [ { "TargetValue": 70, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ], "MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10 }

In questo esempio, la policy è configurata per usare un buffer del 10% ("MaxCapacityBuffer": 10), in modo che se la capacità prevista è 50 e quella massima è 40, la capacità massima effettiva è 55. Una policy in grado di dimensionare una capacità superiore alla capacità massima in modo da uguagliare ma non superare la capacità prevista avrebbe un buffer di 0 ("MaxCapacityBuffer": 0).

Per creare questa policy, esegui il put-scaling-policycomando con il file di configurazione specificato, come illustrato nell'esempio seguente.

aws autoscaling put-scaling-policy --policy-name cpu70-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

In caso di successo, questo comando restituisce l'Amazon Resource Name (ARN) della policy.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:d02ef525-8651-4314-bf14-888331ebd04f:autoScalingGroupName/my-asg:policyName/cpu70-predictive-scaling-policy", "Alarms": [] }