Defina regras de ciclo de vida para exportações temporárias

AWSBeginner
Pratique Agora

Introdução

Exportações temporárias e registros permanentes exigem decisões de retenção diferentes. Configure uma regra de ciclo de vida somente para exports/, leia seu escopo e seus limites de idade e diferencie a configuração salva das futuras ações agendadas.

Conclua primeiro Organize documentos com chaves e metadados para conhecer prefixos, propriedades, downloads e exclusão delimitada. A conexão da CLI, o bucket, a exportação e o registro permanente estão preparados nesta VM nova. Use Terminal e AWS View na parte superior. Você verificará a configuração armazenada em vez de esperar por ações futuras baseadas na idade dos objetos.

Relação com as certificações

Certificação Tarefa do exame Prática
Cloud Practitioner (CLF-C02) Tarefa 3.6 Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
Solutions Architect – Associate (SAA-C03) Tarefa 4.1 Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
Developer – Associate (DVA-C02) Tarefa 1.3 Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
CloudOps Engineer – Associate (SOA-C03) Tarefa 1.3 Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
Security – Specialty (SCS-C03) Tarefa 5.2 Prática dos fundamentos: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.
Data Engineer – Associate (DEA-C01) Tarefa 2.3 Prática dos fundamentos: Classes de armazenamento S3 e configuração do ciclo de vida com escopo delimitado.

Visão geral do laboratório

Diagrama conceitual: a regra de ciclo de vida armazenada no S3 abrange exports/, com Standard-IA aos 30 dias e expiração aos 90; records/ fica excluído. O laboratório configura e consulta a regra sem executar ações futuras.

Inspecione dados temporários e permanentes

Nesta etapa, você identificará o escopo pretendido da política e inspecionará o registro permanente que deve ser excluído dela.

Uma regra de ciclo de vida especifica quais objetos gerenciar e o que fazer conforme envelhecem. Uma transição muda a classe de armazenamento; a expiração remove objetos armazenados elegíveis. Nenhuma dessas ações altera um arquivo local. Comece identificando quais chaves armazenadas pertencem a esta regra.

Entre no espaço de trabalho com cd, que muda de diretório:

cd /home/labex/project

Liste o bucket preparado recursivamente para ver as chaves completas dos objetos, incluindo prefixos:

aws s3 ls s3://labex-export-retention/ --recursive

Há duas chaves: exports/monthly.csv e records/retention-policy.txt. A exportação é maior que 128 KB; o registro permanente é um pequeno arquivo de texto. Um prefixo é o início de uma chave de objeto, não um diretório real. Uma regra filtrada para exports/ corresponde à exportação, mas exclui records/retention-policy.txt.

Baixe o registro permanente com cp e inspecione seus bytes com cat:

aws s3 cp s3://labex-export-retention/records/retention-policy.txt permanent-record.txt
cat permanent-record.txt
Permanent record: retain until approved removal.

No AWS View, expanda records/retention-policy.txt para ver o mesmo texto armazenado. Você comparará esse registro após configurar a regra. Uma política de ciclo de vida não deve expirar acidentalmente dados não relacionados apenas porque compartilham um bucket.

Escreva e aplique uma regra de ciclo de vida delimitada

Nesta etapa, você armazenará uma regra de ciclo de vida que descreve os requisitos de retenção da equipe.

S3 Standard é a classe padrão para dados acessados com frequência. S3 Standard-IA (acesso infrequente) mantém a recuperação imediata, mas cobra pela recuperação e tem duração mínima de armazenamento de trinta dias. Aqui, as exportações passam a ser acessadas com pouca frequência após trinta dias e são mantidas até o dia noventa, portanto passam sessenta dias em Standard-IA. Objetos menores que 128 KB não são transferidos de classe pelo comportamento padrão de ciclo de vida; a exportação preparada é maior que esse limite. Esses são critérios de seleção, não uma promessa de economias específicas.

Expiração em noventa dias é apropriada para exportações descartáveis, não para registros permanentes. Este bucket tem o versionamento desativado; a expiração pode remover permanentemente objetos elegíveis. Em um bucket com versões, expiração da versão atual e exclusão de versões não atuais têm efeitos diferentes e precisam de ações consideradas separadamente.

Linha do tempo de retenção de exportações — Esquema: a regra se aplica a `exports/`. Os limites em dias descrevem elegibilidade; eles não garantem execução em um instante exato.

JSON descreve a configuração usando objetos ({}), arrays ([]), nomes de campos entre aspas, strings e valores numéricos de dias. O array Rules contém a política completa do bucket. ID nomeia a regra, Status a ativa e Filter.Prefix restringe seu escopo. Transitions e Expiration especificam as duas ações.

O comando do shell cat > lifecycle.json <<'JSON' grava as linhas seguintes em um arquivo até o JSON final. Este é um here-document; o delimitador entre aspas mantém o conteúdo literal. Copie o bloco completo, incluindo seu delimitador final:

cat > lifecycle.json <<'JSON'
{
  "Rules": [
    {
      "ID": "temporary-export-retention",
      "Status": "Enabled",
      "Filter": {"Prefix": "exports/"},
      "Transitions": [{"Days": 30, "StorageClass": "STANDARD_IA"}],
      "Expiration": {"Days": 90}
    }
  ]
}
JSON

Revise o arquivo antes de aplicá-lo:

cat lifecycle.json

