AWSPremiumSupport-ResizeNitroInstance - AWS Systems Manager Riferimento al runbook di automazione

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

AWSPremiumSupport-ResizeNitroInstance

Descrizione

Il AWSPremiumSupport-ResizeNitroInstance runbook fornisce una soluzione automatizzata per il ridimensionamento delle istanze Amazon Elastic Compute Cloud (Amazon EC2) basate su Nitro System.

Per ridurre il potenziale rischio di perdita e downtime dei dati, il runbook verifica quanto segue:

  • Comportamento di arresto dell'istanza.

  • Se l'istanza fa parte di un gruppo Amazon EC2 Auto Scaling e in standby modalità.

  • Stato dell'istanza e locazione.

  • Il tipo di istanza che desideri modificare supporta il numero di interfacce di rete attualmente collegate all'istanza.

  • L'architettura del processore e il tipo di virtualizzazione sia per il tipo di istanza corrente che per quello di destinazione sono gli stessi.

  • Se l'istanza è in esecuzione, significa che sta superando tutti i controlli di stato.

  • Il tipo di istanza da modificare è disponibile nella stessa zona di disponibilità.

Se Amazon EC2 non supera i controlli di stato dopo aver modificato il tipo di istanza, il runbook torna automaticamente al tipo di istanza precedente.

Per impostazione predefinita, questo runbook non modifica il tipo di istanza se è in esecuzione e i volumi dell'archivio delle istanze sono collegati. Inoltre, il runbook non cambierà il tipo di istanza se l'istanza fa parte di uno AWS CloudFormation stack. Se desiderate modificare uno di questi comportamenti, specificate yes i AllowCloudFormationInstances parametri AllowInstanceStoreInstances and.

Il runbook fornisce due modi diversi per specificare il tipo di istanza a cui si desidera passare:

  • Per automazioni semplici destinate a una singola istanza, specifica il tipo di istanza che desideri modificare utilizzando il TargetInstanceTypeFromParameter parametro.

  • Per eseguire automazioni su larga scala per modificare il tipo di istanza di più istanze, specifica il tipo di istanza utilizzando il TargetInstanceTypeFromTagValue parametro. Per informazioni sull'esecuzione di automazioni su larga scala, consulta Esegui automazioni su larga scala.

Se non specifichi un valore per nessuno dei due parametri, l'automazione fallisce.

Importante

L'accesso ai AWSPremiumSupport-* runbook richiede un abbonamento Enterprise o Business Support. Per ulteriori informazioni, consulta Confronta AWS Support i piani.

Considerazioni

  • Ti consigliamo di eseguire il backup dell'istanza prima di utilizzare questo runbook.

  • Per informazioni sulla compatibilità per la modifica dei tipi di istanza, consulta Compatibilità per la modifica del tipo di istanza.

  • Se l'automazione fallisce e torna al tipo di istanza originale, consulta Risoluzione dei problemi relativi alla modifica del tipo di istanza.

  • La modifica del tipo di istanza richiede che il runbook interrompa l'istanza. Quando un'istanza viene interrotta, tutti i dati archiviati nella memoria o nei volumi di archiviazione di un'istanza vengono persi. Inoltre, vengono rilasciati tutti gli indirizzi IPv4 pubblici assegnati automaticamente. Per ulteriori informazioni su cosa succede quando interrompi un'istanza, consulta Interrompere e avviare l'istanza.

  • Utilizzando il SkipInstancesWithTagKey parametro, puoi ignorare le istanze a cui è applicata una chiave tag Amazon EC2 specifica.

Esegui questa automazione (console)

Tipo di documento

Automazione di

Proprietario

Amazon

Piattaforme

Linux, Windows

