Migración de AWS Lambda a Cloudflare Workers: Reducción del 95% en Costos de Egresos Serverless

A medida que una aplicación construida sobre arquitectura serverless escala, la sorpresa más desagradable en la factura mensual suele ser el costo de transferencia de datos salientes (Egress Fee). Mientras que la potencia de cálculo y el número de ejecuciones se mantienen dentro de límites predecibles, las tarifas de egreso generadas al enviar respuestas API a los usuarios pueden dispararse exponencialmente.
Nuestra infraestructura backend, impulsada originalmente por AWS Lambda y Amazon API Gateway, alcanzó un volumen de transferencia mensual superior a los 5TB. En ese punto, más del 75% de la factura serverless correspondía exclusivamente a cargos por transferencia de salida. Tras migrar a Cloudflare Workers en el Edge, logramos reducir los costos de egreso en más de un 95% y recortar las latencias de arranque en frío (cold start) en un 80%.
En este artículo explicamos los motivos técnicos de la migración, la comparación detallada de precios, la refactorización de código Node.js a estándares V8 Isolate y la gestión de conexiones a bases de datos.
Puntos Clave
- Sin Costos de Egreso (Zero Egress): AWS cobra $0.09 por GB por la salida de datos a Internet, mientras que Cloudflare Workers ofrece $0 en tarifas de egreso para respuestas del worker.
- Sin Cold Starts: Frente a los 200ms–800ms de cold start en AWS Lambda por VPC y contenedores, Cloudflare Workers se ejecuta en V8 Isolates con arranques en frío inferiores a 5ms.
- Refactorización de Código: Los handlers basados en módulos nativos de Node.js (
fs,net) deben adaptarse a Web Standard APIs (Fetch API,Streams) o frameworks ligeros como Hono.- Conexión a Bases de Datos: El acceso a PostgreSQL/MySQL desde el Edge requiere soluciones de connection pooling (Cloudflare Hyperdrive, Supabase, Neon) para evitar la saturación de conexiones.
1. El detonante: Las tarifas ocultas de egreso en AWS
Para exponer funciones AWS Lambda como APIs HTTP públicas, es necesario colocar Amazon API Gateway o un Application Load Balancer (ALB) al frente. La estructura de cobro en AWS incluye:
- Cómputo Lambda: Memoria (GB) × Tiempo (segundos) + Solicitudes
- Solicitudes API Gateway: $1.00 por millón en HTTP API
- AWS Data Transfer Out (Egress): $0.09 por GB enviado a Internet
A medida que el tamaño de los datos aumenta, el costo de egreso supera ampliamente el costo de cómputo.
Comparativa de Costos (5TB de Egreso Mensual)
| Categoría | AWS (Lambda + API Gateway HTTP API) | Cloudflare Workers (Plan Paid) | Ahorro |
|---|---|---|---|
| Costo Base del Plan | $0.00 base (Pago por uso) | $5.00/mes (Incluye 10M solicitudes) | - |
| Costo por Solicitudes | $10.00 (10M × $1.00/1M) | $0.00 (Incluido en plan base) | 100% |
| Costo de Cómputo / CPU | ~$18.50 (256MB, 200ms ejec.) | $0.00 (30M ms CPU incluidos) | 100% |
| Tarifa de Egreso de Red | $450.00 (5,000GB × $0.09) | $0.00 (Egreso de respuestas gratis) | 100% |
| Total Factura Mensual | $478.50 | $5.00 | 98.9% Ahorro |
2. Refactorización de Código: De AWS Lambda a Cloudflare Workers
Ejemplo de handler refactorizado usando el framework Hono:
import { Hono } from 'hono';
import { cors } from 'hono/cors';
type Bindings = { API_KEY: string; };
const app = new Hono<{ Bindings: Bindings }>();
app.use('*', cors());
app.post('/api/process', async (c) => {
const userId = c.req.query('userId');
return c.json({
message: "Success",
userId,
workerRegion: c.req.raw.cf?.colo || 'UNKNOWN'
});
});
export default app;
3. Optimización de Base de Datos con Cloudflare Hyperdrive
Uso de Cloudflare Hyperdrive para acelerar y agrupar conexiones SQL desde el Edge:
import { Client } from 'pg';
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
await client.connect();
const { rows } = await client.query('SELECT * FROM users LIMIT 10');
await client.end();
return Response.json(rows);
}
};
Conclusión
Migrar a Cloudflare Workers elimina por completo los costos de egreso en las respuestas HTTP, reduciendo la factura serverless en más de un 95% al tiempo que mejora la latencia global del servicio.