Politiche di scalabilità semplici e dettagliate per Amazon EC2 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à.

Politiche di scalabilità semplici e dettagliate per Amazon EC2 Auto Scaling

La scalabilità a fasi e le semplici politiche di scalabilità scalano la capacità del gruppo Auto Scaling in incrementi predefiniti in base agli allarmi. CloudWatch È possibile definire policy di dimensionamento separate per gestire il dimensionamento orizzontale (aumento della capacità) e il ridimensionamento (riduzione della capacità) in caso di superamento di una soglia di allarme.

Con Step Scaling e Simple Scaling, puoi creare e gestire gli allarmi che richiamano il processo di scalabilità. CloudWatch Quando viene violato un allarme, Amazon EC2 Auto Scaling avvia la politica di scalabilità associata a tale allarme.

Ti consigliamo vivamente di utilizzare le politiche di scalabilità di Target Tracking per adattare parametri come l'CPUutilizzo medio o il numero medio di richieste per target. I parametri che diminuiscono quando la capacità aumenta e aumentano quando la capacità diminuisce possono essere utilizzati per dimensionare proporzionalmente il numero di istanze mediante il monitoraggio degli obiettivi. Questo aiuta a garantire che Amazon EC2 Auto Scaling segua da vicino la curva di domanda per le tue applicazioni. Per ulteriori informazioni, consulta Policy di dimensionamento con monitoraggio degli obiettivi.

Come funzionano le policy di dimensionamento a fasi

Per utilizzare la scalatura a gradini, devi prima creare un CloudWatch allarme che monitora una metrica per il tuo gruppo Auto Scaling. Definisci il parametro, il valore di soglia e il numero di periodi di valutazione che determinano una violazione dell'allarme. Quindi, crea una politica di scalabilità dei passaggi che definisca come ridimensionare il gruppo quando viene superata la soglia di allarme.

Aggiungi le modifiche ai passaggi nella policy. È possibile definire diverse regolazioni delle fasi in base alla dimensione dell'allarme di violazione. Per esempio:

  • Ridimensiona di 10 istanze se la metrica degli allarmi raggiunge il 60 percento

  • Scalabilità orizzontale di 30 istanze se la metrica degli allarmi raggiunge il 75 percento

  • Scalabilità orizzontale di 40 istanze se la metrica degli allarmi raggiunge l'85 percento

Quando la soglia di allarme viene superata per il numero specificato di periodi di valutazione, Amazon EC2 Auto Scaling applicherà le modifiche ai passaggi definite nella politica. Le regolazioni possono continuare in caso di ulteriori violazioni degli allarmi fino al ripristino dello stato di allarme su OK.

Ogni istanza prevede un periodo di riscaldamento per evitare che le attività di scalabilità siano troppo reattive ai cambiamenti che si verificano in brevi periodi di tempo. Facoltativamente, puoi configurare il periodo di riscaldamento per la tua politica di scalabilità. Tuttavia, consigliamo di utilizzare il riscaldamento predefinito dell'istanza per semplificare l'aggiornamento di tutte le politiche di ridimensionamento quando cambia il tempo di riscaldamento. Per ulteriori informazioni, consulta Impostazione della preparazione di default dell'istanza per un gruppo con scalabilità automatica.

Le politiche di scalabilità semplici sono simili alle politiche di scalabilità graduale, tranne per il fatto che si basano su un singolo aggiustamento del ridimensionamento, con un periodo di tempo di recupero tra ogni attività di scalabilità. Per ulteriori informazioni, consulta Policy di dimensionamento semplice.

Adeguamenti delle fasi per il dimensionamento per fasi

Quando si crea una policy di dimensionamento per fasi, è possibile specificare una o più regolazioni per fasi che dimensionano automaticamente il numero di istanze in modo dinamico in base all'utilizzo fuori limite segnalato dall'allarme. Ogni regolazione per fasi specifica quanto segue:

  • Un limite inferiore per il valore del parametro

  • Un limite superiore per il valore del parametro

  • La quantità da dimensionare, in base al tipo di regolazione del dimensionamento

