<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Diego Laguna</title>
    <description>The latest articles on DEV Community by Diego Laguna (@diego_laguna_17).</description>
    <link>https://dev.to/diego_laguna_17</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3973193%2Fc67ee44c-70bb-4b3a-99f0-87ae911c3d39.jpg</url>
      <title>DEV Community: Diego Laguna</title>
      <link>https://dev.to/diego_laguna_17</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/diego_laguna_17"/>
    <language>en</language>
    <item>
      <title>Cómo construimos GlucoTracker: Arquitectura monolítica en AWS paso a paso</title>
      <dc:creator>Diego Laguna</dc:creator>
      <pubDate>Mon, 08 Jun 2026 01:31:29 +0000</pubDate>
      <link>https://dev.to/diego_laguna_17/como-construimos-glucotracker-arquitectura-monolitica-en-aws-paso-a-paso-3599</link>
      <guid>https://dev.to/diego_laguna_17/como-construimos-glucotracker-arquitectura-monolitica-en-aws-paso-a-paso-3599</guid>
      <description>&lt;p&gt;Hoy quiero compartir con ustedes los detalles técnicos detrás del proyecto GlucoTracker.&lt;/p&gt;

&lt;p&gt;Cuando creamos aplicaciones desde cero, a menudo nos enfrentamos a la decisión de cómo y dónde desplegarlas. En este post, quiero llevarlos a través de este proyecto, desde el problema que buscaba resolver hasta por qué decidí apostar por una arquitectura tradicional en la nube con AWS, incluyendo costos, desafíos y aprendizajes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Por qué nació GlucoTracker?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En Bolivia, muchas personas con diabetes todavía controlan sus niveles de glucosa de forma manual. Esto significa que los datos están dispersos, a veces en papel, lo que hace casi imposible detectar a tiempo valores fuera de los rangos normales o compartir esta información rápidamente con un médico. Los sistemas tradicionales suelen carecer de escalabilidad y no ofrecen un almacenamiento seguro o en tiempo real.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es exactamente GlucoTracker?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GlucoTracker es un sistema de monitoreo de glucosa en la nube. Permite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Que los pacientes registren sus niveles de manera segura.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Que los médicos puedan visualizar el historial de sus pacientes en tiempo real.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generar alertas automáticas cuando los valores registrados están fuera de los rangos normales.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manejar distintos roles: Soporte, Paciente y Médico.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Arquitectura del sistema en AWS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para el MVP (Producto Mínimo Viable), el objetivo no era solo tener una aplicación que funcionara, sino validar una arquitectura en la nube que fuera segura y accesible. Optamos por una arquitectura monolítica contenerizada. En lugar de microservicios, decidimos mantener el control del entorno de ejecución.&lt;/p&gt;

&lt;p&gt;El flujo es bastante directo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;El usuario accede al Frontend (desarrollado en Angular) a través de su navegador.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;El Frontend se comunica vía HTTP con nuestro Backend (construido con Node.js y Express).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ambos, Frontend y Backend, viven dentro de contenedores orquestados con Docker Compose en una misma instancia virtual.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dependiendo de la petición, el Backend consulta la base de datos relacional o interactúa con nuestro almacenamiento de archivos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Servicios de AWS utilizados&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para garantizar la disponibilidad y separar el “estado” de la aplicación del “cómputo", utilizamos los siguientes servicios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon EC2 (t3.small)&lt;/strong&gt;: Utilizamos una instancia virtual para alojar los contenedores Docker del frontend y backend. Elegimos EC2 porque nos da un control total sobre el entorno y facilita mucho el despliegue gracias a Docker.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon RDS (PostgreSQL)&lt;/strong&gt;: Aquí guardamos usuarios, registros de glucosa y alertas. Separar la base de datos de la instancia EC2 garantiza que si el servidor web cae, los datos médicos siguen intactos y disponibles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon S3&lt;/strong&gt;: Lo usamos para guardar fotos de perfil de los usuarios y documentos sensibles de los médicos, como matrículas profesionales y carnets. En lugar de saturar el disco de la EC2, S3 nos da una durabilidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS IAM y Security Groups&lt;/strong&gt;: La capa de seguridad. A la instancia EC2 se le asignó un IAM Role que le da permisos estrictos (solo PutObject y DeleteObject) para interactuar con S3, evitando tener que quemar credenciales en el código. Además, la base de datos en RDS está protegida por un Security Group que solo acepta tráfico por el puerto 5432 proveniente exclusivamente de la EC2.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Dinero: Costos del sistema&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como desarrolladores, siempre nos asusta dejar un servicio prendido y amanecer con una factura de miles de dólares. Para este MVP en operación 24/7 (región N. Virginia), el costo estimado mensual es de $39.87 USD.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon RDS&lt;/strong&gt;: $32.23 USD/mes (instancia db.t4g.micro con 20GB SSD).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon EC2&lt;/strong&gt;: $7.52 USD/mes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon S3&lt;/strong&gt;: $0.12 USD/mes (estimando unos 5GB en la capa Standard).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estrategia de ahorro: Como estamos en fase de MVP y no requerimos alta disponibilidad extrema (High Availability), configuramos la base de datos RDS en modo Single-AZ. Esto reduce el costo del servicio de base de datos a la mitad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beneficios de desplegar en AWS de esta manera&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cero dolores de cabeza con el entorno: Al usar Docker en EC2, garantizamos que el código que corre en la máquina local de los desarrolladores es exactamente el mismo que corre en producción.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Independencia del estado: Si mañana decidimos destruir la instancia EC2 y levantar una nueva, no perdemos nada. La información crítica vive segura en RDS y los archivos médicos en S3.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Retos y aprendizajes (Trade-offs)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No todo fue un camino de rosas. Hubo decisiones difíciles que tomar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;De Supabase a RDS&lt;/strong&gt;: Al principio, el proyecto usaba Supabase, pero decidimos migrar todo a Amazon RDS con PostgreSQL. Tuvimos que invertir tiempo reescribiendo la lógica de conexión y los endpoints en el backend. A cambio, ganamos independencia tecnológica, control absoluto sobre el motor de base de datos y la capacidad de optimizar consultas SQL nativas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monolito vs Serverless&lt;/strong&gt;: Desplegar en contenedores EC2 nos dio costos fijos predecibles (sin sustos por picos de consumo) y mucho control. Sin embargo, el trade-off es que nuestra escalabilidad está acoplada. Si el tráfico del frontend se dispara, tendremos que escalar verticalmente toda la máquina EC2, en lugar de poder escalar servicios de forma independiente.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusión&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Construir GlucoTracker y llevarlo a AWS fue un ejercicio fantástico de arquitectura cloud tradicional. Comprobamos que no siempre necesitas la arquitectura más compleja o de moda para tener un sistema robusto, seguro y escalable.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>aws</category>
      <category>showdev</category>
      <category>spanish</category>
    </item>
  </channel>
</rss>
