Recopila datos de invitado de las VMs de EC2 para la evaluación sin conexión


En este instructivo, se explica el proceso de descubrimiento y recopilación de datos en instancias de máquina virtual (VM) de EC2 que se usarán para la evaluación técnica sin conexión mediante la CLI del cliente de descubrimiento de Migration Center.

Objetivos

En este instructivo aprenderás realizar las siguientes tareas:

  • Descargar la CLI de mcdc para evaluar tus VMs de AWS EC2.
  • Realizar un descubrimiento de inventario de AWS EC2.
  • Recopilar información a nivel de invitado en todas las VMs de una región de EC2 con AWS Session Manager o SSH
  • Generar un informe de evaluación sin conexión.
  • (Avanzado) Modificar las secuencias de comandos según tus necesidades.
  • (Avanzado) Escribir una secuencia de comandos de organización desde cero.

Costos

En este instructivo, no se generan costos de Google Cloud.

Es poco probable que afecte tus costos de AWS.

Antes de comenzar

Los requisitos previos dependen de cómo te conectes a tus VMs de EC2.

Administrador de sesiones

  1. Prepara una máquina de Linux para descargar y ejecutar la CLI de mcdc. La máquina de Linux debe tener los siguientes requisitos mínimos:

    • Versiones 2.6.23 o posteriores de kernel de Linux
    • 4 GB de RAM y 10 GB de espacio en el disco
    • CLI de AWS instalada
  2. Asegúrate de que la CLI de AWS tenga los siguientes permisos:

    • Puede llamar a aws ssm describe-instance-information
    • Puede llamar a aws ssm start-session

SSH

  1. Prepara una máquina de Linux para descargar y ejecutar la CLI de mcdc. La máquina Linux debe cumplir los siguientes requisitos mínimos:

    • Versiones 2.6.23 o posteriores de kernel de Linux
    • 4 GB de RAM y 10 GB de espacio en el disco
    • CLI de AWS instalada
    • Conectividad de red a instancias de EC2 (posiblemente a través de un proxy)
  2. Asegúrate de que la CLI de AWS tenga los siguientes permisos:

Descarga la CLI de mcdc

  1. Conéctate a la máquina de Linux:
    ssh MACHINE_IP
    

    Reemplaza MACHINE_IP por la dirección IP de tu máquina Linux.

  2. Descarga la última versión de la CLI de mcdc y haz que sea ejecutable:
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
    
  3. Agrega la CLI de mcdc a tu ruta de shell:
    PATH=$PATH:`pwd`
    

Realiza un descubrimiento de inventario de AWS

  • Ejecuta el descubrimiento de inventario:

    ./mcdc discover aws -r REGION
    

    Reemplaza REGION por la región de tus VMs de EC2.

    La CLI de mcdc te solicita tu ID de clave de acceso y clave de acceso secreta.

    El resultado del comando es similar al siguiente:

    Collected 166 VMs
    [✓] Collection completed.
    

Realiza la detección de invitados

Puedes realizar el descubrimiento de invitados mediante Session Manager o SSH.

Administrador de sesiones

Este método usa Session Manager de AWS Systems Manager para realizar la recopilación de invitados en todas las VMs con el agente de SSM instalado. El agente SSM se instala de forma predeterminada en la mayoría de las AMI proporcionadas por Amazon y se puede instalar de forma manual en otras.

  1. Asegúrate de que todas las VMs tengan un rol de IAM que permita conectarse a través de Session Manager. Para obtener más información, consulta la documentación de AWS.

  2. Asegúrate de que todas las VMs que quieras recopilar estén activadas.

  3. Ejecuta el descubrimiento de invitados mediante la secuencia de comandos de recopilación de invitados SSM del repositorio de Migrate to Containers en GitHub.

    a. Descarga la secuencia de comandos:

     curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssm.sh
     chmod +x mcdc_collect_aws_guest_ssm.sh
    

    b. Ejecuta la secuencia de comandos y guarda el resultado en un archivo:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION
    

    Reemplaza REGION por la región de tus VMs de EC2.

    Todas las marcas se pasan directamente a aws ssm describe-instance-information. Para recopilar desde una VM específica, ejecuta el siguiente comando:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION --filters "Key=InstanceIds,Values=VM_ID"
    

    Reemplaza VM_ID por el ID de la VM.

    Si deseas obtener más información sobre todas las marcas permitidas para el comando describe-instance-information, consulta la documentación de AWS.

