Esecuzione dello strumento EC2Rescue su istanze non raggiungibili - AWS Systems Manager

Esecuzione dello strumento EC2Rescue su istanze non raggiungibili

EC2Rescue consente di diagnosticare e risolvere i problemi relativi alle istanze di Amazon Elastic Compute Cloud (Amazon EC2) per Linux e Windows Server. È possibile eseguire lo strumento manualmente, come descritto nelle sezioni di Using EC2Rescue for Linux Server (Uso di EC2Rescue per Linux Server) e di Using EC2Rescue for Windows Server (Uso di EC2Rescue per Windows Server). In alternativa, è possibile eseguire lo strumento automaticamente utilizzando il servizio di automazione di Systems Manager e il runbook AWSSupport-ExecuteEC2Rescue. Il servizio di automazione è una funzionalità di AWS Systems Manager. Il runbook AWSSupport-ExecuteEC2Rescue è stato progettato per eseguire una combinazione di operazioni di Systems Manager, operazioni AWS CloudFormation e funzioni Lambda per automatizzare le fasi normalmente richieste per l'uso di EC2Rescue.

È possibile utilizzare il runbook AWSSupport-ExecuteEC2Rescue per risolvere e potenzialmente correggere i vari tipi di problemi a livello di sistema operativo (SO). Le istanze con volumi root crittografati non sono supportate. Per un elenco completo, consulta i seguenti argomenti:

Windows: consulta la sezione sull'operazione di recupero nell'argomento relativo all'uso di EC2Rescue per Windows Server con la riga di comando.

Linux e macOS: alcuni moduli di EC2Rescue per Linux rilevano i problemi e cercano di risolverli. Per ulteriori informazioni, consulta la documentazione relativa a aws-ec2rescue-linux per ciascun modulo su GitHub.

Come funziona

Risoluzione dei problemi di un'istanza con il servizio di automazione e il runbook AWSSupport-ExecuteEC2Rescue funziona nel seguente modo:

  • L'utente specifica l'ID dell'istanza non raggiungibile e avvia il runbook.

  • Il sistema crea un VPC temporaneo e quindi esegue una serie di funzioni Lambda per configurare il VPC.

  • Il sistema identifica una sottorete per il VPC temporaneo nella stessa zona di disponibilità dell'istanza originale.

  • Il sistema avvia un'istanza helper temporanea e abilitata per SSM.

  • Il sistema arresta l'istanza originale e crea un backup. Collega quindi il volume root originale all'istanza helper.

  • Il sistema utilizza Run Command per eseguire EC2Rescue sull'istanza helper. EC2Rescue identifica e tenta di risolvere i problemi nel volume root originale collegato. Al termine, EC2Rescue collega di nuovo il volume root all'istanza originale.

  • Il sistema riavvia l'istanza originale e termina l'istanza temporanea. Il sistema termina anche il VPC temporaneo e le funzioni Lambda create all'inizio dell'automazione.

Prima di iniziare

Prima di eseguire la seguente automazione, esegui le seguenti operazioni:

  • Copiare l'ID istanza dell'istanza non raggiungibile. Questo ID verrà specificato nella procedura.

  • Facoltativamente, recuperare l'ID di una sottorete nella stessa zona di disponibilità dell'istanza non raggiungibile. L'istanza EC2Rescue verrà creata in questa sottorete. Se non si specifica una sottorete, il servizio di automazione crea un nuovo VPC temporaneo nell'account Account AWS. Verificare che nell'Account AWS sia disponibile almeno un VPC. Per impostazione predefinita, in una regione è possibile creare cinque VPC. Se nella regione sono già stati creati cinque VPC, l'automazione avrà esito negativo e non verrà apportata alcuna modifica all'istanza. Per ulteriori informazioni sulle quote di Amazon VPC, consulta l'argomento relativo a VPC e sottoreti nella Guida utente Amazon VPC.

  • Facoltativamente, è possibile creare e specificare un ruolo AWS Identity and Access Management (IAM) per il servizio di automazione. Se non si specifica questo ruolo, il servizio di automazione viene eseguito nel contesto dell'utente che ha eseguito l'automazione.