CloudWatch aggrega i punti dati metrici in base alla statistica della metrica associata all'allarme. CloudWatch Quando la soglia dell'allarme viene superata, viene richiamata la policy di dimensionamento appropriata. Amazon EC2 Auto Scaling applica il tipo di aggregazione ai punti dati metrici più recenti da CloudWatch (anziché ai dati metrici grezzi). Confronta il valore dei parametri aggregati con i limiti superiore e inferiore definiti dagli adeguamenti delle fasi per determinare quali di queste eseguire.

Devi specificare i limiti superiore e inferiore relativi alla soglia dell'utilizzo fuori limite. Ad esempio, supponiamo che tu abbia creato un CloudWatch allarme e una politica di scalabilità orizzontale per quando la metrica è superiore al 50 percento. Hai quindi creato un secondo allarme e una policy di riduzione orizzontale per quando il parametro è inferiore al 50 percento. Hai apportato una serie di modifiche con un tipo di regolazione di PercentChangeInCapacity (o Percentuale di gruppo nella console) per ogni policy:

Esempio: Regolazioni per fasi per la policy di aumento orizzontale
Limite inferiore Limite superiore Regolazione

0

10

0

10

20

10

20

null

30

Esempio: Regolazioni per fasi della policy di riduzione orizzontale
Limite inferiore Limite superiore Regolazione

-10

0

0

-20

-10

-10

null

-20

-30

Questo crea la seguente configurazione di dimensionamento.

Metric value -infinity 30% 40% 60% 70% infinity ----------------------------------------------------------------------- -30% | -10% | Unchanged | +10% | +30% -----------------------------------------------------------------------

Supponiamo ora di utilizzare questa configurazione di scalabilità su un gruppo Auto Scaling con una capacità corrente e una capacità desiderata di 10. I seguenti punti riassumono il comportamento della configurazione di dimensionamento in relazione alla capacità desiderata e corrente del gruppo:

  • La capacità corrente e desiderata vengono mantenute, mentre il valore del parametro aggregato è maggiore di 40 e minore di 60.

  • Se il valore del parametro raggiunge 60, la capacità desiderata del gruppo aumenta di 1 istanza, fino a 11 istanze, in base alla seconda regolazione per fasi della policy di aumento orizzontale (aggiunta del 10% di 10 istanze). Dopo l'esecuzione della nuova istanza e la scadenza del tempo di riscaldamento specificato, la capacità attuale del gruppo aumenta a 11 istanze. Se il valore del parametro sale a 70 anche dopo questo aumento della capacità, la capacità desiderata del gruppo aumenta di altre 3 istanze, a 14. Questo si basa sulla modifica della terza fase della policy di aumento orizzontale (aggiunta del 30% di 11 istanze, 3,3 istanze, arrotondato per difetto a 3 istanze).

  • Se il valore del parametro arriva a 40, la capacità desiderata del gruppo diminuisce di 1 istanza, fino a 13 istanze, in base alla seconda regolazione per fasi della policy di riduzione orizzontale (rimozione del 10% di 14 istanze, ovvero 1,4 istanze, arrotondato per difetto a 1). Se il valore del parametro scende a 30 anche dopo questa diminuzione della capacità, la capacità desiderata del gruppo diminuisce di altre 3 istanze, a 10. Ciò si basa sulla regolazione della terza fase della policy di riduzione (rimuove il 30% delle 13 istanze, 3,9 istanze, arrotondate per difetto a 3).

Quando specifichi le regolazioni delle fasi per la policy di dimensionamento, tieni presente quanto segue:

  • Se si utilizza il AWS Management Console, si specificano i limiti superiore e inferiore come valori assoluti. Se si utilizza AWS CLI o anSDK, si specificano i limiti superiore e inferiore relativi alla soglia di violazione.

  • Gli intervalli delle regolazioni delle fasi non possono essere sovrapporsi o presentare scarti.

  • Solo una regolazione delle fasi può avere un limite inferiore nullo (infinito negativo). Se una regolazione delle fasi presenta un limite inferiore negativo, allora deve esistere una regolazione con un limite inferiore nullo.

  • Solo una regolazione delle fasi può avere un limite superiore nullo (infinito positivo). Se una regolazione delle fasi presenta un limite superiore positivo, deve esistere anche una regolazione con un limite superiore nullo.

  • I limiti superiore e inferiore non possono essere nulli nella stessa regolazione delle fasi.

  • Se il valore del parametro supera la soglia dell'utilizzo fuori limite, il limite inferiore è incluso e quello superiore è escluso. Se il valore del parametro è inferiore alla soglia dell'utilizzo fuori limite, il limite inferiore è escluso e il limite superiore è incluso.

