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
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
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
- Puede llamar a
SSH
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)
Asegúrate de que la CLI de AWS tenga los siguientes permisos:
- Puede llamar a
aws ec2 describe-instances
- Instance Connect
- Puede llamar a
Descarga la CLI de mcdc
- Conéctate a la máquina de Linux:
ssh MACHINE_IP
Reemplaza MACHINE_IP por la dirección IP de tu máquina Linux.
- 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
- 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.
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.
Asegúrate de que todas las VMs que quieras recopilar estén activadas.
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.
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.
Asegúrate de que todas las VMs de las que deseas recopilar estén activadas.
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.
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
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.
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:
- Identifica todas las VMs de las que deseas recopilar.
- 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.
- Ejecuta la secuencia de comandos de recopilación de invitados en cada VM.
- Descarga el artefacto creado en cada VM.
- 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:
- Itera en todas las VMs de EC2.
- Descarga las secuencias de comandos de recopilación de invitados de Windows y Linux.
- A veces, no podrás subir ni descargar archivos. En esos casos, es posible incluir las secuencias de comandos de recopilación en los comandos enviados y escribir los artefactos codificados en Base64 en stdout. La secuencia de comandos de recopilación de SSM puede ser un ejemplo útil de cómo hacerlo.
- Importa el artefacto recopilado a la CLI de
mcdc
.
¿Qué sigue?
- Obtén más información sobre la CLI de
mcdc
. - Revisa las muestras de secuencias de comandos.
- Para obtener información sobre cómo migrar una aplicación más compleja, consulta el instructivo sobre cómo migrar una aplicación de framework de Spring disponible en el repositorio de GitHub de Migrate to Containers.
- Obtén más información sobre las prácticas recomendadas de planificación.