Concessione delle autorizzazioni AWSSupport-EC2Rescue per eseguire operazioni sulle istanze

EC2Rescue deve disporre dell'autorizzazione per eseguire una serie di operazioni sulle istanze durante l'esecuzione del servizio di automazione. Queste operazioni chiamano i servizi AWS Lambda, IAM e Amazon EC2 per tentare di eseguire in modo efficace e sicuro la risoluzione dei problemi delle istanze. Se hai le autorizzazioni a livello di amministratore nell'Account AWS e/o nel VPC, puoi eseguire l'automazione senza configurare le autorizzazioni, come descritto in questa sezione. Se non si dispone delle autorizzazioni a livello di amministratore, l'utente corrente o un amministratore deve configurare tali autorizzazioni mediante una delle opzioni riportate di seguito.

Concessione delle autorizzazioni mediante policy IAM

È possibile collegare la seguente policy IAM all'utente, al gruppo o al ruolo come policy inline. In alternativa, è possibile creare una nuova policy gestita IAM e collegarla all'utente, al gruppo o al ruolo. Per ulteriori informazioni sull'aggiunta di una policy inline all'utente, al gruppo o al ruolo, consulta la pagina Utilizzo delle policy inline. Per ulteriori informazioni sulla creazione di una nuova policy gestita, consulta la sezione relativa all'uso di policy gestite.

Nota

In caso di creazione di una nuova policy IAM gestita, a tale policy è necessario allegare anche la policy gestita AmazonSSMAutomationRole in modo tale che le istanze possano comunicare con l'API di Systems Manager.

Policy IAM per AWSSupport-EC2Rescue

Sostituisci account ID (ID account) con le tue informazioni.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*", "autoscaling:DescribeAutoScalingInstances" ], "Resource": "*", "Effect": "Allow" } ] }

Concessione delle autorizzazioni mediante un modello AWS CloudFormation

AWS CloudFormation automatizza il processo di creazione di ruoli e policy IAM mediante un modello preconfigurato. Utilizza la procedura seguente per creare i ruoli e le policy IAM richiesti per il servizio di automazione di EC2Rescue utilizzando AWS CloudFormation.

Per creare i ruoli e le policy IAM per EC2Rescue
  1. Scaricare AWSSupport-EC2RescueRole.zip ed estrarre il file AWSSupport-EC2RescueRole.json in una directory sul computer locale.

  2. Se l'Account AWS è in una partizione speciale, modificare il modello per cambiare i valori dell'ARN in quelli della partizione.

    Ad esempio, per le regioni della Cina, modificare i casi da arn:aws a arn:aws-cn.

  3. Accedere alla AWS Management Console e aprire la console di AWS CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation.

  4. Scegliere Create stack (Crea stack), With new resources (standard) (Con nuove risorse (standard)).

  5. Nella pagina Create stack (Crea stack) per Prerequisite - Prepare template (Prerequisito - Prepara modello), scegliere Template is ready (Il modello è pronto).

  6. In Specify template (Specifica il modello), scegliere Upload a template file (Carica un file modello).

  7. Scegliere Choose file (Scegli file), quindi individuare e selezionare il file AWSSupport-EC2RescueRole.json dalla directory in cui è stato estratto.

  8. Scegliere Next (Successivo).

  9. Nella pagina Specify stack details (Specifica i dettagli dello stack), per il campo Stack name (Nome stack) inserire un nome per identificare lo stack, quindi scegliere Next (Successivo).

  10. (Facoltativo) Nell'area Tags (Tag), applicare una o più coppie nome chiave tag-valore allo stack.

    I tag sono metadati facoltativi assegnati a una risorsa. I tag consentono di categorizzare una risorsa in diversi modi, ad esempio in base allo scopo, al proprietario o all'ambiente. Ad esempio, è possibile applicare un tag uno stack per identificare il tipo di attività che esegue, i tipi di destinazioni o altre risorse coinvolte e l'ambiente in cui viene eseguito.

  11. Seleziona Next (Successivo).

  12. Nella pagina Review (Rivedi) esaminare i dettagli dello stack, quindi scorrere verso il basso e scegliere l'opzione Accetto che AWS CloudFormation potrebbe creare risorse IAM.

  13. Seleziona Crea stack.

    AWS CloudFormation mostra lo stato CREATE_IN_PROGRESS per alcuni minuti. Dopo la creazione dello stack, lo stato diventa CREATE_COMPLETE. È inoltre possibile scegliere l'icona di aggiornamento per verificare lo stato del processo di creazione.

  14. Nell'elenco Stacks, scegliere il pulsane di opzione accanto allo stack appena creato e quindi scegliere la scheda Outputs.

  15. Annotare il valore. Il valore è l'ARN di AssumeRole. Si specifica questo ARN quando si esegue l'automazione nella procedura successiva, Esecuzione del servizio di automazione.

