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 |
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)