As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
GAMESUS01-BP02 Use políticas de ciclo de vida ou expiração de TTL para excluir jogos, dados de usuários, arquivos de log ou ativos obsoletos desnecessários
Você pode usar tags e tipos de dados para criar políticas de ciclo de vida ou TTLs para mover dados para o armazenamento de arquivos ou removê-los completamente do serviço. Isso pode incluir configurações temporárias, conteúdo arquivado expirado e registros históricos que não são mais necessários. A maioria dos serviços oferece suporte à marcação.
Nível de risco exposto se esta prática recomendada não for estabelecida: Alto
Orientação para implementação
Para dados armazenados no S3, você pode usar políticas de ciclo de vida para mover os dados para níveis de armazenamento de acesso e arquivamento pouco frequentes. Em uma configuração do S3 Lifecycle, você pode definir regras para fazer a transição de objetos de uma classe de armazenamento para outra a fim de economizar custos de armazenamento. Quando você desconhece os padrões de acesso dos objetos ou os padrões de acesso mudam com o passar do tempo, é possível fazer a transição para os objetos para a classe de armazenamento S3 Intelligent-Tiering para economizar automaticamente.
O Amazon S3 da suporte a um modelo de cachoeira para fazer a transição entre classes de armazenamento, conforme mostrado no diagrama a seguir.
É possível adicionar ações de transição a uma configuração do Ciclo de Vida do S3 para solicitar que o Amazon S3 exclua objetos no final de sua vida útil. Quando um objeto chega ao fim de sua vida útil com base em sua configuração de ciclo de vida, o Amazon S3 executa uma ação de expiração com base no estado de versionamento do S3 em que o bucket se encontra:
-
Bucket sem versão: o Amazon S3 coloca o objeto em fila para remoção e o remove de forma assíncrona, removendo permanentemente o objeto.
-
Bucket com versionamento ativado: se a versão atual do objeto não for um marcador de exclusão, o Amazon S3 adicionará um marcador de exclusão com um ID de versão exclusivo. Isso torna a versão atual desatualizada, e o marcador de exclusão se torna a versão atual.
-
Bucket com versionamento suspenso: o Amazon S3 cria um marcador de exclusão com null como ID da versão. Esse marcador de exclusão substitui uma versão do objeto por uma ID de versão nula na hierarquia de versões, o que efetivamente exclui o objeto.
-
Quando você adiciona uma configuração do ciclo de vida a um bucket, as regras de configuração se aplicam aos objetos existentes e aos objetos que serão adicionados no futuro. Por exemplo, se você adicionar uma regra de configuração do ciclo de vida hoje com uma ação de expiração que faz com que objetos com um prefixo específico expirem 30 dias após a criação, o Amazon S3 entrará na fila para remover objetos existentes com mais de 30 dias e que tenham o prefixo especificado.
A vida útil (TTL) para DynamoDB é um método econômico para excluir itens que não são mais relevantes. A TTL permite definir um carimbo de data e hora de validade por item que indica quando um item não é mais necessário. O DynamoDB exclui automaticamente os itens expirados alguns dias após o vencimento, sem consumir o throughput de gravação.
-
Para usar a TTL, primeiro habilite-a em uma tabela e, depois, defina um atributo específico para armazenar o carimbo de data e hora de vencimento da TTL. O carimbo de data e hora deve ser armazenado no formato de hora de época do Unix
na granularidade de segundos. Sempre que um item é criado ou atualizado, é possível calcular o prazo de validade e salvá-lo no atributo TTL. -
Itens com atributos TTL válidos e expirados podem ser excluídos pelo sistema, normalmente alguns dias após a expiração. Você ainda pode atualizar os itens expirados que estão pendentes de exclusão, incluindo alterar ou remover os atributos TTL. Ao atualizar um item expirado, recomendamos usar uma expressão de condição para garantir que o item não tenha sido excluído posteriormente. Use expressões de filtro para remover itens expirados dos resultados de Scan e Query.
-
Os itens excluídos funcionam de forma semelhante aos excluídos por meio de operações de exclusão típicas. Depois de excluídos, os itens entram no DynamoDB Streams como exclusões de serviços, em vez de exclusões de usuários, e são removidos dos índices secundários locais e globais, assim como outras operações de exclusão.
Com ElastiCache o for Redis, você pode controlar a atualização de seus dados em cache usando TTLs ou expirando em chaves em cache. Após o término do tempo definido, a chave é excluída do cache e o acesso ao armazenamento de dados de origem é necessário junto com o acesso aos dados atualizados.
-
Dois princípios determinam o apropriado TTLs a ser aplicado e os tipos de padrões de cache a serem implementados. Primeiro, é importante que você entenda a taxa de alteração dos dados subjacentes. Em segundo lugar, é importante avaliar o risco de dados desatualizados serem retornados ao seu aplicativo em vez de seus equivalentes atualizados.
-
Com dados dinâmicos que mudam com frequência, talvez você queira aplicar menos dados TTLs que expiram a uma taxa de alteração que corresponda à do banco de dados principal. Isso reduz o risco de retornar dados desatualizados e, ao mesmo tempo, fornece um buffer para descarregar as solicitações do banco de dados.
-
Também é importante reconhecer que, mesmo que você esteja armazenando dados em cache apenas por minutos ou segundos, em vez de durações mais longas, TTLs a aplicação adequada às chaves em cache pode resultar em um aumento no desempenho e em uma melhor experiência geral do jogador com seu jogo.
Etapas de implementação
-
Use as políticas de ciclo de vida do Amazon S3 para fazer a transição de objetos para níveis infrequentes de acesso ou arquivamento e configurar ações de expiração para excluir objetos desnecessários com base nas regras do ciclo de vida.
-
Ative o Time to Live (TTL) nas tabelas do DynamoDB para excluir automaticamente itens expirados sem consumir a taxa de transferência de gravação, definindo o timestamp de expiração no Unix epoch time.
-
Defina ElastiCache as chaves apropriadas TTLs com base nas taxas de alteração de dados e na tolerância ao risco de dados desatualizados, facilitando a atualização dos dados em cache e melhorando a experiência do jogador.