Tecnologias/04 - Armazenamento de Objetos/01 - Amazon S32 min
Amazon S3
Definição
Amazon S3 é um serviço de armazenamento de objetos. Um objeto reúne conteúdo e metadados e é identificado por uma chave dentro de um bucket. O conteúdo pode ser uma imagem, backup, JSON ou arquivo Parquet.
Bucket: dados-aplicacao
Chave: eventos/ano=2026/mes=09/parte-001.parquet
Em buckets de uso geral, as barras fazem parte da chave. A aparência de pastas é uma organização por prefixos, não a mesma estrutura de um sistema de arquivos local. Referência: conceitos do S3.
Relação com bancos de dados
O S3 conserva objetos; um motor de consulta interpreta o conteúdo dos arquivos e executa operações SQL. Por exemplo, arquivos de eventos podem ficar no S3 e ser consultados por ClickHouse ou Athena. Isso separa armazenamento de processamento.
| Componente | Responsabilidade |
|---|---|
| S3 | Guardar e disponibilizar os objetos |
| Parquet | Definir a organização dos dados dentro do arquivo |
| ClickHouse ou Athena | Executar a consulta sobre esses dados |
Consistência e versionamento
O S3 oferece consistência forte para operações de leitura após escrita de objetos, conforme os limites documentados. Isso não transforma várias alterações de objetos em uma transação atômica de múltiplas chaves. Referência: modelo de consistência.
Com versionamento habilitado, atualizações podem conservar versões anteriores. Uma exclusão simples normalmente cria um marcador de exclusão; excluir uma versão específica tem outro efeito. Guardar versões também consome armazenamento. Referência: versionamento.
Exemplo prático e limites
Uma aplicação grava arquivos diários de eventos. Um processo analítico lê o período necessário e calcula métricas. O nome da chave ajuda a localizar períodos, mas não cria um índice de banco para cada campo interno do arquivo.
Permissões, políticas do bucket e credenciais controlam acesso. O fato de um objeto ter uma URL não significa que seu conteúdo seja público.
Aprofundamento aplicado
Publicar um conjunto coerente de arquivos
Considere um relatório com PDF e JSON de resumo. Gravar os dois objetos em sequência permite que um leitor veja somente um deles. Uma estratégia da aplicação é gravar objetos imutáveis e publicar um pequeno manifesto apontando para o conjunto concluído.
1. gravar relatorios/42/v3/relatorio.pdf
2. gravar relatorios/42/v3/resumo.json
3. verificar as duas gravações
4. publicar referência à versão v3
5. leitores fixam essa referência durante a leitura
A publicação do manifesto precisa de coordenação se houver escritores concorrentes. Os objetos referenciados devem permanecer disponíveis enquanto houver leitores. Isso é um protocolo da aplicação sobre operações de objeto, não uma transação nativa entre todas as chaves. Referência: consistência do S3.
Exercício: faça a gravação do resumo falhar. Resultado esperado: a referência pública continua apontando para a versão completa anterior; objetos da tentativa incompleta podem ser reconciliados e removidos depois.
Relacionado: 2. Apache Parquet e Consultas no S3 · S3 Lifecycle e Versionamento · S3 Segurança e Controle de Acesso.
Parte de Amazon S3