S3 Annotations: O Fim do Banco de Metadados Paralelo que Você Mantém ao Lado do S3

Se você trabalha com S3 há algum tempo, provavelmente já enfrentou essa situação: os objetos ficam no S3, mas o contexto sobre eles, quem aprovou, qual é o status de processamento, o que um modelo de IA extraiu daquele arquivo, fica em outro lugar. Um banco de dados relacional, um DynamoDB, um arquivo sidecar numa pasta separada. E aí começa o problema clássico: o objeto muda de nome, é replicado para outra região, vai para o Glacier, e o seu banco de metadados não sabe de nada. A sincronização virou um trabalho por conta própria.

A AWS anunciou em junho de 2026 um novo recurso do Amazon S3 chamado Annotations e ele muda fundamentalmente a forma como você pode associar contexto rico aos seus objetos. Não são tags. Não são os 2 KB de user-defined metadata que você já conhece. São até 1 GB de contexto por objeto, mutável, consultável, e que viaja junto com o objeto para onde ele for.

O Problema que as Annotations Resolvem

O S3 já oferece três formas de descrever um objeto:

  • System-defined metadata: tamanho, storage class, data de criação. Imutável.
  • User-defined metadata: pares chave-valor definidos no upload. Limite de 2 KB, não pode ser alterado sem reescrever o objeto.
  • Object tags: até 10 tags com 128/256 caracteres por chave/valor. Mutáveis, mas extremamente limitadas em capacidade.

Essas três opções funcionam bem para seus propósitos originais — controle de lifecycle, roteamento de políticas, identificação básica. O problema é quando você precisa de algo maior: um resumo gerado por IA, um conjunto de especificações técnicas em JSON, um status de moderação de conteúdo, uma cadeia de aprovações regulatórias. Nenhuma dessas opções comporta isso.

A solução do mercado sempre foi criar um sistema paralelo: um DynamoDB com a chave sendo o s3://bucket/prefix/objeto, ou uma tabela RDS, ou arquivos .meta no mesmo bucket. Funciona — até o objeto ser copiado, renomeado, replicado ou arquivado. Aí o sistema paralelo precisa saber de tudo isso, e você passa a gastar mais tempo mantendo a sincronização do que usando os metadados.

As Annotations resolvem isso colocando o contexto dentro do S3, diretamente associado ao objeto.

O Que São as Annotations na Prática

Cada objeto pode ter até 1.000 annotations nomeadas, cada uma com até 1 MB, somando até 1 GB por objeto. O formato é livre: JSON, XML, YAML ou texto simples. Cada annotation tem um nome único e pode ser criada, atualizada ou deletada independentemente — sem tocar no objeto original.

O comportamento operacional é o que diferencia as Annotations de qualquer sistema caseiro de metadados: elas acompanham o objeto automaticamente em operações de copy, replicação cross-region e transferências. Quando o objeto é deletado, as Annotations são removidas junto. Você não precisa gerenciar essa sincronização.

Como Usar: API e CLI

As operações são quatro: PutObjectAnnotation, GetObjectAnnotation, ListObjectAnnotations e DeleteObjectAnnotation. As permissões IAM necessárias são s3:PutObjectAnnotation e s3:GetObjectAnnotation.

Um exemplo prático para uma empresa de media que precisa armazenar especificações técnicas de um vídeo junto com um resumo gerado por IA:

bash

# Criar a annotation com especificações técnicas em JSON
cat > mediainfo.json << 'EOF'
{"codec":"H.265","resolution":"3840x2160","audio_tracks":8,"frame_rate":29.97}
EOF

aws s3api put-object-annotation \
  --bucket meu-bucket-media \
  --key videos/documentario-2026.mp4 \
  --annotation-name mediainfo \
  --annotation-payload ./mediainfo.json

# Criar uma segunda annotation com o resumo gerado por IA em texto
echo "Documentário de 90 minutos sobre migração de fauna selvagem em três continentes. Inclui imagens aéreas e subaquáticas. Idiomas: Português, Inglês, Espanhol." > resumo_ia.txt

aws s3api put-object-annotation \
  --bucket meu-bucket-media \
  --key videos/documentario-2026.mp4 \
  --annotation-name resumo_ia \
  --annotation-payload ./resumo_ia.txt

Cada annotation tem um nome único (mediainfo, resumo_ia), o que permite que equipes diferentes enriqueçam o mesmo objeto de forma independente — o time técnico adicionando metadados de codec enquanto o time de IA adiciona transcrições, sem interferência mútua.

Para recuperar uma annotation específica:

bash

aws s3api get-object-annotation \
  --bucket meu-bucket-media \
  --key videos/documentario-2026.mp4 \
  --annotation-name mediainfo \
  ./mediainfo-output.json

Para listar todas as annotations de um objeto:

bash

aws s3api list-object-annotations \
  --bucket meu-bucket-media \
  --key videos/documentario-2026.mp4

O Poder Real: Consultas em Escala com S3 Metadata Tables

Anotar objetos individualmente já é útil. Mas onde as Annotations se tornam uma mudança de paradigma é na integração com o S3 Metadata — especificamente as annotation tables.