Parametri

  • AutomationAssumeRole

    Tipo: String

    Descrizione: (Facoltativo) L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

  • Accettare

    Tipo: String

    Descrizione: (Obbligatorio) Entra yes per confermare che l'istanza verrà interrotta se è attualmente in esecuzione.

  • AllowInstanceStoreInstances

    Tipo: String

    Valori validi: no | sì

    Impostazione predefinita: no

    Descrizione: (Facoltativo) Se specifichiyes, consenti l'esecuzione del runbook su istanze a cui sono associati volumi di archiviazione delle istanze.

  • AllowCloudFormationInstances

    Tipo: String

    Valori validi: no | sì

    Impostazione predefinita: no

    Descrizione: (Facoltativo) Se si specificayes, il runbook viene eseguito su istanze che fanno parte di uno AWS CloudFormation stack.

  • DryRun

    Tipo: String

    Valori validi: no | sì

    Impostazione predefinita: no

    Descrizione: (Facoltativo) Se si specificayes, il runbook convalida i requisiti di ridimensionamento senza apportare modifiche al tipo di istanza.

  • InstanceId

    Tipo: String

    Descrizione: (obbligatorio) L'ID dell'istanza Amazon EC2 di cui desideri modificare il tipo.

  • SkipInstancesWithTagKey

    Tipo: String

    Descrizione: (Facoltativo) L'automazione ignora un'istanza di destinazione se la chiave di tag specificata viene applicata all'istanza.

  • SleepTime

    Tipo: String

    Di default: 3

    Descrizione: (Facoltativo) Il numero di secondi in cui questo runbook dovrebbe dormire dopo il completamento.

  • TagInstance

    Tipo: String

    Descrizione: (Facoltativo) Etichetta le istanze con la chiave e il valore di tua scelta utilizzando il seguente formato: Key=ChangingType, Value=True. Questa opzione consente di tenere traccia delle istanze che sono state prese di mira da questo runbook. i valori e le chiavi dei tag rispettano la distinzione tra maiuscole e minuscole;

  • TargetInstanceTypeFromParameter

    Tipo: String

    Descrizione: (Facoltativo) Il tipo di istanza in cui desideri modificare l'istanza. Lasciate vuoto questo parametro se desiderate utilizzare il valore della chiave del tag fornita nel TargetInstanceTypeFromTagValue parametro.

  • TargetInstanceTypeFromTagValue

    Tipo: String

    Descrizione: (Facoltativo) La chiave tag applicata alle istanze di destinazione il cui valore contiene il tipo di istanza che desideri modificare. Se si specifica un valore per il TargetInstanceTypeFromParameter parametro, questo sostituisce qualsiasi valore specificato per questo parametro.

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il runbook.

  • autoscaling:DescribeAutoScalingInstances

  • cloudformation:DescribeStackResources

  • ssm:GetAutomationExecution

  • ssm:DescribeAutomationExecutions

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeTags

  • ec2:ModifyInstanceAttribute

  • ec2:StartInstances

  • ec2:StopInstances

