Ejecutar comandos de forma remota en una instancia de EC2 con AWS Systems Manager
TUTORIAL
Información general
En este tutorial práctico, aprenderá a usar AWS Systems Manager para ejecutar de manera remota comandos en sus instancias de Amazon EC2. Systems Manager es una herramienta de administración que le permite obtener conocimiento operativo y tomar acción en los recursos de AWS de manera segura y a escala. Al usar un comando de ejecución, una de las funciones de automatización de Systems Manager, puede simplificar tareas de administración, lo que elimina la necesidad de usar hosts bastión, SSH o PowerShell remoto.
En nuestro escenario de ejemplo, como administrador de sistema, debe actualizar los paquetes en sus instancias de EC2. Para complicar esta tarea de administración normalmente simple, su equipo de seguridad no le permite acceso directo a los servidores de producción a través de SSH ni le permite usar hosts bastión. Afortunadamente, puede usar Systems Manager para ejecutar comandos en forma remota, como actualizar paquetes, en sus instancias de EC2.
Para solucionar este escenario desafiante, deberá crear un rol de Identity and Access Management (IAM), activar un agente en su instancia que se comunica con Systems Manager, luego deberá seguir las prácticas recomendadas ejecutando el documento AWS-UpdateSSMAgent para actualizar su Systems Manager Agent, finalmente usará Systems Manager para ejecutar un comando en su instancia.
AWS Systems Manager es un producto siempre de capas gratuitas. La instancia EC2 que creó en este tutorial es un elegible de capa gratuita.
Abra la Consola de administración de AWS para poder mantener abierta esta guía paso a paso. Cuando la pantalla se cargue, ingrese su nombre de usuario y contraseña para comenzar.
Experiencia en AWS
Principiante
Tiempo de realización
10 minutos
Costo de realización
Apto para el nivel gratuito
Requisitos
- Cuenta de AWS
- Navegador recomendado: la última versión de Chrome o Firefox
[**] Es posible que las cuentas creadas en las últimas 24 horas aún no tengan acceso a los servicios necesarios para este tutorial.
Última actualización
14 de julio de 2022
Implementación
Paso 1: Crear un rol de Identity and Access Management (IAM)
En este paso, creará un rol de IAM que se usará para darle permiso a Systems Manager para realizar acciones en sus instancias.
a. Abra la consola de IAM en https://console.aws.amazon.com/iam/.
b. En el panel de navegación de la izquierda, elija Roles, y luego seleccione Crear rol.
c. En la página de Seleccionar entidad de confianza, en el servicio de AWS, seleccione EC2 y luego elija Siguiente.
d. En la página Agregar permisos, en la barra de búsqueda, escriba AmazonEC2RoleforSSM. En la lista de políticas, seleccione AmazonEC2RoleforSSM y, a continuación, seleccione Siguiente.
e. En la página Revisar, en el cuadro Nombre de rol escriba EnablesEC2ToAccessSystemsManagerRole. En el cuadro Descripción escriba Permite una instancia de EC2 para acceder a Systems Manager. Elija Crear rol.
Paso 2: Crear una instancia de EC2
En este paso creará una instancia de EC2 utilizando el rol EnablesEC2ToAccessSystemsManagerRole. Esto permitirá que la instancia de EC2 se administre a través de Systems Manager.
a. Abra la consola de Amazon EC2. Desde la consola de EC2 seleccione su región de preferencia. Systems Manager es compatible con todas las regiones de AWS. Ahora elija Lanzar instancia.
b. En el campo Nombre, introduzca MyEC2Tutorial. Seleccione la AMI de Amazon Linux. Conserve la selección predeterminada que aparece en el menú desplegable. También puede instalar Systems Manager Agent en su propio sistema Windows o Linux.
d. No necesitará un par de claves para usar Systems Manager para ejecutar comandos de manera remota. Desplácese hacia abajo hasta Par de claves y, en el menú desplegable Nombre del par de claves, seleccione Continuar sin un par de claves.
e. Conserve la configuración predeterminada en Configuración de red y Configurar almacenamiento.
Paso 3: Actualizar Systems Manager Agent
Ahora que tiene una instancia de EC2 que ejecuta el agente de Systems Manager, puede automatizar las tareas de administración y administrar la instancia. En este paso, ejecuta un comando previamente integrado, denominado un documento, que actualizará el agente. Es la práctica recomendada para actualizar el agente de System Manager cuando crea una nueva instancia.
a. En la barra de navegación superior, busque Systems Manager y abra la consola de Systems Manager.
b. En la sección Administración de nodos de la barra de navegación izquierda, seleccione Administración de flotas.
c. Seleccione el ID de nodo creado en el paso 2, MyEC2Tutorial, para abrir la página de detalles del nodo.
d. En la página de detalles del nodo, en el menú desplegable Acciones de nodo, seleccione Ejecutar comando de ejecución.
e. En la página Ejecutar un comando, haga clic en la barra de búsqueda y seleccione, Prefijo de nombre de documento, luego haga clic en Igual, luego escriba AWS-UpdateSSMAgent.
Ahora haga clic en el botón selector de la izquierda de AWS-UpdateSSMAgent. Este documento actualizará el agente de Systems Management en la instancia.
f. Desplácese por el panel de Objetivos y haga clic en la casilla de verificación junto a su instancia de EC2 administrada.
Por último, desplácese hacia abajo y seleccione Ejecutar.
g. A continuación, verá la página que documenta su ejecución de comando y luego el éxito general en verde. Enhorabuena, acaba de ejecutar su primer comando remoto utilizando Systems Manager.
Paso 4: Ejecutar un script shell remoto
Ahora que su instancia de EC2 tiene el último Systems Manager Agent, puede actualizar los paquetes de la instancia EC2. En este paso, ejecutará un script shell mediante un Run Command.
a. En la sección Administración de nodos de la barra de navegación izquierda, seleccione Administración de flotas.
b. Seleccione el ID de nodo creado en el paso 2, MyEC2Tutorial, para abrir la página de detalles del nodo.
c. En la página de detalles del nodo, en el menú desplegable Acciones de nodo, seleccione Ejecutar comando de ejecución.
d. En la página Ejecutar un comando, haga clic en la barra de búsqueda y seleccione, Prefijo de nombre de documento, luego haga clic en Igual, luego escriba AWS-RunShellScript.
Ahora haga clic en el botón selector de la izquierda de AWS-RunShellScript.
e. Desplácese por el panel Parámetros de comando e inserte el siguiente comando en el cuadro de texto Comandos:
sudo yum update -y
f. Desplácese por el panel de Objetivos y haga clic en la casilla de verificación junto a su instancia de EC2 administrada.
Por último, desplácese hacia abajo y seleccione Ejecutar.
g. Si bien su script se ejecuta en forma remota en la instancia de EC2 administrada, el Estado general estará En progreso. Pronto, el Estado general se convertirá en Éxito. Cuando sea así, desplácese hasta el panel de Objetivos y resultados y haga clic en el ID de instancia de su instancia. Su ID de instancia será diferente al de la imagen.
h. Desde la página Salida: i-XX, haga clic en el encabezado del panel Salida para ver el resultado del comando de actualización desde la instancia.
Paso 5: Terminar los recursos
En este paso, terminará los recursos relacionados con Systems Manager y EC2. Importante: Terminar los recursos que no se están utilizando de forma activa reduce los costos y es una práctica recomendada. No terminar los recursos puede conllevar cargos.
a. Abra la consola de Amazon EC2 y desde el panel de navegación izquierdo bajo el encabezado Instancias, seleccione Instancias.
b. Seleccione la casilla de verificación de su instancia, elija Estado de la instancia y, a continuación, seleccione Terminar instancia. Esto terminará su instancia por completo.
Conclusión
Felicitaciones, ha creado una instancia administrada de manera exitosa y ejecutado un comando de manera remota utilizando AWS Systems Manager. Primero configuró los permisos correctos mediante IAM. Luego, lanzó una instancia Amazon que estaba previamente instalada con el agente Systems Manager. Finalmente, utilizó Run Command para actualizar el agente y realizar una actualización yum de manera remota.
Systems Manager es una buena opción cuando debe ver los datos de operación para grupos de recursos, automatizar acciones operativas, comprender y controlar el estado actual de sus recursos, administrar entornos híbridos y mantener la seguridad y el cumplimiento.