
Asteroides en la Nube: No son alucinaciones, es astrofísica: enseñándole a la IA a leer a la NASA.
¿Qué pasa cuando la IA procesa datos de la NASA y detecta un asteroide del 2011 en el 2003? La arquitectura del monitor de defensa planetaria con Python, AWS Lambda y function calling.
Todo comenzó hace una semana en un evento de mi comunidad, DevBarrio, donde el reto era preparar una charla. En lugar de limitarme a hablar, pensé: ¿por qué no construir algo en vivo? Así nació la idea de crear un sistema para visualizar qué tan cerca han pasado los asteroides de la Tierra. Para lograrlo, decidí combinar inteligencia artificial con los datos y boletines oficiales de la NASA.
El proyecto llamó la atención de Roberto Flores Segundo, líder de la comunidad AWS UG Playa Vicente. Yo había sido parte de su programa De Cero a Cloud, aunque ya sumaba un año aprendiendo sobre AWS asistiendo a charlas presenciales en CDMX con comunidades como Los Ajolotes, quienes me dieron la oportunidad de impartir mi primera charla sobre Amazon Q. Sin embargo, siempre existía ese temor latente de tocar la consola y equivocarme. Decidí que la mejor forma de romper ese miedo era con la práctica, y esta charla en la comunidad de Roberto se convirtió en la oportunidad perfecta para dar el salto construyendo.
Entonces cuando empecé a usar la consola dije el cielo es el límite.
Aprendamos un poco de Astrofísica antes de empezar.
¿Qué pasa cuando le pides a un modelo de IA que analice la base de datos de la NASA y te arroja un evento aparentemente imposible: un asteroide descubierto en 2011 pasando cerca de la Tierra en 2003?
Al arrancar el desarrollo, lo primero que se me ocurrió probar fue algo personal: consultar si el día de mi nacimiento había pasado algún asteroide cerca de la Tierra o si casi vivimos el fin del mundo. Para mi sorpresa, el sistema arrojó que un asteroide catalogado como "potencialmente peligroso" había estado cerca de nuestro planeta... pero al revisar los detalles, ¡marcaba que fue descubierto en 2011!
Mi primer susto fue pensar que la inteligencia artificial estaba alucinando. Sin embargo, no era un fallo: el asteroide realmente pasó cerca en 2003. Lo que ocurrió es que la NASA, al descubrirlo años después, calculó matemáticamente su trayectoria histórica hacia atrás. Además, investigando a fondo entendí mejor la etiqueta: la clasificación PHA (Potentially Hazardous Asteroid) no significa un impacto inminente, sino que se basa en parámetros como su tamaño y la cercanía mínima teórica a la órbita terrestre. No estábamos ante el apocalipsis, sino ante pura astrofísica bien interpretada.

Vista de asteroide que paso cerca en el año 2003.
¿Cómo se mide la distancia lunar?
Si les digo que un asteroide pasó a 5 millones de kilómetros, suena lejanísimo, pero en el espacio eso es estar al lado. Por eso los astrónomos usan la Distancia Lunar (LD): tomamos la distancia a la Luna como regla de medir.
Trabajar con distancias espaciales en kilómetros puede ser poco intuitivo cuando manejamos datos de la NASA. Aunque la Luna está a unos 384,400 km de la Tierra, las APIs de monitoreo planetario suelen estandarizar las trayectorias en Distancias Lunares (LD), tomando esa separación promedio como unidad de medida (1.0 LD).
Esta escala permite categorizar el riesgo de aproximación con reglas claras:
- 0.09 LD: Zona de satélites GEO (órbita terrestre alta).
- 1.0 LD: Órbita lunar.
- 19.5 LD: Límite de alerta y seguimiento prioritario de la NASA.
- 20 LD en adelante: Zona de tránsito seguro en el espacio profundo.