Fasi del documento

  1. aws:assertAwsResourceProperty: garantisce che l'istanza Amazon EC2 non sia contrassegnata con la chiave del tag di risorsa specificata nel SkipInstancesWithTagKey parametro. Se la chiave del tag viene trovata applicata all'istanza, il passaggio fallisce e l'automazione termina.

  2. aws:assertAwsResourceProperty: conferma che lo stato dell'istanza Amazon EC2 di destinazione èrunning, pendingstopped, ostopping. Altrimenti, l'automazione termina.

  3. aws:executeAwsApi: raccoglie le proprietà dall'istanza Amazon EC2.

  4. aws:executeAwsApi: raccoglie dettagli sul tipo di istanza Amazon EC2 corrente.

  5. aws:branch: verifica se il tipo di istanza corrente e il tipo di istanza specificato nel TargetInstanceTypeFromParameter parametro sono gli stessi. Se lo sono, l'automazione termina.

  6. aws:assertAwsResourceProperty: assicura che l'istanza sia in esecuzione su Nitro System.

  7. aws:branch: Assicura che il tipo di volume principale dell'istanza Amazon EC2 sia un volume Amazon Elastic Block Store (Amazon EBS).

  8. aws:assertAwsResourceProperty: conferma che il comportamento di chiusura dell'istanza è stop e non lo è. terminate

  9. aws:branch: Assicura che l'istanza Amazon EC2 non sia un'istanza Spot.

  10. aws:branch: Assicura che la tenancy dell'istanza Amazon EC2 sia predefinita e non un host dedicato o un'istanza dedicata.

  11. aws:executeScript: conferma che esiste una sola automazione di questo runbook destinata all'ID dell'istanza corrente. Se è già in corso un'altra automazione destinata alla stessa istanza, l'automazione restituisce un errore e termina.

  12. aws:branch: ramifica l'automazione in base allo stato dell'istanza Amazon EC2.

    1. In caso contrario stoppedstopping, l'automazione viene eseguita aws:waitForAwsResourceProperty fino all'arresto completo dell'istanza Amazon EC2.

    2. In caso running pending affermativo, l'automazione viene eseguita aws:waitForAwsResourceProperty fino a quando l'istanza Amazon EC2 non supera i controlli di stato.

  13. aws:assertAwsResourceProperty: conferma che l'istanza Amazon EC2 non fa parte di un gruppo Auto Scaling richiamando l'operazione DescribeAutoScalingInstances API. Se l'istanza fa parte di un gruppo Auto Scaling, verifica che l'istanza Amazon EC2 sia in standby modalità.

  14. aws:branch: ramifica l'automazione a seconda che tu voglia che l'automazione controlli se l'istanza Amazon EC2 fa parte di uno AWS CloudFormation stack:

    1. aws:executeScriptAssicura che l'istanza Amazon EC2 non faccia parte di uno AWS CloudFormation stack richiamando l'operazione DescribeStackResources API.

  15. aws:executeAwsApi: restituisce un elenco di tipi di istanza con lo stesso tipo di architettura del processore, lo stesso tipo di virtualizzazione e che supporta il numero di interfacce di rete attualmente collegate all'istanza di destinazione.

  16. aws:executeAwsApi: ottiene il valore del tipo di istanza di destinazione dalla chiave del tag specificata nel TargetInstanceTypeFromTagValue parametro.

  17. aws:executeScript: conferma che i tipi di istanza corrente e di destinazione sono compatibili. Assicura che il tipo di istanza di destinazione sia disponibile nella stessa sottorete. Verifica che il preside che ha avviato il runbook disponga delle autorizzazioni per modificare il tipo di istanza e arrestare e avviare l'istanza se era in esecuzione.

  18. aws:branch: ramifica l'automazione in base al fatto che il valore del DryRun parametro sia impostato suyes. Seyes, l'automazione termina.

  19. aws:branch: verifica se il tipo di istanza originale e quello di destinazione sono gli stessi. Se sono uguali, l'automazione termina.

  20. aws:executeAwsApi: ottiene lo stato corrente dell'istanza.

  21. aws:changeInstanceState: arresta l'istanza Amazon EC2.

  22. aws:changeInstanceState: forza l'arresto dell'istanza se è bloccata nello stopping stato.

  23. aws:executeAwsApi: cambia il tipo di istanza nel tipo di istanza di destinazione.

  24. aws:sleep: attende 3 secondi dopo aver modificato il tipo di istanza per una maggiore coerenza.

  25. aws:branch: ramifica l'automazione in base allo stato dell'istanza precedente. In caso affermativorunning, l'istanza viene avviata.

    1. aws:changeInstanceState: avvia l'istanza Amazon EC2 se era in esecuzione prima di cambiare il tipo di istanza.

    2. aws:waitForAwsResourceProperty: attende che l'istanza Amazon EC2 superi i controlli di stato. Se l'istanza non supera i controlli di stato, viene ripristinata al tipo di istanza originale.

      1. aws:changeInstanceState: arresta l'istanza Amazon EC2 prima di cambiarla nel tipo di istanza originale.

      2. aws:changeInstanceState: forza l'arresto dell'istanza Amazon EC2 prima di cambiarla nel tipo di istanza originale nel caso in cui rimanga bloccata in uno stato di arresto.

      3. aws:executeAwsApi: modifica il tipo originale dell'istanza Amazon EC2.

      4. aws:sleep: attende 3 secondi dopo aver modificato il tipo di istanza per una maggiore coerenza.

      5. aws:changeInstanceState: avvia l'istanza Amazon EC2 se era in esecuzione prima di cambiare il tipo di istanza.

      6. aws:waitForAwsResourceProperty: attende che l'istanza Amazon EC2 superi i controlli di stato.

  26. aws:sleep: Attende prima di terminare il runbook.