O DynamoDB pode armazenar imagens?
Sim, mas só as pequenas. O DynamoDB consegue armazenar imagens como atributos Binary (B) codificados em base64, desde que o item inteiro fique abaixo do limite de 400 KB. A AWS recomenda guardar imagens maiores no Amazon S3 e manter no DynamoDB apenas os metadados do objeto e uma referência ao S3, já que 400 KB é pouco demais para a maioria dos arquivos de mídia.
Como funciona o armazenamento de imagens pequenas
Codifique a imagem em base64 e guarde-a em um atributo Binary. O DynamoDB conta o comprimento em bytes brutos para o limite de 400 KB do item, então uma miniatura ou um ícone cabe; uma foto inteira normalmente não.
O padrão recomendado
Para qualquer coisa maior que 400 KB:
- Faça upload da imagem para o Amazon S3.
- Guarde no DynamoDB a chave S3, o tamanho, o content type e os demais metadados.
- Leia os metadados no DynamoDB e depois busque o objeto no S3.
Repare que o DynamoDB e o S3 não compartilham transações, então o seu app precisa limpar objetos órfãos em caso de falha.
Quanto custa embutir a imagem
Pegue um upload por segundo e dez visualizações por segundo, on-demand em us-east-1, e rode as duas formas na nossa calculadora de preços:
| Por mês | Imagem de 380 KB embutida | Ponteiro de 119 bytes |
|---|---|---|
| Escritas | US$624,15 | US$1,64 |
| Leituras (eventualmente consistentes) | US$156,04 | US$1,64 |
| Total de requisições | US$780,19 | US$3,29 |
O mesmo tráfego custa 238 vezes mais, e o arredondamento de capacidade responde por tudo isso. Uma unidade de escrita cobre 1 KB, então a imagem cobra 380 delas onde o ponteiro cobra 1. As leituras arredondam para 4 KB, então cada leitura eventualmente consistente da imagem custa 47,5 unidades de leitura contra 0,5.
O armazenamento se acumula por cima. Um upload de 380 KB por segundo adiciona 952 GB por mês, o que dá US$238,09 aos US$0,25 por GB-mês do DynamoDB ou US$21,90 aos US$0,023 do S3 Standard — e os uploads do mês seguinte adicionam o mesmo de novo.
O item de ponteiro descrito por esses números é este, e ele mede 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
}Aprofunde-se
Veja tamanho máximo de item e meça itens com a calculadora de tamanho de item. Baixe o DynoTable para inspecionar atributos binários.
Fontes de preços
- Amazon DynamoDB pricing — tarifas de unidade de requisição e de armazenamento, sincronizadas na calculadora a partir da AWS Price List API.
- Amazon S3 pricing — armazenamento S3 Standard, US$0,023 por GB-mês para os primeiros 50 TB em us-east-1 (lido da Price List API em 2026-07-28).
Referências
- 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 pela última vez em 2026-07-13 contra a documentação oficial da AWS vinculada acima.
Precificado em 2026-07-28 com a nossa própria calculadora de preços sobre as tarifas de us-east-1 que ela sincroniza da AWS Price List API. Entradas: on-demand, 1 escrita/segundo, 10 leituras eventualmente consistentes/segundo, 380 KB contra o item de 119 bytes acima, free tier desligado.