Tipi di regolazioni per il dimensionamento

È possibile definire una policy di dimensionamento che esegue l'operazione di dimensionamento ottimale, in base al tipo di regolazione scelta. È possibile specificare il tipo di regolazione come percentuale della capacità corrente del gruppo con scalabilità automatica o in unità di capacità. Normalmente per unità di capacità si intende una sola istanza, a meno che non si utilizzi la funzione di ponderazione delle istanze.

Amazon EC2 Auto Scaling supporta i seguenti tipi di regolazione per il ridimensionamento a fasi e il ridimensionamento semplice:

  • ChangeInCapacity: incrementa o decrementa la capacità corrente del gruppo del valore specificato. Un valore positivo incrementa la capacità, mentre un valore negativo della regolazione la decrementa. Ad esempio: se la capacità corrente del gruppo è 3 e la regolazione è 5, quando viene eseguita questa policy, aggiungiamo 5 unità di capacità, per un totale di 8 unità di capacità.

  • ExactCapacity: modifica la capacità corrente del gruppo al valore specificato. Con questo tipo di adeguamento, specifica un valore non negativo. Ad esempio: se la capacità corrente del gruppo è 3 e la regolazione è 5, quando viene eseguita questa policy, la capacità viene modificata in 5 unità di capacità.

  • PercentChangeInCapacity: incrementa o decrementa la capacità corrente del gruppo della percentuale specificata. Un valore positivo incrementa la capacità, mentre un valore negativo la decrementa. Ad esempio: se la capacità corrente è 10 e la regolazione è il 10%, quando viene eseguita questa policy, aggiungiamo 1 unità di capacità per un totale di 11 unità di capacità.

    Nota

    Se il valore risultante non è intero, viene arrotondato come segue:

    • I valori superiori a 1 vengono arrotondati per difetto. Ad esempio, 12.7 viene arrotondato in 12.

    • I valori tra 0 e 1 vengono arrotondati a 1. Ad esempio, .67 viene arrotondato in 1.

    • I valori tra 0 e -1 vengono arrotondati a -1. Ad esempio, -.58 viene arrotondato in -1.

    • I valori inferiori a -1 vengono arrotondati per eccesso. Ad esempio, -6.67 viene arrotondato in -6.

Con PercentChangeInCapacity, puoi anche specificare il numero minimo di istanze da dimensionare con il parametro MinAdjustmentMagnitude. Ad esempio, supponi di creare una policy che aggiunge il 25% e di specificare un incremento minimo di 2 istanze. Se hai un gruppo con scalabilità automatica con 4 istanze e viene eseguita la policy di dimensionamento, il 25% di 4 è 1 istanza. Tuttavia, poiché hai specificato un incremento minimo di 2, vengono aggiunte 2 istanze.

Quando usi i pesi delle istanze, l'effetto dell'impostazione del MinAdjustmentMagnitude parametro su un valore diverso da zero cambia. Il valore è espresso in unità di capacità. Per impostare il numero minimo di istanze da dimensionare, scegli un valore per questo parametro pari almeno a quello del peso massimo dell'istanza.

Se utilizzate i pesi delle istanze, tenete presente che la capacità attuale del gruppo Auto Scaling può superare la capacità desiderata in base alle esigenze. Se il numero assoluto da decrementare, o la quantità che la percentuale indica di decrementare, è inferiore alla differenza tra la capacità corrente e quella desiderata, non viene eseguita alcuna operazione di dimensionamento. Nell'esaminare l'esito di una policy di dimensionamento quando viene superata la soglia di un allarme, dovrai tenere conto di questi comportamenti. Ad esempio, supponiamo che la capacità desiderata sia 30 e la capacità corrente sia 32. Quando la soglia dell'allarme viene superata, se la policy di dimensionamento decrementa la capacità desiderata di 1, non viene eseguita alcuna operazione di dimensionamento.

Preparazione dell'istanza