Distancias Lunares.
PHA no significa impacto, significa vigilancia.
Cuando el modelo me arrojó que el asteroide era un PHA (Potentially Hazardous Asteroid), mi primera reacción fue pensar en una catástrofe de película. Sin embargo, en el lenguaje de la NASA la palabra potencialmente tiene un peso estrictamente estadístico y orbital.
Un asteroide se cataloga como PHA únicamente si cumple dos condiciones: medir más de 140 metros de diámetro (el tamaño aproximado de un estadio de fútbol) y tener una trayectoria que cruce la órbita de la Tierra a menos de 19.5 distancias lunares (0.05 UA). No predice un choque, sino la necesidad de mantenerlo bajo vigilancia activa dentro del radar de defensa planetaria.

Explicación visual del PHA.
¿Y si estamos en el Builder Center que hiciste con AWS?
Amazon CloudFront (Distribución y Punto Único de Entrada)
Rol: Es la CDN global que recibe todas las peticiones HTTPS del usuario final desde el navegador.
Por qué se implementó así: Actúa como fachada unificada para resolver dos necesidades clave bajo un mismo dominio:
Enrutamiento hacia el frontend: Entrega la interfaz de usuario almacenada en S3 con latencia mínima gracias a sus puntos de presencia (Edge Locations).
Enrutamiento hacia la API (/api/): Desvía las llamadas dinámicas hacia Amazon API Gateway, eliminando problemas típicos de CORS y permitiendo gestionar políticas de caché y seguridad centralizadas.
Amazon S3 (Alojamiento del Frontend Estático)
Rol: Almacén de objetos que hospeda los archivos estáticos de la aplicación (HTML, JavaScript, bundles de React, CSS y assets).
Buenas prácticas aplicadas: Bucket Privado: No tiene acceso público a Internet, reduciendo la superficie de ataque a cero.
Origin Access Control (OAC): La entrega de contenido se restringe exclusivamente a CloudFront mediante OAC, garantizando que nadie pueda evadir la CDN ni leer directamente del bucket.
Amazon API Gateway (asteroid-sentinel-api)
Rol: La puerta de enlace REST/HTTP que expone los endpoints de backend hacia los clientes autorizados.
Función en el sistema: Recibe las peticiones filtradas por la regla /api/ de CloudFront y las transforma en eventos de invocación para la función Lambda.
Desacopla la lógica de negocio del cliente, permitiendo aplicar limitación de tráfico (throttling), validaciones preliminares y métricas de entrada hacia CloudWatch.
AWS Lambda (asteroid-sentinel).
El Núcleo de Cómputo.
Rol: Computación sin servidor (serverless compute) en Python donde reside la lógica principal de orquestación y procesamiento orbital.
Qué hace exactamente: Consulta la API de la NASA (api.nasa.gov): Consume los datos oficiales de NeoWs (Near Earth Object Web Service) en milisegundos (~377 ms).
Orquesta la IA (Function Calling): Envía la información estructurada al modelo de IA, permitiéndole interpretar variables críticas (magnitud absoluta $H$, distancias lunares y clasificación PHA) sin que el LLM sufra alucinaciones sobre las trayectorias.
Observabilidad Avanzada Integrada:
OpenTelemetry Layer: Recopila telemetría estandarizada de las peticiones salientes y tiempos de ejecución.
AWS X-Ray Tracing: Permite realizar un trazado distribuido paso a paso para medir cuánto tiempo tarda la llamada externa a la NASA vs. el procesamiento del modelo de IA.

Cada línea verde es un span de tiempo que muestra cuánto tardó cada parte de la invocación.