SSH

En este método, se usa SSH para realizar el descubrimiento de invitados en VMs de Linux. Se conecta a la dirección IP pública de cada VM. Sin embargo, debe ser sencillo modificar la secuencia de comandos. Por ejemplo, para conectarte a la dirección IP privada.

La secuencia de comandos usa la conexión de instancia de EC2 para la autenticación. La conexión de instancias solo está disponible en VMs de Amazon Linux y Ubuntu, y puede requerir instalación. Sin embargo, debe ser sencillo ajustar la secuencia de comandos para que use un método de autenticación alternativo, como la autenticación con contraseña mediante sshpass o una clave privada.

  1. Asegúrate de tener acceso de red a las VMs. Es posible que debas ajustar las reglas entrantes para tus grupos de seguridad o usar un proxy para conectarte.

  2. Asegúrate de que todas las VMs de las que deseas recopilar estén activadas.

  3. Ejecuta el descubrimiento de invitados mediante la secuencia de comandos de recopilación de invitado de SSH desde el repositorio de Migrate to Containers en GitHub.

    1. Descarga la secuencia de comandos:

      curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssh.sh
      chmod +x mcdc_collect_aws_guest_ssh.sh
      
    2. Ejecuta la secuencia de comandos y guarda el resultado en un archivo:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION
      

      Reemplaza REGION por la región de tus VMs de EC2.

      Cualquier marca llamada -a o --ssh-arg se pasa directamente a SSH. Para inhabilitar la autenticación estricta de la clave de host, ejecuta el siguiente comando:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o StrictHostKeyChecking=no'
      

      Todas las demás marcas se pasan directamente a aws ssh describe-instances. Para recopilar desde una VM específica, ejecuta el siguiente comando:

      ./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
      

      Reemplaza VM_ID por el ID de la VM.

      Para obtener más información sobre todas las marcas permitidas, consulta la documentación de AWS.

      Es posible usar un proxy para conectarse a una VM mediante la opción ProxyCommand de SSH. Por ejemplo, para usar un proxy socks5 existente en el puerto PROXY_PORT, ejecuta el siguiente comando:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o ProxyCommand=nc -X 5 -x 127.0.0.1:PROXY_PORT %h %p'
      

      Reemplaza PROXY_PORT por el número de puerto.

  4. Si ajustaste las reglas entrantes en el paso 1, considera revertir los cambios.

Genera un informe de evaluación sin conexión

  • Después de que se hayan recopilado todos los datos, podrás generar un informe HTML detallado:

    ./mcdc report --format html --full > REPORT_NAME.html
     

(Avanzado) Modifica las secuencias de comandos según tus necesidades

Es posible que ninguna de las secuencias de comandos se adapte exactamente a tus necesidades. Por ejemplo, es posible que no tengas instalado el agente SSM o la conexión de la instancia en algunas de tus VMs.

En esos casos, por lo general, tienes una forma estándar de conectarte a las máquinas. Te recomendamos escribir secuencias de comandos que te permitan organizar estos métodos a gran escala. En algunos casos, es posible que debas escribir estas secuencias de comandos desde cero, pero, en otros, es posible modificar las secuencias de comandos existentes.

Por ejemplo, puedes modificar la secuencia de comandos de recopilación de SSH para usar direcciones IP privadas en lugar de públicas.

Las secuencias de comandos están muy comentadas para que sean fáciles de comprender.

(Avanzado) Escribe una secuencia de comandos de organización desde cero

Para organizar el descubrimiento de invitados y la recopilación de datos a gran escala, haz lo siguiente:

  1. Identifica todas las VMs de las que deseas recopilar.
  2. Sube la secuencia de comandos de la colección de invitados a cada VM. Las VMs de Linux y Windows requieren diferentes secuencias de comandos de recopilación de invitados.
  3. Ejecuta la secuencia de comandos de recopilación de invitados en cada VM.
  4. Descarga el artefacto creado en cada VM.
  5. Importa la secuencia de comandos de recopilación de invitados descargada en la CLI de mcdc.

Si bien es posible que a menudo debas escribir mucho desde cero, hay algunas piezas fundamentales en las secuencias de comandos de ejemplo que pueden ayudarte con algunas de estas tareas. Por ejemplo:

¿Qué sigue?