Otimização de custos do S3 e da transferência de dados
Aplique S3 Intelligent-Tiering, regras de ciclo de vida, S3 Select e CloudFront para reduzir significativamente os custos de armazenamento e transferência de dados.
Otimização de custos do S3 e da transferência de dados é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
Fundamentos dos custos de armazenamento do S3
Os custos de armazenamento do Amazon S3 variam significativamente de acordo com a classe de armazenamento e o padrão de acesso. O S3 Standard cobra aproximadamente US$ 0,023 por GB por mês — em escala de petabytes, isso se torna significativo. A boa notícia é que o S3 oferece sete classes de armazenamento otimizadas para diferentes frequências de acesso, com preços que variam de US$ 0,023/GB (Standard) a US$ 0,00099/GB (Glacier Deep Archive). A chave para otimizar os custos do S3 é associar seus dados à classe de armazenamento adequada e automatizar as transições com políticas de ciclo de vida.
# S3 storage class costs (us-east-1 approximate):
# S3 Standard: $0.023/GB/month
# S3 Intelligent-Tiering: $0.023/GB (frequent) + $0.0125 (infrequent)
# S3 Standard-IA: $0.0125/GB/month + retrieval fee
# S3 One Zone-IA: $0.01/GB/month (single AZ)
# S3 Glacier Instant: $0.004/GB/month + retrieval fee
# S3 Glacier Flexible: $0.0036/GB/month + retrieval time
# S3 Glacier Deep Archive: $0.00099/GB/month + retrieval timeS3 Intelligent-Tiering
S3 Intelligent-Tiering move automaticamente os objetos entre níveis de acesso com base nos padrões reais de acesso — sem taxas de recuperação e sem duração mínima para o nível frequente. Ele monitora o acesso aos objetos individualmente: objetos que não forem acessados por 30 dias passam para o nível de acesso infrequente (40% mais barato) e, após 90 dias, para o nível de arquivamento instantâneo (68% mais barato). Há uma pequena taxa mensal de monitoramento (US$ 0,0025 por 1.000 objetos). Use Intelligent-Tiering quando não for possível prever os padrões de acesso ou quando houver dados de acesso frequente e infrequente no mesmo bucket.
# Enable Intelligent-Tiering on objects
aws s3api put-object \
--bucket my-bucket \
--key data/report.parquet \
--body report.parquet \
--storage-class INTELLIGENT_TIERING
# Or set as default for entire bucket
aws s3api put-bucket-intelligent-tiering-configuration \
--bucket my-bucket \
--id whole-bucket-tiering \
--intelligent-tiering-configuration '{
"Id": "whole-bucket-tiering",
"Status": "Enabled",
"Tierings": [
{"AccessTier": "ARCHIVE_ACCESS", "Days": 90},
{"AccessTier": "DEEP_ARCHIVE_ACCESS", "Days": 180}
]
}'Regras de ciclo de vida do S3 para classificação automática
As regras de ciclo de vida do S3 automatizam as transições e as expirações de objetos com base na idade. Você define regras por prefixo ou tag e especifica as transições em limites de dias específicos. Um ciclo de vida de arquivamento típico é: Standard → Standard-IA (30 dias) → Glacier Instant Retrieval (90 dias) → Deep Archive (365 dias) → Delete (2555 dias). Isso pode reduzir os custos de armazenamento por GB de US$ 0,023 para US$ 0,00099 ao longo do tempo — uma redução de 95% para dados arquivados. As transições do ciclo de vida exigem um tamanho mínimo de objeto de 128 KB para IA e Glacier (objetos menores não são economicamente viáveis para transição).
# Lifecycle rule: transition logs to archive
aws s3api put-bucket-lifecycle-configuration \
--bucket app-logs-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "log-archive",
"Filter": {"Prefix": "logs/"},
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_IR"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}]
}'S3 Select e Glacier Select
S3 Select permite recuperar apenas os dados necessários de um objeto do S3 usando expressões SQL, em vez de baixar o objeto inteiro. Em um arquivo CSV de 10 GB do qual você precisa apenas de 100 linhas, o S3 Select pode recuperar somente essas linhas, reduzindo drasticamente os custos de transferência de dados e o tempo de processamento da aplicação. Glacier Select faz o mesmo para objetos no Glacier. O S3 Select oferece suporte aos formatos CSV, JSON e Parquet. Isso é especialmente valioso em pipelines de análise de dados nos quais muitas consultas acessam apenas um subconjunto de cada arquivo de dados.
# S3 Select: query a CSV object using SQL expression
aws s3api select-object-content \
--bucket analytics-data \
--key sales/2026-06.csv \
--expression-type SQL \
--expression "SELECT * FROM S3Object WHERE region = 'us-east'" \
--input-serialization 'CSV={FileHeaderInfo=USE}' \
--output-serialization 'CSV={}' \
output.csv
# Only the matching rows are returned
# Saves data transfer cost vs downloading entire fileUpload Multipart do S3 e aceleração de transferência
Para uploads de objetos grandes, o S3 Multipart Upload divide os objetos em partes (com no mínimo 5 MB por parte) que são enviadas em paralelo, melhorando a taxa de transferência e permitindo uploads retomáveis. É possível tentar novamente as partes com falha sem reiniciar o upload inteiro. Limpe os uploads multipart incompletos com regras de ciclo de vida para evitar cobranças pelas partes incompletas. O S3 Transfer Acceleration encaminha os uploads por meio das localizações de borda do AWS CloudFront para acelerar uploads de locais distantes — útil para usuários que enviam arquivos grandes globalmente, mas gera um custo adicional (US$ 0,04–US$ 0,08/GB). Use-o somente quando a aceleração proporcionar uma melhoria mensurável.
# Multipart upload example
aws s3api create-multipart-upload \
--bucket my-bucket --key large-file.zip
# Abort incomplete multipart uploads via lifecycle
aws s3api put-bucket-lifecycle-configuration \
--bucket my-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "cleanup-incomplete-uploads",
"Status": "Enabled",
"AbortIncompleteMultipartUpload": {"DaysAfterInitiation": 7}
}]
}'Entendendo os custos de transferência de dados
Os custos de transferência de dados estão entre as cobranças mais surpreendentes da AWS. Regras principais: a transferência de dados de entrada (para a AWS) é gratuita. A transferência de dados de saída para a Internet custa aproximadamente US$ 0,09/GB (nos primeiros 10 TB/mês). A transferência de dados entre regiões custa aproximadamente US$ 0,02/GB. A transferência de dados entre AZs na mesma região custa US$ 0,01/GB em cada direção. Dentro da mesma AZ, é gratuita. Projete arquiteturas para minimizar a transferência de dados entre regiões e destinada à Internet — por isso as implantações regionais e o CloudFront são essenciais para a entrega de conteúdo com eficiência de custos.
# Data transfer cost examples (us-east-1):
# Internet (outbound): $0.09/GB (first 10 TB)
# CloudFront -> internet: $0.0085/GB (much cheaper!)
# Cross-region: $0.02/GB
# Cross-AZ (same region): $0.01/GB each direction
# Same AZ: $0.00/GB (free)
# S3 -> CloudFront: $0.00/GB (free!)
# Cost reduction tip:
# S3 -> CloudFront -> users
# vs
# EC2 -> internet -> users
# CloudFront is 10x cheaper for data egressCloudFront para reduzir custos de transferência de dados
A entrega de conteúdo por meio do Amazon CloudFront reduz drasticamente os custos de transferência de dados de duas formas. Primeiro, o CloudFront cobra taxas de saída menores do que o acesso direto à Internet pelo EC2 ou S3 (~US$ 0,0085/GB contra US$ 0,09/GB). Segundo, o CloudFront armazena o conteúdo em cache nas localizações de borda, reduzindo o número de vezes que os dados são entregues a partir da origem — potencialmente fornecendo o mesmo conteúdo milhões de vezes a partir do cache com apenas uma busca na origem. A transferência de dados do S3 para o CloudFront também é gratuita. Isso torna o CloudFront uma ferramenta de otimização de custos, não apenas de desempenho.
# Cost comparison for 100 TB/month of outbound traffic:
# Direct from EC2/S3 to internet:
# 100,000 GB x $0.09/GB = $9,000/month
# Via CloudFront (assuming 80% cache hit rate):
# 20,000 GB origin pull: free (S3->CF) or $0.02 (EC2->CF)
# 100,000 GB CF->internet: 100,000 x $0.0085 = $850
# Total: ~$1,250 vs $9,000 = 86% savings
# Create CloudFront distribution with S3 origin
aws cloudfront create-distribution \
--distribution-config file://cf-config.jsonVPC Endpoints para evitar custos do NAT Gateway
As cobranças pelo processamento de dados do NAT Gateway (US$ 0,045/GB) podem se tornar significativas quando instâncias do EC2 em sub-redes privadas acessam frequentemente o S3 ou o DynamoDB. Em vez disso, use VPC Gateway Endpoints para S3 e DynamoDB — eles encaminham o tráfego pelo backbone de rede da AWS a custo zero e não exigem um NAT Gateway para esses serviços. Além disso, VPC Interface Endpoints (PrivateLink) para outros serviços da AWS eliminam as taxas de processamento do NAT Gateway para o tráfego desses serviços, embora os próprios Interface Endpoints tenham um pequeno custo por hora.
# Create VPC Gateway Endpoint for S3 (free!)
aws ec2 create-vpc-endpoint \
--vpc-id vpc-12345 \
--service-name com.amazonaws.us-east-1.s3 \
--vpc-endpoint-type Gateway \
--route-table-ids rtb-private-AZ1 rtb-private-AZ2
# Traffic from EC2 in private subnet to S3:
# WITHOUT endpoint: EC2 -> NAT GW ($0.045/GB) -> S3
# WITH endpoint: EC2 -> S3 via VPC endpoint ($0.00/GB)
# For DynamoDB:
aws ec2 create-vpc-endpoint \
--service-name com.amazonaws.us-east-1.dynamodb \
--vpc-endpoint-type GatewayOtimizando os custos de solicitações do S3
O S3 cobra por solicitação de API, além da cobrança por GB armazenado. As solicitações PUT, COPY, POST, LIST custam US$ 0,005 por 1.000; as solicitações GET, SELECT custam US$ 0,0004 por 1.000. Em aplicações que fazem milhões de solicitações, esses custos se acumulam. Otimize: agrupando objetos pequenos em objetos maiores (menos solicitações), usando o CloudFront para fornecer respostas armazenadas em cache (reduz as solicitações GET à origem), evitando operações de listagem sempre que possível (LIST é caro) e usando S3 Batch Operations para operações em massa em vez de milhões de chamadas individuais de API.
# S3 Batch Operations: process millions of objects at once
aws s3control create-job \
--account-id 123456789012 \
--manifest '{
"Spec":{"Format":"S3BatchOperations_CSV_20180820","Fields":["Bucket","Key"]},
"Location":{"ObjectArn":"arn:aws:s3:::manifest-bucket/manifest.csv","ETag":"abc123"}
}' \
--operation '{
"S3CopyObject": {
"TargetResource": "arn:aws:s3:::destination-bucket",
"StorageClass": "GLACIER"
}
}' \
--report '{"Bucket":"arn:aws:s3:::report-bucket","Enabled":true}'AWS DataSync para transferência de dados
Para transferências de dados em grande escala entre ambientes locais e a AWS, ou entre serviços da AWS, o AWS DataSync é mais econômico do que escrever código de transferência personalizado. O DataSync usa um protocolo desenvolvido especificamente para essa finalidade, que alcança até 10 vezes a taxa de transferência de ferramentas de código aberto, e inclui validação de dados, agendamento e monitoramento integrados. Os dados transferidos pelo DataSync para S3, EFS ou FSx são cobrados segundo as taxas padrão de transferência de dados da AWS — mas a eficiência do DataSync permite concluir as transferências mais rapidamente, reduzindo o tempo de computação do EC2 (e o custo) necessário para grandes migrações.
# Create DataSync task to copy S3 bucket to another region
aws datasync create-task \
--source-location-arn arn:aws:datasync:us-east-1:123:location/loc-source \
--destination-location-arn arn:aws:datasync:us-west-2:123:location/loc-dest \
--name 'DR-replication' \
--options '{
"VerifyMode": "ONLY_FILES_TRANSFERRED",
"OverwriteMode": "ALWAYS",
"TransferMode": "CHANGED"
}'
# DataSync pricing: $0.0125/GB transferredStorage Lens para visibilidade do S3
O Amazon S3 Storage Lens fornece visibilidade em toda a organização sobre o uso do armazenamento do S3 e as métricas de atividade entre contas e regiões. Ele revela oportunidades de otimização de custos, como a identificação de buckets sem regras de ciclo de vida, buckets com uploads multipart incompletos ou a distribuição entre classes de armazenamento. O painel padrão do S3 Storage Lens é gratuito; o painel de métricas avançadas (US$ 0,20/milhão de objetos) adiciona detalhamento por prefixo e métricas de idade dos dados. Use o Storage Lens como ponto de partida para qualquer iniciativa de otimização de custos do S3, identificando os buckets de maior impacto.
# Enable S3 Storage Lens dashboard
aws s3control put-storage-lens-configuration \
--account-id 123456789012 \
--config-id default \
--storage-lens-configuration '{
"Id": "default",
"IsEnabled": true,
"DataExport": {
"S3BucketDestination": {
"AccountId": "123456789012",
"Arn": "arn:aws:s3:::my-storage-lens-export",
"Format": "CSV",
"OutputSchemaVersion": "V_1"
}
}
}'Verificação rápida
Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.
Recapitulação da lição
Nesta lição, você aprendeu: S3 Intelligent-Tiering e as regras de ciclo de vida reduzem os custos de armazenamento ao mover dados automaticamente para classes de armazenamento mais baratas, o CloudFront reduz drasticamente os custos de transferência de dados em comparação com o fornecimento direto pelo S3 ou EC2 e os VPC Gateway Endpoints eliminam as cobranças do NAT Gateway para o tráfego do S3 e do DynamoDB. O S3 Storage Lens fornece visibilidade sobre oportunidades de otimização. A seguir, exploraremos o KMS, o ACM e os padrões de criptografia.
Perguntas Frequentes
A aula “Otimização de custos do S3 e da transferência de dados” é grátis?
Sim — o texto completo de “Otimização de custos do S3 e da transferência de dados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “Otimização de custos do S3 e da transferência de dados”?
Aplique S3 Intelligent-Tiering, regras de ciclo de vida, S3 Select e CloudFront para reduzir significativamente os custos de armazenamento e transferência de dados. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Otimização de custos do S3 e da transferência de dados”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Dimensionamento adequado e Compute Optimizer
- Instâncias reservadas, Savings Plans e Spot
- Cost Explorer, Budgets e etiquetas de alocação de custos
- Otimização de custos do S3 e da transferência de dados