General

Rekognition — Control de Costos

Cada llamada marcada con 💰 se cobra por imagen o por cara procesada.

Rekognition — Control de Costos

Llamadas de pago actuales (Nov 2026)

Cada llamada marcada con 💰 se cobra por imagen o por cara procesada.
Todas están logueadas con 💰 REKOGNITION_PAID en el log del backend.

Por cada foto subida (indexFacesInPhoto)

Llamada Costo Estado
DetectFaces 💰 $0.001/img ELIMINADA — IndexFaces ya detecta y devuelve bbox
IndexFaces 💰 $0.001/img Necesaria — indexa las caras en la colección
SearchFaces × N caras 💰 $0.001/búsqueda Necesaria — busca similares para deduplicar personas

Costo por foto (actual): 1 + N llamadas (N = caras detectadas)

  • Si es la primera foto del evento: solo 1 llamada (se salta SearchFaces, no puede haber similares)
  • Foto con 1 cara: 2 llamadas
  • Foto con 3 caras: 4 llamadas

Por búsqueda manual del usuario (/faces/search)

Llamada Costo Trigger
SearchFacesByImage 💰 $0.001/búsqueda Usuario sube foto para buscarse (find-me)
SearchFacesByImage 💰 $0.001/búsqueda Búsqueda por imagen desde el admin

Por consulta de fotos de una persona (/faces/search/by-face)

Llamada Costo Trigger
SearchFaces 💰 $0.001/búsqueda Usuario o admin busca fotos por faceId

Ocasionales (gratis)

Llamada Trigger
CreateCollection Al activar face recognition en evento
DeleteCollection Al desactivar o borrar evento

Optimizaciones implementadas

✅ Eliminado DetectFaces redundante (Nov 2026)

Ahorra 1 llamada por cada foto subida. IndexFaces devuelve bounding boxes en FaceRecord.face().boundingBox().

✅ Skip SearchFaces en la primera foto (Nov 2026)

Si totalFacesIndexed - indexedFaces.size() == 0, no hay caras previas posibles. Ahorra N llamadas en la primera foto de cada evento.

✅ Sin llamadas extra desde AsyncMediaProcessingService (Nov 2026)

Los similarsByFaceId vienen del FaceIndexResult de indexFacesInPhoto, sin llamadas adicionales.


Optimizaciones pendientes

1. Limitar SearchFaces a eventos con muchas caras 🔧 MEDIO

Si el evento tiene < 2 fotos, la probabilidad de match es muy baja. Configurar un umbral mínimo de caras indexadas antes de hacer SearchFaces.

Ahorro potencial: evita SearchFaces en los primeros uploads de eventos pequeños.

2. Cachear personId en by-face 🔧 MEDIO

/faces/search/by-face/{faceId} llama SearchFaces cada vez. Si el personId ya está en BD, devolver las fotos de ese personId directamente sin ir a Rekognition.

Ahorro: 1 llamada por cada click en una cara desde el visor.


Precios AWS Rekognition (referencia)

  • IndexFaces: $1.00 por 1,000 imágenes
  • SearchFaces / SearchFacesByImage: $1.00 por 1,000 búsquedas
  • Primeras 5,000 llamadas/mes son gratis (Free Tier)

Fuente: https://aws.amazon.com/rekognition/pricing/