Representación visual del grafo de servicios generado por AWS X-Ray a partir de los datos de trazas. Muestra los nodos de cada servicio participante y las conexiones entre ellos, con indicadores de latencia, tasa de solicitudes y estado de salud.
Servicios Externos (Integraciones Clave)NASA API (api.nasa.gov): Fuente fidedigna de telemetría y mecánica orbital que provee parámetros exactos de aproximación y fechas históricas de detección.
Inteligencia Artificial (Análisis Inteligente): Modelo conectado mediante function calling para procesar consultas en lenguaje natural, evaluar condiciones de riesgo y explicar los datos astronómicos de forma comprensible.
Amazon CloudWatch (Monitoreo y Operabilidad)
Rol: Torre de control de la infraestructura.
Métricas y Visibilidad: Ingesta centralizada de logs de ejecución de Lambda. Monitoreo de latencia, tasas de error (4xx/5xx) y concurrencia.

Entidad del grafo de servicios de AWS X-Ray que representa un componente individual de una aplicación distribuida. Cada nodo agrupa las trazas de un servicio específico y expone métricas agregadas de rendimiento como latencia promedio, tasa de solicitudes por minuto y tasa de errores o fallas.
Integración con X-Ray y CloudWatch ServiceLens para visualizar el mapa de dependencias y tiempos de respuesta de los servicios externos en tiempo real.
Flujo de Datos de Extremo a Extremo (TL;DR) El usuario ingresa al navegador vía HTTPS.
CloudFront sirve la SPA desde el bucket privado de S3 vía OAC. Al consultar una fecha o asteroide, la petición /api/* viaja a API Gateway.
API Gateway dispara AWS Lambda. Lambda realiza las consultas paralelas a la API de la NASA y procesa el contexto con la IA. Toda la telemetría, logs y trazas se envían automáticamente a CloudWatch mediante la capa de OpenTelemetry y X-Ray.

Identificador único de 128 bits asignado por AWS X-Ray a cada solicitud rastreada en el momento de su inicio. Su estructura se compone de tres segmentos: un número de versión (actualmente "1"), una marca de tiempo Unix codificada en hexadecimal que indica el momento de creación de la traza, y un identificador aleatorio de 96 bits que garantiza su unicidad global. El Trace ID permite correlacionar todos los segmentos, subsegmentos y registros de Amazon CloudWatch Logs generados durante el ciclo de vida completo de una solicitud a través de múltiples servicios distribuidos.

Diagrama de conexión.
Aprendizajes Clave.
- La IA necesita un ancla en la realidad (Grounding): Los LLMs no reemplazan a la ciencia exacta. Integrar Function Calling con endpoints oficiales como la API de la NASA evita alucinaciones y convierte al modelo en un copiloto analítico capaz de interpretar telemetría compleja en lenguaje claro.
- La astrofísica requiere contexto: Entender qué significa realmente un PHA (Potentially Hazardous Asteroid) y cómo la NASA calcula órbitas retrospectivas nos enseña que un resultado contraintuitivo no siempre es un bug del modelo, sino física orbital aplicada.
- Serverless reduce la fricción: Combinar CloudFront, S3, API Gateway y Lambda permite pasar de una idea loca en una libreta a un monitor global seguro, escalable y observable sin pagar un centavo de infraestructura ociosa.
- La mejor forma de aprender es ensuciándose las manos: Asistir a charlas y leer documentación es el primer paso, pero el verdadero clic con la nube ocurre cuando entras a la consola, configuras tus recursos, despliegas código y resuelves problemas reales.

Captura real de la aplicación web, mostrando resultados del 2003.
Conclusión
Este proyecto comenzó con una duda curiosa sobre el día de mi nacimiento y el temor constante de equivocarme al tocar la consola de AWS. Terminarlo me demostró dos cosas: primero, que el miedo a fallar en la nube solo se quita construyendo; y segundo, que el ecosistema de comunidades tecnológicas como DevBarrio y AWS User Groups es el mejor catalizador para atreverse a dar ese salto.
Hoy el monitor no solo rastrea rocas espaciales a millones de kilómetros: representa el punto exacto donde la curiosidad astronómica, la inteligencia artificial y la computación en la nube se encuentran para resolver problemas fascinantes.
Outro - Inspirado en la canción de Outro de M83
Enlace del sistema: Outro | NASA Asteroid Sentinel 3D
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article