Ejecutar la herramienta EC2Rescue en instancias inaccesibles - AWS Systems Manager

Ejecutar la herramienta EC2Rescue en instancias inaccesibles

EC2Rescue puede ayudarlo a diagnosticar y resolver problemas de las instancias de Amazon Elastic Compute Cloud (Amazon EC2) para Linux y Windows Server. Puede ejecutar la herramienta manualmente, tal y como se describe en Uso de EC2Rescue para Linux Server y Uso de EC2Rescue para Windows Server. También puede ejecutar la herramienta de forma automática a través de Automatización de Systems Manager y el manual de procedimientos AWSSupport-ExecuteEC2Rescue. Automation es una capacidad de AWS Systems Manager. El manual de procedimientos AWSSupport-ExecuteEC2Rescue está diseñado para realizar una combinación de acciones de Systems Manager, acciones de AWS CloudFormation y funciones de Lambda que automatizan los pasos que normalmente se necesitan para utilizar EC2Rescue.

Puede utilizar el manual de procedimientos AWSSupport-ExecuteEC2Rescue para solucionar diferentes tipos de problemas del sistema operativo (OS). No se admiten instancias con volúmenes raíz cifrados. Consulte los temas siguientes para obtener una lista completa:

Windows: consulte Acción de rescate en Uso de EC2Rescue for Windows Server con la línea de comando.

Linux y macOS: algunos módulos de EC2Rescue para Linux detectan problemas e intentan remediarlos. Para obtener más información, consulte la documentación aws-ec2rescue-linux de cada módulo en GitHub.

Funcionamiento

La solución de problemas de una instancia con Automation y el manual de procedimientos AWSSupport-ExecuteEC2Rescue funciona de la siguiente manera:

  • Usted especifica el ID de la instancia inaccesible y activa el manual de procedimientos.

  • El sistema crea una VPC temporal y, a continuación, ejecuta una serie de funciones de Lambda para configurar la VPC.

  • El sistema identifica una subred para su VPC temporal en la misma zona de disponibilidad que la instancia original.

  • El sistema lanza una instancia auxiliar de habilitada para SSM y temporal.

  • El sistema detiene la instancia original y crea una copia de seguridad. A continuación, asocia el volumen raíz original a la instancia auxiliar.

  • El sistema utiliza Run Command para ejecutar EC2Rescue en la instancia auxiliar. EC2Rescue identifica e intenta corregir los problemas en el volumen raíz original asociado. Cuando finaliza, EC2Rescue vuelve a asociar el volumen raíz a la instancia original.

  • El sistema reinicia la instancia original y termina la instancia temporal. El sistema también termina la VPC temporal y las funciones de Lambda creadas al inicio de la Automation.

Antes de empezar

Antes de ejecutar la siguiente Automation, haga lo siguiente:

  • Copie el ID de instancia de la instancia inaccesible. Especificará este ID en el procedimiento.

  • Opcionalmente, recopile el ID de una subred en la misma zona de disponibilidad que su instancia inaccesible. La instancia de EC2Rescue se creará en esta subred. Si no especifica ninguna subred, Automation crea una nueva VPC temporal en su Cuenta de AWS. Verifique que su Cuenta de AWS tiene al menos una VPC disponible. De forma predeterminada, puede crear cinco VPC en una región. Si ya ha creado cinco VPC en la región, se produce un error en la Automation sin realizar cambios en la instancia. Para obtener más información acerca de las cuotas de Amazon VPC, consulte VPC y subredes en la Guía del usuario de Amazon VPC.

  • También puede crear y especificar un rol de AWS Identity and Access Management (IAM) para Automation. Si no especifica este rol, Automation se ejecuta en el contexto del usuario que ha ejecutado la Automation.

Concesión de permisos AWSSupport-EC2Rescue para realizar acciones en las instancias

EC2Rescue necesita permiso para realizar una serie de acciones en las instancias durante la automatización. Estas acciones invocan los servicios AWS Lambda, IAM y Amazon EC2 para intentar solucionar los problemas de sus instancias de forma segura. Si dispone de permisos de nivel de administrador en su Cuenta de AWS o VPC, es probable que pueda ejecutar la automatización sin configurar permisos, tal y como se describe en esta sección. Si no dispone de permisos de nivel de administrador, usted o un administrador deben configurarlos mediante una de las siguientes opciones.

Concesión de permisos mediante políticas de IAM

Puede adjuntar la siguiente política de IAM a su cuenta de usuario, grupo o rol como una política insertada o bien puede crear una nueva política administrada de IAM y adjuntarla a su usuario, grupo o rol. Para obtener más información sobre la adición de una política insertada a su usuario, grupo o rol, consulte Uso de políticas insertadas. Para obtener más información sobre cómo crear una política administrada, consulte Uso de políticas administradas.

nota

Si crea una nueva política administrada de IAM, también debe adjuntar la política administrada AmazonSSMAutomationRole para que la instancia se pueda comunicar con la API de Systems Manager.

Política de IAM para AWSSupport-EC2Rescue

Reemplace account ID con su propia información.

{ "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*" ], "Resource": "*", "Effect": "Allow" } ] }

Concesión de permisos mediante una plantilla de AWS CloudFormation

AWS CloudFormation automatiza el proceso de creación de roles y políticas de IAM a través de una plantilla preconfigurada. Utilice el siguiente procedimiento para crear los roles y las políticas de IAM necesarios para EC2Rescue Automation mediante AWS CloudFormation.