Quando você habilita as annotation tables no bucket, o S3 indexa automaticamente todas as annotations em uma tabela Apache Iceberg gerenciada. Essa tabela pode ser consultada com Amazon Athena ou qualquer engine compatível com Iceberg. Não é necessário criar schema previamente — a tabela adapta automaticamente à estrutura do JSON, XML ou YAML que você escreveu.

Para habilitar via API:

json

{
  "JournalTableConfiguration": {
    "RecordExpiration": { "Expiration": "DISABLED" }
  },
  "InventoryTableConfiguration": { "ConfigurationState": "DISABLED" },
  "AnnotationTableConfiguration": {
    "ConfigurationState": "ENABLED",
    "Role": "arn:aws:iam::123456789012:role/S3MetadataAnnotationRole"
  }
}

Com isso habilitado, você consegue fazer consultas como: “Encontre todos os vídeos do bucket com mais de 8 faixas de áudio”:

sql

SELECT DISTINCT bucket, object_key
FROM "s3tablescatalog/aws-s3"."b_meu_bucket_media"."annotation"
WHERE name = 'mediainfo'
AND CAST(json_extract_scalar(text_value, '$.audio_tracks') AS INTEGER) > 8

Ou rastrear quais objetos receberam novas annotations nas últimas 24 horas via journal table:

sql

SELECT bucket, key, version_id, record_timestamp, annotation.name
FROM "s3tablescatalog/aws-s3"."b_meu_bucket_media"."journal"
WHERE record_timestamp >= (current_date - interval '1' day)
AND annotation.name IS NOT NULL
AND record_type IN ('CREATE_ANNOTATION', 'DELETE_ANNOTATION')

Um detalhe importante: é possível consultar annotations de objetos em qualquer storage class — incluindo S3 Glacier — sem pagar retrieval charges e sem precisar restaurar os objetos. Isso abre possibilidades reais para auditoria e compliance de dados arquivados, que antes exigiam ou restauração cara ou sistemas de catálogo externos.

Casos de Uso Concretos

Pipelines de IA e agentes autônomos: um agente pode enriquecer objetos com os resultados do seu processamento — transcrições, classificações, embeddings — diretamente na annotation, sem precisar de um banco de controle externo para saber “o que já foi processado” e “o que o modelo extraiu”.

Compliance e auditoria em serviços financeiros: documentos de pesquisa podem receber annotations com análises de sentimento geradas por IA e resumos de investimento, permitindo que agentes de pesquisa descubram datasets relevantes sem manter bancos de metadados separados.

Life Sciences e dados regulatórios: dados de trials clínicos podem ter annotations com status regulatório, detalhes de coorte de pacientes e cadeias de aprovação — tornando auditorias mais rápidas e mantendo o contexto acessível mesmo para dados arquivados.

Pontos de Atenção

Custo: o armazenamento das Annotations é cobrado a taxas do S3 Standard, mesmo que o objeto pai esteja em Glacier ou outra storage class. Para objetos com annotations grandes em Glacier, o custo da annotation pode superar o do próprio objeto.

Latência de indexação: as journal tables são atualizadas em near real time, mas as annotation tables levam até uma hora para refletir novas annotations. Para backfill de buckets com muitos objetos já existentes, o processo pode levar horas a dias.

Disponibilidade: as Annotations estão disponíveis em todas as regiões AWS, incluindo China Regions. As annotation tables estão disponíveis nas regiões onde o S3 Metadata está habilitado.

Conclusão

O S3 Annotations resolve um problema que existe desde que o S3 existe: como associar contexto rico e mutável a objetos sem construir e manter um sistema paralelo de metadados. A combinação de até 1 GB por objeto, formatos flexíveis, sincronização automática em operações de copy e replicação, e consultas em escala via Athena transforma o S3 num repositório de dados que carrega sua própria inteligência.

Para times que trabalham com pipelines de IA, processamento de media em escala, ou compliance de dados arquivados, essa é possivelmente a adição mais relevante ao S3 nos últimos anos — e chega num momento em que agentes autônomos precisam exatamente desse tipo de contexto consultável diretamente na camada de armazenamento.

Quer uma solução personalizada para seu negócio?

Nossos especialistas em cloud computing analisam seu caso e criam uma estratégia sob medida.

Compartilhe essa publicação
Sobre o autor
Foto de Luan Sousa

Luan Sousa

Atuo como Cloud Architect na KXC Tecnologia, empresa parceira da AWS, trabalhando diretamente na construção, evolução e sustentação de ambientes em nuvem voltados para alta disponibilidade, segurança e eficiência operacional.

Tenho atuação prática no desenho de arquiteturas AWS, automação de infraestrutura e suporte a workloads em produção.

No dia a dia, participo da implementação e melhoria contínua de ambientes cloud, apoiando desde a definição arquitetural até troubleshooting de cenários críticos, análise de desempenho e otimização de recursos. Minha atuação envolve serviços essenciais do ecossistema AWS, integração entre aplicações e adoção de boas práticas que garantem ambientes mais resilientes e previsíveis.

Tenho forte foco em resolver problemas reais de operação, automatizar processos e simplificar a gestão de infraestrutura, sempre buscando equilibrar performance, custo e segurança dentro dos ambientes dos clientes.

Precisa evoluir ou modernizar seu ambiente AWS? Vamos conversar sobre como a nuvem pode gerar mais eficiência e segurança para o seu negócio.

Ver perfil e posts