Podrías estar pensando, ¿Quién despliega una base de datos en una subnet pública? Aún peor, fue desplegada en la VPC pública default de AWS con el acceso público habilitado, esto es lo que pasa cuando los servicios son desplegados solo porque sí, sin pensar en la implementación, sino solo en los requerimientos del negocio.

Al principio fue un poco complejo simplemente cambiar el acceso público a deshabilitado, ya que había algunas herramientas externas de análisis de datos que estaban extrayendo información de la base de datos cada pocas horas, la primera vez que lo intenté, terminé en una llamada con el CTO y el equipo de Análisis de Datos preguntándome por qué deshabilité el acceso público. Respuesta simple - Seguridad.

Durante la llamada, estaba tratando de entender por qué requerían acceder a la base de datos de esa manera y era simplemente porque fue implementado de esa manera, no estaban al tanto de los problemas de seguridad y tampoco había documentación sobre esto, restablecimos el acceso público para que la replicación continuara.

Después de la llamada, comencé a revisar nuestra infraestructura para crear un mapa de ella, nuestra nueva infraestructura fue creada usando IaC y básicamente creamos toda la configuración de red, VPCs, Subredes, NAT gateways y demás. Pero los servicios legacy estaban en la antigua VPC pública default causando que el tráfico de las apps pasara a través de los nat gateways, luego a través de internet y finalmente llegando a la base de datos.

Además del problema de seguridad, estábamos pagando por ancho de banda innecesariamente y probablemente también estábamos teniendo latencia debido a esto. Para hacer la historia corta, estábamos pagando alrededor de $1,226.78 por costos de ancho de banda cada mes, originado como transferencia de datos saliente y también por GB Procesado por los NAT Gateways .

Aquí un ejemplo de nuestra facturación con respecto al ancho de banda:

Costos de transferencia de datos

Costos de NAT gateways por GB

Para arreglar esto, obviamente necesitábamos mover la base de datos a la nueva VPC y dentro de una subnet privada, pero también desplegar un nuevo servicio para manejar las conexiones desde las herramientas externas de Análisis de Datos, seguramente hablaremos de esto en otro post que está en la lista. Mientras tanto, enfoquémonos en los números después de hacer los cambios:

Costos de transferencia de datos después de mover la base de datos a la subnet privada

Costos de NAT Gateways después de mover la base de datos a la subnet privada

En resumen, pudimos reducir nuestra facturación mensual de 1,226.78 a 697.61 ahorrando más del 40% mientras aumentamos la seguridad y estandarizamos la infraestructura usando IaC. Para hacerlo más simple, redondearé los números en la siguiente tabla:

Gastos Mensuales Antes Gastos Mensuales Después Ahorros Ahorros Anuales
$1,200 $690 $510 $6,120

La empresa estuvo pagando por esto durante mucho tiempo y fue fácilmente prevenido planificando cómo querían acceder a los datos, no puedo quejarme de lo que hicieron porque al final fue realmente divertido para mí y ahora puedo publicarlo.