View a markdown version of this page

GAMESUS01-BP02 Utilizza le politiche del ciclo di vita o la scadenza TTL per eliminare giochi, dati utente, file di registro o risorse obsolete non necessari. - Games Industry Lens

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

GAMESUS01-BP02 Utilizza le politiche del ciclo di vita o la scadenza TTL per eliminare giochi, dati utente, file di registro o risorse obsolete non necessari.

Puoi utilizzare tag e tipi di dati per creare policy relative al ciclo di vita o TTL per spostare i dati nell'archivio o rimuoverli completamente dal servizio. Ciò può includere configurazioni temporanee, contenuti archiviati scaduti e registri cronologici che non sono più necessari. La maggior parte dei servizi supporta l'etichettatura.

Livello di rischio associato se questa best practice non fosse adottata: elevato

Guida all’implementazione

Per i dati archiviati in S3, puoi utilizzare le policy del ciclo di vita per spostare i dati su livelli di storage ad accesso e archiviazione non frequenti. In una configurazione del ciclo di vita S3 puoi definire regole per la transizione degli oggetti da una classe di storage a un'altra per risparmiare sui costi di storage. Quando non si conoscono i modelli di accesso degli oggetti o se cambiano nel tempo, è possibile eseguire la transizione degli oggetti alla classe di archiviazione S3 Intelligent-Tiering per ottenere risparmi sui costi in modo automatico.

Amazon S3 supporta un modello a cascata per la transizione tra classi di storage, come mostrato nel diagramma seguente.

È possibile aggiungere operazioni di transizione a una configurazione del ciclo di vita S3 per indicare ad Amazon S3 di eliminare gli oggetti al termine del loro ciclo di vita. Quando un oggetto raggiunge la fine del suo ciclo di vita in base alla configurazione del ciclo di vita, Amazon S3 esegue un'azione di scadenza in base allo stato di S3 Versioning in cui si trova il bucket:

  • Bucket senza versione: Amazon S3 mette in coda l'oggetto per la rimozione e lo rimuove in modo asincrono, rimuovendo definitivamente l'oggetto.

  • Bucket abilitato al controllo delle versioni: se la versione corrente dell'oggetto non è un marker di eliminazione, Amazon S3 aggiunge un marker di eliminazione con un ID di versione univoco. La versione corrente diventa quindi non corrente e il contrassegno di eliminazione diventa la versione corrente.

  • Bucket con versione sospesa: Amazon S3 crea un marker di eliminazione con null come ID di versione. Questo marker di eliminazione sostituisce la versione di un oggetto con un ID di versione nullo nella gerarchia delle versioni, eliminando di fatto l'oggetto.

  • Quando si aggiunge una configurazione del ciclo di vita a un bucket, le regole di configurazione si applicano sia agli oggetti esistenti sia a quelli che vengono aggiunti in un secondo momento. Ad esempio, se oggi aggiungi una regola di configurazione del ciclo di vita con un'azione di scadenza che fa scadere gli oggetti con un prefisso specifico 30 giorni dopo la creazione, Amazon S3 metterà in coda per rimuovere gli oggetti esistenti che hanno più di 30 giorni e che hanno il prefisso specificato.

Il Time to Live (TTL) per DynamoDB è un metodo conveniente per eliminare elementi che non sono più pertinenti. Il TTL consente di definire un timestamp per elemento in modo da indicare quando un elemento non è più necessario. DynamoDB elimina automaticamente gli elementi scaduti entro pochi giorni dalla data di scadenza, senza utilizzare il throughput di scrittura.

  • Per utilizzare il TTL, è necessario prima abilitarlo su una tabella e poi definire un attributo specifico per archiviare il timestamp di scadenza del TTL. Il timestamp deve essere archiviato nel formato ora epoch Unix con la granularità dei secondi. Ogni volta che un elemento viene creato o aggiornato, è possibile calcolare l’ora di scadenza e salvarla nell’attributo TTL.

  • Gli elementi con attributi TTL validi e scaduti possono essere eliminati dal sistema, in genere entro pochi giorni dalla scadenza. È comunque possibile aggiornare gli elementi scaduti in attesa di eliminazione, come anche modificare o rimuovere i relativi attributi TTL. Durante l’aggiornamento di un elemento scaduto, si consiglia di utilizzare un’espressione condizionale per assicurarsi che l’elemento non sia stato successivamente eliminato. Utilizza le espressioni di filtro per rimuovere gli elementi scaduti dai risultati di Scan e Query.

  • Gli elementi eliminati funzionano in modo simile a quelli eliminati tramite le tipiche operazioni di eliminazione. Una volta eliminati, gli elementi entrano in DynamoDB Streams come eliminazioni dal servizio anziché dagli utenti e vengono rimossi dagli indici secondari locali e dagli indici secondari globali proprio come le altre operazioni di eliminazione. 

Con ElastiCache for Redis puoi controllare l'aggiornamento dei dati memorizzati nella cache utilizzando o scadendo le chiavi memorizzate nella cache. TTLs Trascorso il tempo impostato, la chiave viene eliminata dalla cache e, oltre all'accesso ai dati aggiornati, è necessario accedere all'archivio dati di origine. 

  • Due principi determinano i modelli appropriati TTLs da applicare e i tipi di modelli di memorizzazione nella cache da implementare. Innanzitutto, è importante comprendere la velocità di variazione dei dati sottostanti. In secondo luogo, è importante valutare il rischio che all'applicazione vengano restituiti dati obsoleti anziché alla controparte aggiornata.

  • Con dati dinamici che cambiano spesso, potresti voler applicare dati con una scadenza inferiore TTLs a quella del database principale. In questo modo si riduce il rischio di restituire dati obsoleti e allo stesso tempo di fornire un buffer per scaricare le richieste del database.

  •  È inoltre importante riconoscere che, anche se si memorizzano nella cache solo i dati per minuti o secondi anziché per periodi più lunghi, applicarli in modo appropriato alle chiavi memorizzate nella cache può portare TTLs a un aumento delle prestazioni e a un'esperienza di gioco complessivamente migliore. 

Passaggi dell’implementazione

  • Utilizza le policy del ciclo di vita di Amazon S3 per trasferire gli oggetti a livelli di accesso o archiviazione poco frequenti e configura le azioni di scadenza per eliminare gli oggetti non necessari in base alle regole del ciclo di vita.

  • Abilita Time to Live (TTL) nelle tabelle DynamoDB per eliminare automaticamente gli elementi scaduti senza consumare il throughput di scrittura, definendo il timestamp di scadenza in Unix epoch time.

  • Imposta ElastiCache le chiavi in modo appropriato in base ai tassi di modifica dei dati e alla tolleranza al rischio TTLs per i dati obsoleti, facilitando l'aggiornamento dei dati memorizzati nella cache e una migliore esperienza del giocatore.