View a markdown version of this page

Avvia le istanze in modo sincrono - 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à.

Avvia le istanze in modo sincrono

Amazon EC2 Auto Scaling fornisce due metodi per avviare istanze nel gruppo Auto Scaling: comportamento di scalabilità asincrono e provisioning sincrono tramite l'API. LaunchInstances

Con il provisioning sincrono, utilizzi l' LaunchInstances API per richiedere un numero specifico di istanze in una particolare zona di disponibilità. Il provisioning sincrono offre i seguenti vantaggi:

  • Feedback immediato sulla disponibilità della capacità in specifiche zone di disponibilità

  • Controllo preciso sulle istanze della zona di disponibilità in cui vengono avviate

  • ID di istanza deterministici per l'uso immediato nei sistemi di orchestrazione

  • Real-time scalare le decisioni in base ai vincoli di capacità effettivi

  • Scalabilità più rapida eliminando i tempi di attesa per i lanci asincroni di Auto Scaling

Con l'Auto Scaling asincrono, quando si modifica la capacità desiderata o quando si attiva una policy di scalabilità, Amazon EC2 Auto Scaling elabora la richiesta di ridimensionamento e avvia le istanze in background. È necessario monitorare le attività di scalabilità o descrivere il gruppo Auto Scaling per determinare quando le istanze vengono avviate correttamente.

Nota
  • L' LaunchInstances API funziona solo con i gruppi Auto Scaling che utilizzano modelli di avvio. I gruppi Auto Scaling che utilizzano configurazioni di avvio non sono supportati. Se il gruppo Auto Scaling utilizza una configurazione di avvio, è necessario migrare a un modello di avvio prima di utilizzare il provisioning sincrono.

  • L' LaunchInstances API supporta policy di istanze miste con solo opzioni di acquisto complete On-Demand o complete di Spot. Le policy On-Demand miste che combinano entrambe e le istanze Spot non sono supportate.

  • Per i gruppi Auto Scaling che coprono più zone di disponibilità, è necessario specificare la zona di disponibilità o la sottorete di destinazione. Per i gruppi Single-AZ, questo parametro è opzionale.

Provisioning sincrono e scalabilità asincrona

Provisioning sincrono

Quando usi l' LaunchInstances API, Amazon EC2 Auto Scaling:

  • Tenta immediatamente di avviare le istanze richieste utilizzando CreateFleet

  • Attende di CreateFleet restituire gli ID delle istanze prima di rispondere

  • Restituisce gli ID delle istanze, i tipi di istanza e le informazioni sulla zona di disponibilità in caso di esito positivo

  • Restituisce codici di errore specifici e dettagli sull'errore

  • Fornisce un feedback immediato, consentendo decisioni di scalabilità in tempo reale

Ridimensionamento asincrono

Quando utilizzi metodi di Auto Scaling asincroni, ad esempio la modifica della capacità desiderata o l'utilizzo di politiche di scalabilità, Amazon EC2 Auto Scaling:

  • Aggiorna la capacità desiderata nell'API ma non restituisce le istanze immediatamente

  • L'istanza del piano viene avviata automaticamente nelle zone di disponibilità

  • Avvia le istanze tramite flussi di lavoro in background

  • Distribuisce automaticamente la capacità su più zone di disponibilità per il bilanciamento

  • Gestisce gli errori di avvio con una logica di ripetizione integrata

È necessario eseguire il polling delle attività di ridimensionamento o descrivere il gruppo Auto Scaling per verificare lo stato delle operazioni di avvio.

Considerazioni e limitazioni

Quando utilizzate il provisioning sincrono, tenete presente le seguenti note e limitazioni:

  • Stato dell'istanza dopo il lancio: le istanze restituite dall'API sono in sospeso. Potrebbero comunque fallire durante i successivi processi del flusso di lavoro o durante i blocchi del ciclo di vita. Una risposta API corretta significa che EC2 ha accettato la richiesta di avvio e ha restituito gli ID delle istanze. Le istanze non vengono automaticamente considerate completamente pronte per i carichi di lavoro e devono completare i processi standard del ciclo di vita di EC2 e Auto Scaling.

  • Limitazione dei pool caldi: i gruppi Auto Scaling con pool caldi non sono attualmente supportati. Se si tenta di chiamare l' LaunchInstances API su un gruppo Auto Scaling in cui è configurato un warm pool, l'API esegue un avvio a freddo invece di utilizzare istanze di warm pool e restituisce un errore. UnsupportedOperation Per ulteriori informazioni sugli avviamenti a freddo, consulta Limitazioni delle piscine calde.

  • Timeout e tentativi dell'API: se l' CreateFleet operazione sottostante richiede più tempo del previsto, l'API potrebbe scadere e restituire un token di idempotenza. Puoi riprovare a utilizzarlo ClientToken per tenere traccia dell'operazione di avvio originale o utilizzare describe-instances con il token client per controllare le istanze avviate.

  • Vincoli della zona di disponibilità: se il gruppo Auto Scaling si estende su più zone di disponibilità e ha il ribilanciamento delle zone di disponibilità abilitato, l'avvio delle istanze in modo sincrono può causare conflitti operativi:

    • Limitazione AZ singola per chiamata: ogni chiamata LaunchInstances API può essere indirizzata a una sola zona di disponibilità, anche se il gruppo Auto Scaling si estende su più zone.

    • Conflitti di ribilanciamento AZ: se il gruppo Auto Scaling ha abilitato il ribilanciamento AZ, le chiamate sequenziali tra diversi AZ possono attivare ulteriori lanci asincroni, con conseguente numero di istanze superiore a quello previsto. Valuta la possibilità di sospendere il ribilanciamento AZ per un controllo preciso della capacità. Per ulteriori informazioni, consulta Sospendi e riprendi i processi di Amazon EC2 Auto Scaling.

  • Scenari di successo parziale: l'LaunchInstancesAPI può restituire un successo parziale se è disponibile solo una parte della capacità richiesta, il che è un normale comportamento di EC2. L'API restituisce le istanze avviate correttamente insieme ai dettagli degli errori per gli avvii non riusciti. Per i casi d'uso che richiedono l'avvio simultaneo di tutte le istanze (ad esempio le applicazioni che richiedono tutte le istanze nella stessa AZ per una bassa latenza), dovrai terminare le istanze avviate parzialmente e riprovare in una AZ diversa. Considera questo comportamento quando progetti la logica dei tentativi per carichi di lavoro sensibili alla capacità.

  • Pesi delle istanze: se il gruppo Auto Scaling utilizza i pesi delle istanze, il RequestedCapacity parametro rappresenta le unità di capacità ponderate, non il numero di istanze. Il numero effettivo di istanze avviate dipende dai tipi di istanze selezionati e dai relativi pesi configurati. EC2 Auto Scaling limita gli avvii a 100 istanze per chiamata API, indipendentemente dalla capacità ponderata richiesta.

  • Tipi di istanze miste: l' LaunchInstances API utilizza la policy sulle istanze miste esistente del gruppo Auto Scaling per determinare quali tipi di istanze avviare. L'API avvia le istanze in base alla strategia di allocazione del gruppo e alle priorità dei tipi di istanza.