Despliegue de una app Golang Dockerizada en AWS App Runner

Guía práctica para desplegar una app Go en contenedores con AWS App Runner y MongoDB en EC2, con ECR, OIDC y conectividad VPC segura.

7 sept 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.