En algún momento todo ingeniero de software se enfrenta a la tarea de depurar una aplicación en vivo en un servidor remoto. Si tu app corre en AWS ECS Fargate, entrar de forma segura en ese contenedor es posible aunque no siempre sea evidente. En Q2BSTUDIO, empresa especializada en aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad y servicios cloud aws y azure, ayudamos a clientes a resolver este tipo de desafíos y a implementar flujos de trabajo seguros y eficientes.
Resumen del escenario y preparación: Tenemos una aplicación Node.js desplegada en ECS Fargate dentro de una subred privada sin acceso SSH directo. Utilizaremos el inspector de Node.js y el reenvío de puertos protegido por SSM para conectar nuestro depurador local, por ejemplo VS Code, al proceso Node.js que corre dentro del contenedor.
Paso 1 Habilitar el inspector de Node.js Asegúrate de que el proceso Node.js de la tarea ECS arranque con el inspector activado. Puedes pasar la opción al comando node de esta forma node --inspect=127.0.0.1:9229 server.js o establecer la variable de entorno NODE_OPTIONS = --inspect=127.0.0.1:9229 En ECS es más cómodo usar la variable de entorno mediante la definición de la tarea que modificar la imagen. Esto evita tener que reconstruir el contenedor solo para depuración.
Paso 2 Habilitar ECS Exec y permisos SSM La tarea necesita permisos y la capacidad de ejecutar comandos. Adjunta la política arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore al rol de ejecución de la tarea. Activa Execute Command en el servicio con aws ecs update-service --cluster my-cluster --service my-service --enable-execute-command en la consola lo encontrarás bajo Troubleshooting Enable Execute Command.
Paso 3 Localizar la tarea en ejecución Lista las tareas con aws ecs list-tasks --cluster my-cluster y toma nota del task id que aparece al final del ARN.
Paso 4 Configurar reenvío de puertos vía SSM Ahora viene la parte práctica. Para iniciar el reenvío necesitas construir el target SSM con el formato ecs:cluster_task_runtimeid. Obtén el runtime id con aws ecs describe-tasks --cluster my-cluster --task task_arn --query tasks[].containers Busca el campo runtimeId dentro del JSON resultante, habrá uno por cada contenedor si la tarea tiene varios. Inicia la sesión de reenvío de puertos con aws ssm start-session --target ecs:my-cluster_taskid_runtimeid --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters host=[127.0.0.1],portNumber=[9229],localPortNumber=[9229] Esto abrirá localmente el puerto 9229 y lo redirigirá de forma segura al proceso Node.js dentro del contenedor. Nota práctica puedes reenviar a cualquier IP o hostname accesible desde la tarea ECS si tu servicio escucha en otra dirección.
Paso 5 Conectar el depurador de VS Code En tu archivo de configuración de lanzamiento de VS Code pon un perfil de tipo node para adjuntar con address localhost y puerto 9229. Asegúrate de alinear localRoot y remoteRoot para mapear fuentes locales con las rutas dentro del contenedor. Si no conoces remoteRoot ejecuta aws ecs execute-command --cluster my-cluster --task task_arn --interactive --command /bin/sh --container container_name para inspeccionar el sistema de archivos del contenedor.
Alternativas El depurador de Chrome en chrome colon slash slash inspect suele funcionar pero puede dar problemas con source maps. Nosotros en Q2BSTUDIO solemos priorizar la integración con IDEs y flujos reproducibles para producción.
Resumen rápido 1 Asegura que Node.js arranque con --inspect=127.0.0.1:9229 mediante NODE_OPTIONS 2 Da permisos SSM a la tarea 3 Activa Execute Command en el servicio 4 Obtén el task ARN con aws ecs list-tasks 5 Saca el runtimeId con aws ecs describe-tasks 6 Inicia el reenvío con aws ssm start-session y conecta el depurador a localhost 9229
Por qué confiar en Q2BSTUDIO Somos una empresa de desarrollo de software que ofrece soluciones a medida, integración de inteligencia artificial y servicios de ciberseguridad. Podemos ayudarte a diseñar pipelines seguros para depuración remota, optimizar despliegues en la nube y desplegar agentes IA o soluciones de inteligencia de negocio. Si necesitas apoyo para migrar o gestionar servicios cloud en AWS o Azure consulta nuestras opciones de consultoría y despliegue en servicios cloud AWS y Azure de Q2BSTUDIO y si buscas construir aplicaciones a medida visita nuestra sección de desarrollo de aplicaciones y software a medida. También ofrecemos servicios de inteligencia artificial para empresas, agentes IA, power bi e inteligencia de negocio y pruebas de ciberseguridad y pentesting para proteger tus sistemas.
Si quieres que te acompañemos en la implementación de este flujo o en auditorías de seguridad y optimización de despliegues en contenedores, ponte en contacto con Q2BSTUDIO y haremos un plan personalizado que combine nuestras capacidades en software a medida, inteligencia artificial y ciberseguridad para tu proyecto.