Confirme que o prefixo é exports/, com sua barra final. Um prefixo vazio teria como alvo todos os objetos do bucket, incluindo o registro permanente.

aws s3api expõe operações individuais da API do S3. put-bucket-lifecycle-configuration grava a configuração; --bucket escolhe o bucket, e file://lifecycle.json faz a CLI ler seu argumento JSON do arquivo local. Esta operação substitui toda a configuração de ciclo de vida do bucket; ao atualizar uma configuração existente, inclua as regras que deseja manter. Este exercício começa sem uma:

aws s3api put-bucket-lifecycle-configuration \
  --bucket labex-export-retention \
  --lifecycle-configuration file://lifecycle.json

Um comando bem-sucedido não exibe corpo de resposta. A seguir, inspecione o que o serviço efetivamente armazenou em vez de confiar apenas no arquivo local.

Revise a política armazenada e o registro não afetado

Nesta etapa, você lerá a política no S3 e confirmará que tanto os dados novos quanto o registro permanente excluído da regra continuam acessíveis.

Recupere a configuração de ciclo de vida do bucket:

aws s3api get-bucket-lifecycle-configuration --bucket labex-export-retention

O array Rules da resposta contém uma regra Enabled: prefixo exports/, transição para STANDARD_IA em trinta dias e expiração em noventa dias. O serviço pode incluir campos adicionais na resposta; compare os campos da regra com o requisito. Esta resposta é uma evidência oficial da configuração armazenada, enquanto um arquivo JSON local sozinho não mostra que uma regra foi aplicada.

AWS View mostra a mesma regra armazenada acima dos objetos. Ele não exibe uma transição ou exclusão concluída: esses limites estão no futuro.

Exemplo: a regra de ciclo de vida apenas para exports e o registro permanente inalterado. — Este exemplo mostra a configuração armazenada e os bytes atuais do registro. Ele não representa uma ação concluída baseada na idade do objeto.

head-object lê as propriedades de um objeto sem baixar seu corpo. Inspecione a exportação recém-criada:

aws s3api head-object --bucket labex-export-retention --key exports/monthly.csv

Seu ContentLength é maior que 131072 bytes. Ela permanece em Standard hoje; o campo StorageClass pode ser omitido para essa classe padrão. A regra não reescreve imediatamente a classe de armazenamento de um novo objeto apenas porque você a ativou. O processamento agendado é assíncrono após a elegibilidade, não uma contagem regressiva cronometrada a partir da execução deste comando.

Baixe novamente o registro permanente excluído da regra:

aws s3 cp s3://labex-export-retention/records/retention-policy.txt permanent-record-after.txt

cmp compara arquivos byte a byte. && exibe uma mensagem apenas se a comparação for bem-sucedida:

cmp permanent-record.txt permanent-record-after.txt && echo 'Permanent record unchanged'

A mensagem confirma que seu conteúdo permanece intacto. Ambas as chaves ainda aparecem no bucket:

aws s3 ls s3://labex-export-retention/ --recursive

O prefixo armazenado estabelece que o registro permanente está fora desta regra. Sua presença hoje também confirma que você não o excluiu nem sobrescreveu acidentalmente ao configurar a política; isso, por si só, não comprova o comportamento futuro do agendador.

Remova a política e os recursos do exercício

Nesta etapa, você removerá a política armazenada e depois excluirá os objetos e o bucket do laboratório sem esperar pela expiração futura.

Remover uma configuração de ciclo de vida impede que essa política governe o bucket; isso não remove seus objetos por si só. Exclua a política com a operação individual da API:

aws s3api delete-bucket-lifecycle --bucket labex-export-retention

Confira que ela não está mais configurada:

aws s3api get-bucket-lifecycle-configuration --bucket labex-export-retention

Espera-se que este comando falhe com NoSuchLifecycleConfiguration. O bucket ainda existe, mas sua política de ciclo de vida não. AWS View remove o resumo da regra e mantém os dois objetos.

O registro permanente foi excluído da expiração automática. Agora, você o removerá deliberadamente como parte da limpeza deste exercício descartável, usando sua chave exata. Remova primeiro a exportação temporária:

aws s3 rm s3://labex-export-retention/exports/monthly.csv
aws s3 rm s3://labex-export-retention/records/retention-policy.txt

Confirme que a listagem bem-sucedida não contém linhas de objetos:

aws s3 ls s3://labex-export-retention/ --recursive

Remova o bucket vazio com rb e confirme que o armazenamento ainda responde:

aws s3 rb s3://labex-export-retention
aws s3 ls

A mensagem remove_bucket indica o bucket deste exercício; a lista final não tem buckets, e AWS View mostra No buckets. Sua política local e as cópias do registro permanecem para revisão. Você configurou uma política futura de retenção e limpou explicitamente os recursos de prática; essas são operações separadas.

Resumo

Você transformou requisitos de dados temporários em uma regra de ciclo de vida S3 com escopo restrito, selecionou uma classe de armazenamento considerando acesso e duração mínima e configurou a expiração. Você leu a regra no S3 e confirmou que o registro permanente permaneceu fora de seu prefixo e inalterado.

Evidência de configuração é diferente de execução futura agendada. Você terminou removendo a política e excluindo explicitamente os recursos de armazenamento do laboratório, sem esperar por ações baseadas na idade dos objetos.

Para aprofundar o tema, consulte a documentação da AWS: Transições, expiração e custos do ciclo de vida S3.