AWS App Runner es un servicio totalmente gestionado de AWS para ejecutar aplicaciones en contenedores y APIs sin preocuparse por la infraestructura. En esta guía práctica te mostramos cómo desplegar una app de Golang dockerizada, que utiliza MongoDB alojado en una instancia EC2, y publicarla con App Runner. Además, añadimos recomendaciones de arquitectura, seguridad y buenas prácticas en la nube. En Q2BSTUDIO desarrollamos aplicaciones a medida y software a medida, integramos inteligencia artificial, reforzamos la ciberseguridad y optimizamos entornos cloud con servicios cloud aws y azure para que tu negocio escale con fiabilidad y control. Si quieres apoyo experto, podemos acompañarte de principio a fin con un enfoque end to end.
Resumen de la solución: construir y publicar la imagen Docker en Amazon ECR mediante GitHub Actions autenticado con OIDC, preparar MongoDB en EC2 con autenticación, y crear el servicio de App Runner conectado por VPC para que la aplicación acceda a la base de datos por red privada.
Repositorio del proyecto: clona el código de ejemplo de tareas en GitHub en tu equipo local desde el repositorio tasky. El proyecto ya incluye un Dockerfile para compilar la imagen de la app de Golang.
Pipeline de GitHub Actions y publicación en ECR: define un workflow que al hacer push en la rama principal haga lo siguiente: 1 checkout del repositorio 2 asunción de credenciales temporales de AWS con OIDC 3 login en ECR 4 build y push de la imagen con la etiqueta latest a tu repositorio de ECR. Variables típicas a parametrizar: región de AWS, nombre del repositorio en ECR, id de cuenta y nombre del rol que asumirá GitHub Actions.
Autenticación OIDC en AWS para GitHub Actions: AWS recomienda OIDC frente a claves de acceso de larga duración. Pasos clave: 1 crear el proveedor OIDC de GitHub con la URL token.actions.githubusercontent.com, el cliente sts.amazonaws.com y el huella certificada pública correspondiente 2 crear el rol de IAM para GitHub Actions con política de confianza que permita sts AssumeRoleWithWebIdentity desde el proveedor OIDC y restrinja el subject al repositorio y rama concretos 3 adjuntar una política que permita autenticar en ECR y realizar acciones de push y pull. Con esto, el runner obtiene credenciales temporales seguras sin exponer secretos.
Verificación en ECR: tras hacer push a la rama configurada, el workflow construirá y publicará la imagen en tu repositorio ECR. Comprueba en la consola de ECR que la imagen con etiqueta latest aparece correctamente.
Instalación de MongoDB en EC2: lanza una instancia Ubuntu t3.micro. En el grupo de seguridad, habilita el puerto TCP 27017 únicamente desde el conector de VPC de App Runner o desde rangos privados de tu VPC. Evita abrir 0.0.0.0 salvo en pruebas muy controladas. Instala MongoDB 7 realizando estos pasos en la terminal de la instancia: 1 importar la clave pública de MongoDB 2 añadir el repositorio de MongoDB para tu versión de Ubuntu 3 ejecutar apt update e instalar el paquete mongodb-org 4 iniciar y habilitar el servicio mongod con systemctl y verificar el estado.
Creación de usuario administrador y autenticación: con mongosh, cambia a la base admin y crea un usuario administrador con una contraseña robusta y roles userAdminAnyDatabase y readWriteAnyDatabase. A continuación habilita la autenticación en el archivo de configuración mongod.conf añadiendo security con authorization en enabled. Reinicia el servicio mongod. Para el acceso de red, ajusta net bindIp para permitir tráfico desde la red privada de tu VPC. Lo más seguro es mantener la base de datos accesible solo por IPs privadas y controladas por grupos de seguridad.
Buenas prácticas de seguridad: usa contraseñas fuertes y rotación, restringe 27017 a orígenes mínimos, desactiva el acceso público, y segmenta redes. Para entornos corporativos, considera VPC endpoints, salto mediante bastion, cifrado en tránsito y reposo, y auditoría de logs. Si necesitas apoyo en ciberseguridad y pentesting, nuestro equipo puede ayudarte a fortalecer cada capa.
Creación del servicio en AWS App Runner: 1 crea el servicio desde imagen de contenedor en ECR 2 define variables de entorno, por ejemplo MONGODB_URI con el host privado de la instancia EC2, puerto 27017, usuario y contraseña del admin o del usuario de aplicación, y el puerto de escucha de la app de Golang expuesto en 8080 3 en Networking selecciona Custom VPC para crear o usar un VPC Connector que permita a App Runner salir hacia las subredes privadas donde reside la EC2 con MongoDB 4 revisa y lanza el despliegue. Cuando el estado pase a Running, copia el dominio por defecto de App Runner y visita la aplicación en el navegador.
Pruebas funcionales: regístrate en la app y crea tareas. Los datos deben persistir en MongoDB. Verifica que el escalado automático de App Runner responde a la carga y que los logs de la aplicación y del servicio no muestran errores de conexión a la base de datos.
Optimización y costes: App Runner gestiona escalado y actualizaciones con mínimos ajustes, ideal para equipos que desean centrarse en desarrollo de aplicaciones a medida. Controla el tamaño de la imagen Docker, activa health checks, y configura límites de CPU y memoria acordes. Para MongoDB, considera moverla a un servicio gestionado compatible si necesitas mayor disponibilidad o réplicas, o bien automatizar despliegues con Terraform para reproducibilidad.
Limpieza de recursos: elimina la instancia EC2 si ya no la necesitas, borra el servicio de App Runner y si procede la imagen en ECR para evitar costes. Revisa el VPC Connector y otros artefactos creados durante la prueba.
Cómo te ayuda Q2BSTUDIO: diseñamos y operamos plataformas cloud resilientes con servicios cloud aws y azure, desarrollamos aplicaciones a medida y software a medida, integramos inteligencia artificial e incluso agentes IA en tus flujos de negocio y reforzamos la ciberseguridad con un enfoque integral. Descubre cómo aceleramos tus proyectos en la nube visitando nuestro servicio de servicios cloud aws y azure o consulta cómo construimos productos robustos y escalables en desarrollo de aplicaciones a medida. También trabajamos con inteligencia de negocio y power bi, servicios inteligencia de negocio, y frameworks de ia para empresas para transformar datos en decisiones.
Conclusión: con App Runner, ECR y un conector VPC, puedes llevar una app de Golang en contenedor a producción de forma rápida y segura, conectándola a MongoDB en EC2 por red privada. Esta arquitectura simplifica el despliegue continuo con GitHub Actions y OIDC, y sienta las bases para crecer con observabilidad, ciberseguridad y automatización.