Para crear los roles y las políticas de IAM necesarios para EC2Rescue
  1. Descargue AWSSupport-EC2RescueRole.zip y extraiga el archivo AWSSupport-EC2RescueRole.json en un directorio de su equipo local.

  2. Si su Cuenta de AWS está en una partición especial, edite la plantilla para cambiar los valores de ARN por los de su partición.

    Por ejemplo, para las regiones de China, cambie todas las instancias de arn:aws por arn:aws-cn.

  3. Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation.

  4. Elija Create stack (Crear pila), With new resources (standard) (Con nuevos recursos [estándar]).

  5. En la página Create stack (Crear pila) en Prerequisite - Prepare template (Requisito previo: preparar plantilla), elija Template is ready (La plantilla está lista).

  6. En Specify template (Especificar plantilla), elija Upload a template file (Cargar un archivo de plantilla).

  7. Elija Choose file (Elegir archivo), y, a continuación, busque y seleccione el archivo AWSSupport-EC2RescueRole.json del directorio en el que lo extrajo.

  8. Elija Siguiente.

  9. En la página Specify stack details (Especificar detalles de la pila) para el campo Stack name (Nombre de la pila), escriba un nombre para identificar esta pila y, a continuación, elija Next (Siguiente).

  10. (Opcional) En el área Tags (Etiquetas), aplique a la pila uno o varios pares de nombre-valor de claves de etiqueta.

    Las etiquetas son metadatos opcionales que usted asigna a un recurso. Las etiquetas le permiten clasificar los recursos de diversas maneras, por ejemplo, según su finalidad, propietario o entorno. Por ejemplo, puede que desee etiquetar una pila para identificar el tipo de tareas que ejecuta, los tipos de destinos u otros recursos implicados y el entorno en el que se ejecuta.

  11. Elegir Next (Siguiente)

  12. En la página Review (Revisar), revise los detalles de la pila y, a continuación, desplácese hacia abajo y elija la opción I acknowledge that AWS CloudFormation might create IAM resources (Acepto que es posible que cree recursos de IAM).

  13. Seleccione Crear pila.

    AWS CloudFormation muestra el estado CREATE_IN_PROGRESS durante unos minutos. El estado cambia a CREATE_COMPLETE tras crear la pila. También puede elegir el icono de actualización para comprobar el estado del proceso de creación.

  14. En la lista Stacks (Pilas), seleccione el botón situado junto a la pila que acaba de crear y, a continuación, elija la pestaña Outputs (Salidas).

  15. Anote el valor de Value (Valor). Es el ARN de AssumeRole. Especifique este ARN cuando ejecute la automatización en el siguiente procedimiento, Ejecución de Automation.

Ejecución de Automation

importante

La siguiente automatización detiene la instancia inaccesible. La detención de la instancia puede ocasionar la pérdida de datos en los volúmenes de almacén de instancias asociados (si los hubiera). La detención de la instancia también puede provocar que cambie la IP pública, si no hay asociada ninguna IP elástica.

Para ejecutar el manual de procedimientos de Automation AWSSupport-ExecuteEC2Rescue
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija automatización.

  3. Elija Ejecutar automatización.

  4. En la sección Automation document (Documento de Automation), elija Owned by Amazon (Propiedad de Amazon) en la lista.

  5. En la lista de manuales de procedimientos, seleccione el botón de la tarjeta que corresponde a AWSSupport-ExecuteEC2Rescue y, a continuación, elija Next (Siguiente).

  6. En la página Execute automation document (Ejecutar documento de Automation), elija Simple execution (Ejecución sencilla).

  7. En la sección Document details (Detalles del documento), asegúrese de que el valor de Document version (Versión del documento) sea la versión predeterminada más alta. Por ejemplo, $DEFAULT o 3 (default) (3 [predeterminada]).

  8. En la sección Input parameters, especifique los siguientes parámetros:

    1. En UnreachableInstanceId, especifique la ID de la instancia inaccesible.

    2. (Opcional) En EC2RescueInstanceType, especifique un tipo de instancia para la instancia de EC2Rescue. El tipo de instancia predeterminada es t2.medium.

    3. En AutomationAssumeRole, si ha creado roles para esta automatización mediante el procedimiento de AWS CloudFormation descrito anteriormente en este tema, elija el ARN del AssumeRole que creó en la consola de AWS CloudFormation.

    4. (Opcional) En LogDestination, especifique un bucket de S3 si desea recopilar registros de nivel del sistema operativo mientras soluciona los problemas de la instancia. Los registros se cargan automáticamente en el bucket especificado.

    5. En SubnetId, especifique una subred en una VPC existente en la misma zona de disponibilidad que la instancia inaccesible. De forma predeterminada, Systems Manager crea una nueva VPC, pero usted puede especificar una subred en una VPC existente, si así lo desea.

      nota

      Si no ve la opción para especificar un ID de subred o bucket, verifique que está usando la versión más reciente predeterminada del manual de procedimientos.

  9. (Opcional) En el área Tags (Etiquetas), aplique uno o más pares de nombre-valor de claves de etiqueta para ayudar a identificar la automatización, como Key=Purpose,Value=EC2Rescue.

  10. Elija Ejecutar.

El manual de procedimientos crea una AMI de copia de seguridad como parte de la automatización. Los demás recursos creados por la automatización se eliminan automáticamente, pero esta AMI permanece en su cuenta. La AMI recibe su nombre siguiendo esta convención:

AMI de copia de seguridad: AWSSupport-EC2Rescue:UnreachableInstanceId

Puede localizar esta AMI en la consola de Amazon EC2 mediante la búsqueda del ID de ejecución de Automation.