Nel caso di dimensionamento per fasi, è possibile specificare il numero di secondi necessari per la preparazione di un'istanza appena avviata. Fino alla scadenza del tempo di riscaldamento specificato, un'istanza non viene conteggiata nelle metriche aggregate dell'EC2istanza del gruppo Auto Scaling.

Durante il periodo di riscaldamento delle istanze, le policy di ridimensionamento vengono ridimensionate solo se il valore della metrica delle istanze che non si stanno riscaldando è superiore alla soglia massima di allarme della policy.

Se il gruppo si dimensiona di nuovo, le istanze in fase di preparazione vengono conteggiate come parte della capacità desiderata per l'attività di dimensionamento successiva. Pertanto, più utilizzi fuori limite degli allarmi che rientrano nella gamma della stessa regolazione per fasi determinano un'unica attività di dimensionamento. L'intenzione è di aumentare di continuo (ma non in eccesso).

Ad esempio, supponiamo che tu crei una policy in due passaggi. Il primo passaggio aggiunge il 10 percento quando la metrica arriva al 60 e il secondo passaggio aggiunge il 30 percento quando la metrica arriva al 70 percento. Il tuo gruppo con dimensionamento automatico ha una capacità desiderata e corrente di 10. La capacità corrente e desiderata non cambiano, mentre il valore del parametro aggregato è minore di 60. Supponiamo che la metrica arrivi a 60, quindi venga aggiunta 1 istanza (il 10 percento di 10 istanze). Quindi, la metrica arriva a 62 mentre la nuova istanza è ancora in fase di preparazione. La policy di dimensionamento calcola la nuova capacità desiderata in base alla capacità attuale, che è ancora pari a 10. Tuttavia, la capacità desiderata del gruppo è già aumentata a 11 istanze, perciò la policy di dimensionamento non la incrementa ulteriormente. Se il parametro raggiunge 70 mentre la nuova istanza è ancora in preparazione, dovremmo aggiungere 3 istanze (il 30% di 10 istanze). Tuttavia, la capacità desiderata del gruppo è già 11 perciò, per arrivare alla nuova capacità desiderata di 13 istanze, ne aggiungiamo solo 2.

Mentre l'attività di dimensionamento orizzontale è in corso, tutte le attività di riduzione orizzontale avviate dalle policy di ridimensionamento vengono bloccate fino al termine della preparazione delle istanze. Al termine della preparazione delle istanze, se si verifica un evento di dimensionamento, tutte le istanze attualmente in fase di chiusura verranno conteggiate ai fini della capacità attuale del gruppo nel calcolo della nuova capacità desiderata. Pertanto, non rimuoviamo dal gruppo Auto Scaling più istanze del necessario. Ad esempio, quando un'istanza è già terminata, se viene superata una soglia di regolazione dello stesso passaggio che ha diminuito la capacità desiderata di 1, non viene eseguita alcuna operazione di dimensionamento.

Valore predefinito

Se non viene impostato alcun valore, la politica di scalabilità utilizzerà il valore predefinito, che è il valore per il riscaldamento dell'istanza predefinito definito per il gruppo. Se il riscaldamento dell'istanza predefinito è nullo, torna al valore del cooldown predefinito.

Considerazioni

Le seguenti considerazioni si applicano quando si usano le policy di dimensionamento semplice a fasi:

  • Valuta se riesci a prevedere le regolazioni dei passaggi sull'applicazione in modo sufficientemente accurato da utilizzare il dimensionamento a fasi. Se il parametro di dimensionamento aumenta o diminuisce in proporzione alla capacità della destinazione scalabile, ti consigliamo di utilizzare una policy di dimensionamento di monitoraggio della destinazione. È comunque possibile utilizzare il dimensionamento per fasi come policy aggiuntiva per una configurazione più avanzata. Ad esempio, puoi configurare una risposta più aggressiva quando l'utilizzo raggiunge un determinato livello.

  • Assicurati di scegliere un margine adeguato tra le soglie di scalabilità orizzontale e ridimensionamento per evitare che si verifichino sbalzi. Flapping è un ciclo infinito di riduzione e aumento orizzontale. Ciò significa che se viene eseguita un'azione di dimensionamento, il valore della metrica cambierebbe per avviare un'altra azione di dimensionamento nella direzione opposta.