Amazon DVA-C02: Armazenamento, Amazon S3, CloudFront e Sistemas de Arquivos (EFS, FSx) — Guia de estudos
Faz parte do AWS Developer Associate DVA-C02 — Guia de estudos. Pratique com respostas verificadas no centro de exames da Amazon, ou faça testes cronometrados no ExamRoll.io.
Fundamentos, controles de segurança e padrões de desenvolvimento do Amazon S3
O Amazon S3 é o armazenamento de objetos durável e canônico. Os desenvolvedores devem projetar APIs em torno de
undefined
/
undefined
/
undefined
e uploads multipartes (
undefined
,
undefined
,
undefined
) para cargas de dados (payloads) grandes, e usar funções auxiliares dos SDKs, como
undefined
do boto3 ou
undefined
para uploads temporários por parte do cliente. Proteja os objetos usando criptografia do lado do servidor (SSE-S3, SSE-KMS via
undefined
com
undefined
ou impondo a criptografia padrão do bucket com
undefined
), exija TLS aplicando
undefined
nas políticas de bucket e bloqueie o acesso público acidental com o S3 Block Public Access e negações explícitas (denies) na política do bucket. Armadilhas comuns incluem negações explícitas do IAM tendo precedência sobre as permissões da role, URLs pré-assinadas herdando os privilégios de quem as assinou, mas ainda estando sujeitas às políticas do bucket e às políticas de endpoint da VPC, e configurações incorretas de CORS ao fazer upload diretamente de navegadores (configure com
undefined
). Use regras de ciclo de vida (
undefined
) para fazer a transição para Intelligent-Tiering, GLACIER ou expirar versões não atuais, e habilite o versionamento (
undefined
) antes de depender de regras para versões não atuais. Para auditoria e recuperação, habilite os logs de acesso do servidor do S3 ou S3 Access Points, e use o Object Lock com um modo de retenção para retenção imutável. Arquitete para a consistência eventual de PUTs de sobrescrita (a leitura após a escrita, ou read-after-write, é garantida para PUTs de novos objetos, mas atualizações em chaves existentes podem apresentar consistência eventual em cenários de borda).
S3 Avançado: Object Lambda, fluxos com pré-assinatura, políticas e nuances do ciclo de vida
O S3 Object Lambda permite transformar as respostas de
undefined
anexando uma função Lambda a um S3 Object Lambda Access Point; a Lambda recebe um
undefined
e deve chamar
undefined
(através da API do S3 Object Lambda/Control) para retornar os bytes transformados. Padrões típicos são redimensionamento de imagens, redação de dados ou conversão de formato em tempo real, sem duplicar objetos. Para uploads a partir do navegador, gere POSTs pré-assinados (
undefined
nos SDKs) com uma política restrita (
undefined
, prefixo de chave) para evitar abusos. As políticas de bucket e as políticas de endpoint de VPC (Gateway/Interface) são poderosas para restringir o acesso: prefira permissões explícitas (allow) com condições de recurso (
undefined
,
undefined
com cautela) e evite principals com curingas abertos (wildcard). Pegadinhas do ciclo de vida incluem transições para buckets versionados — configure
undefined
e
undefined
explicitamente — e
undefined
para evitar o vazamento de armazenamento. Ao impor a criptografia em trânsito, exija
undefined
ou use
undefined
para negar solicitações sem TLS. Para conformidade (compliance) imutável, habilite o Object Lock antes de fazer o upload dos objetos. Quando for necessária a aplicação programática, combine eventos do S3 (SNS, EventBridge) com o Lambda para aplicar tags ou realizar validação pós-upload.
CloudFront, estratégias de cache e computação de borda (Lambda@Edge vs CloudFront Functions)
O CloudFront acelera a entrega global e protege as origens (origins). Para origens S3, prefira o Origin Access Control (OAC) com Sigv4 em vez do antigo Origin Access Identity para assinar as solicitações à origem e negar o acesso público direto ao S3. O ajuste fino do comportamento de cache usa
undefined
/
undefined
, encaminhamento do cabeçalho
undefined
e chaves de cache baseadas em query strings/cookies; dê preferência à lista de permissões (whitelisting) de chaves de cache ou a uma Cache Policy & Origin Request Policy para reduzir a fragmentação do cache. Para conteúdo privado, use URLs assinadas ou cookies assinados do CloudFront (crie via
undefined
ou funções auxiliares do SDK). Use o CloudFront Functions para manipulações leves em submilissegundos (na solicitação/resposta do visualizador, ou viewer request/response) e o Lambda@Edge para lógica mais pesada que requer runtimes Node/Python e gatilhos (hooks) de solicitação/resposta da origem (origin-request ou origin-response); lembre-se de que as funções Lambda@Edge são implantadas a partir de
undefined
e têm implicações de cold-start e atraso na replicação regional. A invalidação tem custo e latência — prefira o versionamento da chave do objeto (implantando novos nomes de arquivo ou adicionando uma versão na query string) para evitar invalidações. Instrumente o CloudFront com logs em tempo real e métricas do CloudWatch para detecção de anomalias quase em tempo real, e acione o Lambda para respostas automatizadas. Armadilhas comuns incluem encaminhar cabeçalhos/cookies em excesso que invalidam o cache (“cache bust”) e assumir que a propagação da invalidação é imediata.
Sistemas de arquivos compartilhados: critérios de decisão, montagens e armadilhas do EFS e FSx
Escolha o EFS para sistemas de arquivos NFSv4.1 compatíveis com POSIX, montados simultaneamente em clientes Linux; escolha as variantes do FSx quando precisar de recursos SMB/Windows ou Lustre de alta performance. O EFS suporta criptografia em repouso via KMS, criptografia em trânsito usando a opção de montagem TLS e pontos de acesso para mapeamento de UID/GID por aplicação. Monte usando amazon-efs-utils (
undefined
) ou o cliente NFS para cargas de trabalho de alta vazão. Selecione o modo de performance generalPurpose vs. maxIO e o modo de throughput bursting vs. provisioned com base nos padrões de throughput/IOPS. O FSx for Windows integra-se com o Active Directory e expõe compartilhamentos SMB com ACLs do NTFS, namespaces do DFS e semântica nativa do Windows — monte usando
undefined
ou através de clientes EC2 Windows; problemas comuns incluem a complexidade de ingresso no AD e a resolução de DNS. O FSx for Lustre é ideal para computação de alta performance e pode se vincular de forma transparente ao S3 por meio de tarefas de repositório de dados para importar/exportar conjuntos de dados. Pontos de atenção de rede: abra as portas NFS/SMB nos security groups, use mount targets em cada AZ para o EFS e garanta que as políticas do IAM não possam ser usadas para restringir o acesso no nível do NFS — as permissões POSIX e os security groups são os pontos de aplicação da regra. Para backups, prefira snapshots automatizados (EFS Backup, snapshots do FSx) e teste as restaurações regularmente.
Problema Prático: Cenário de Caso de Uso
Cenário: A AcmeAnalytics executa um dashboard estático para clientes, hospedado em um bucket S3 e servido globalmente por meio de uma distribuição CloudFront. A equipe de engenharia precisa servir arquivos de dados privados, realizar conversão de CSV para JSON em tempo real para alguns objetos e garantir que novas compilações do dashboard invalidem os caches com custo mínimo.
Desafio: Implementar a entrega segura de objetos privados, transformação dinâmica sem duplicar o armazenamento e uma estratégia de baixo custo para atualizações de cache.
Abordagem Recomendada:
- Crie um bucket S3 com
PutBucketEncryption(SSE-KMS) ePutBucketPolicypara negar tráfego não-TLS e permitir acesso apenas a partir do Origin Access Control (OAC) do CloudFront (crie um OAC e anexe-o à distribuição); usePutBucketVersioningpara habilitar o versionamento. - Configure um S3 Object Lambda Access Point; implemente uma função Lambda que lide com o
GetObjectContext, recupere o objeto original via S3GetObject, transforme o CSV para JSON em memória e retorne o resultado usando
undefined
.
3. Configure os comportamentos de cache do CloudFront: roteie /private/* para o S3 Object Lambda Access Point (como uma origem), defina uma Política de Cache que faça cache com base no cabeçalho Accept, se necessário, e habilite TTLs mínimos; para os ativos do dashboard, use nomes de arquivo versionados para evitar invalidações.
4. Para invalidações necessárias e infrequentes, chame
undefined
a partir do CI após o deploy; caso contrário, para alterações de rotina, faça o upload dos ativos com um hash de conteúdo no nome do arquivo para evitar os custos de invalidação.
Justificativa: Restringir o acesso ao S3 ao CloudFront via OAC e impor o SSE-KMS protege os dados em trânsito e em repouso. O S3 Object Lambda fornece transformação em tempo real sem duplicar objetos, e o uso de versionamento de objetos ou nomes de arquivo com hash de conteúdo evita invalidações caras, preservando a eficiência do cache.
← Monitoramento · Todos os domínios · Bancos de Dados e Cache (RDS →
Pratique estas questões → · Prática cronometrada no ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Passe no seu exame →