Esecuzione del servizio di automazione

Importante

La seguente automazione arresta l'istanza non raggiungibile. L'arresto dell'istanza può causare la perdita di dati sui volumi dell'instance store collegati (se presenti). L'arresto dell'istanza può causare anche la modifica dell'indirizzo IP pubblico se non è associato alcun indirizzo IP elastico.

Esecuzione del servizio di automazione AWSSupport-ExecuteEC2Rescue.
  1. Aprire la console di AWS Systems Manager all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel pannello di navigazione, scegliere Automation (Automazione).

  3. Scegliere Execute automation (Esegui automazione).

  4. Nella sezione Automation document (Documento di automazione) scegliere Owned by Amazon (Di proprietà di Amazon) nell'elenco.

  5. Nell'elenco dei runbook scegliere il pulsante nella scheda per AWSSupport-ExecuteEC2Rescue, quindi scegliere Next (Successivo).

  6. Nella pagina Execute automation document (Esegui documento di automazione), scegliere Simple execution (Esecuzione semplice).

  7. Nella sezione Document details (Dettagli documento) verificare che l'opzione Document version (Versione documento) sia impostata sulla versione predefinita con il numero più alto. Ad esempio, $DEFAULT o 3 (default).

  8. Nella sezione Input parameters (Parametri di input), specificare i seguenti parametri:

    1. Per UnreachableInstanceId, specificare l'ID dell'istanza non raggiungibile.

    2. (Facoltativo) Per EC2RescueInstanceType, specificare un tipo di istanza per l'istanza EC2Rescue. Il tipo di istanza di default è t2.medium.

    3. Per AutomationAssumeRole, se sono stati creati ruoli per questa automazione utilizzando la procedura AWS CloudFormation descritta in precedenza in questo argomento, scegliere l'ARN dell'AssumeRole creato nella console AWS CloudFormation.

    4. (Facoltativo) Per LogDestination, specificare un bucket S3 se si desidera raccogliere i log a livello di sistema operativo durante la risoluzione dei problemi dell'istanza. I log vengono automaticamente caricati nel bucket specificato.

    5. Per SubnetId, specificare una sottorete in un VPC esistente nella stessa zona di disponibilità dell'istanza non raggiungibile. Per impostazione predefinita, Systems Manager crea un nuovo VPC, ma è possibile specificare una sottorete in un VPC esistente.

      Nota

      Se l'opzione per specificare un bucket o un ID di sottorete non è disponibile, verificare nel campo Default (Impostazione predefinita) che si stia utilizzando la versione più recente del runbook.

  9. (Facoltativo) Nell'area Tag applicare ad esempio una o più coppie nome/valore chiave tag per identificare l'automazione, ad esempio Key=Purpose,Value=EC2Rescue.

  10. Scegliere Execute (Esegui).

Il runbook crea un backup dell'AMI come parte dell'automazione. Tutte le altre risorse create dall'automazione vengono eliminate automaticamente, ma questa AMI rimane nell'account in uso. All'AMI viene assegnato un nome utilizzando la seguente convenzione:

AMI di backup: AWSSupport-EC2Rescue:IdIstanzaNonRaggiungibile

È possibile individuare questa AMI nella console Amazon EC2 cercando l'ID di esecuzione dell'automazione.