¿Puede DynamoDB almacenar imágenes?
Sí, pero solo pequeñas. DynamoDB puede almacenar imágenes como atributos Binary (B) codificados en base64, siempre que el Item entero se mantenga por debajo del límite de 400 KB. AWS recomienda guardar las imágenes más grandes en Amazon S3 y dejar en DynamoDB solo los metadatos del objeto y una referencia a S3, ya que 400 KB se quedan cortos para la mayoría de los archivos multimedia.
Cómo funciona el almacenamiento de imágenes pequeñas
Codifica la imagen en base64 y guárdala en un atributo Binary. DynamoDB cuenta la longitud en bytes en crudo para el tope de 400 KB por Item, así que una miniatura o un icono caben; una foto completa normalmente no.
El patrón recomendado
Para cualquier cosa mayor de 400 KB:
- Sube la imagen a Amazon S3.
- Guarda en DynamoDB su clave de S3, su tamaño, su tipo de contenido y demás metadatos.
- Lee los metadatos de DynamoDB y luego recupera el objeto de S3.
Ten en cuenta que DynamoDB y S3 no comparten transacciones, así que tu aplicación tiene que limpiar los objetos huérfanos cuando algo falla.
Lo que cuesta incrustarlas
Toma una subida por segundo y diez visualizaciones por segundo, bajo demanda en us-east-1, y pasa ambas formas por nuestra calculadora de precios:
| Al mes | Imagen de 380 KB incrustada | Puntero de 119 bytes |
|---|---|---|
| Escrituras | 624,15 $ | 1,64 $ |
| Lecturas (consistencia eventual) | 156,04 $ | 1,64 $ |
| Total de solicitudes | 780,19 $ | 3,29 $ |
El mismo tráfico cuesta 238 veces más, y todo lo provoca el redondeo de capacidad. Una unidad de escritura cubre 1 KB, así que la imagen factura 380 donde el puntero factura 1. Las lecturas redondean a 4 KB, así que cada lectura con consistencia eventual de la imagen cuesta 47,5 unidades de lectura frente a 0,5.
El almacenamiento se suma encima. Una subida de 380 KB por segundo añade 952 GB al mes, lo que son 238,09 $ a los 0,25 $ por GB-mes de DynamoDB o 21,90 $ a los $0.023 de S3 Standard, y las subidas del mes siguiente añaden otro tanto.
El Item puntero que describen esas cifras es este, y mide 119 bytes:
{
"pk": "IMG#2026-07-28#a1b2c3",
"s3Key": "uploads/2026/07/28/a1b2c3.jpg",
"contentType": "image/jpeg",
"bytes": 389120,
"width": 1920,
"height": 1080,
"uploadedAt": 1785283200
}Profundiza
Mira el tamaño máximo de Item y mide Items con la calculadora de tamaño de Item. Descarga DynoTable para inspeccionar atributos binarios.
Fuentes de precios
- Amazon DynamoDB pricing — tarifas de unidades de solicitud y de almacenamiento, sincronizadas en la calculadora desde la AWS Price List API.
- Amazon S3 pricing — almacenamiento S3 Standard, $0.023 por GB-mes para los primeros 50 TB en us-east-1 (leído de la Price List API el 2026-07-28).
Referencias
- Best practices for storing large items and attributes in DynamoDB — Amazon DynamoDB Developer Guide
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba.
Costeado el 2026-07-28 con nuestra propia calculadora de precios sobre las tarifas de us-east-1 que sincroniza desde la AWS Price List API. Entradas: bajo demanda, 1 escritura/segundo, 10 lecturas con consistencia eventual/segundo, 380 KB frente al Item de 119 bytes de arriba, capa gratuita desactivada.