

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à.

# GAMECOST03-BP02 Ottimizza i database per i backend di gioco
<a name="gamecost03-bp02"></a>

 I giochi fanno molto affidamento sui database per archiviare un'ampia gamma di dati critici, dai profili e dagli inventari dei giocatori alle microtransazioni in-game e alle metriche di progressione. I database svolgono anche un ruolo cruciale nella gestione degli aspetti sociali dei giochi, come la creazione e la gestione di gruppi di giocatori, feste e l'applicazione delle politiche di moderazione. Man mano che la base di giocatori di un gioco cresce, i costi dei database associati aumenteranno inevitabilmente per soddisfare le crescenti richieste di dati e utilizzo. 

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

## Guida all’implementazione
<a name="implementation-guidance-76"></a>

 Per i backend di gioco in esecuzione su Amazon Aurora, è possibile utilizzare diverse strategie di ottimizzazione dei costi. Un consiglio fondamentale è quello di ridimensionare [ automaticamente le repliche di lettura in base ai modelli di utilizzo](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Integrating.AutoScaling.html), aumentando o diminuendo dinamicamente il numero di repliche per gestire le fluttuazioni del traffico. Ciò significa che stai pagando per le risorse di cui hai veramente bisogno. Un'altra tattica di ottimizzazione consiste nel sostituire le repliche di lettura utilizzate per l'analisi dei giochi con le esportazioni di istantanee DB in Amazon S3, poiché il servizio di storage S3 è generalmente più conveniente rispetto alle istanze di database Aurora con provisioning. Per ulteriori informazioni, consulta [ Esportazione di dati di snapshot DB in Amazon S3 per Amazon RDS. ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ExportSnapshot.html) 

 Esplorare l'uso delle istanze DB [ riservate per Amazon Aurora ](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithReservedDBInstances.html) per le istanze di database principali e passare alla [ configurazione ](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) Aurora Serverless può anche portare a notevoli risparmi sui costi a lungo termine, offrendo maggiore flessibilità e controllo granulare sull'utilizzo delle risorse. [https://www.youtube.com/watch?v=ecRje2wFO14](https://www.youtube.com/watch?v=ecRje2wFO14) 

 Allo stesso modo, per i backend di gioco che utilizzano Amazon DynamoDB, l'utilizzo della modalità di capacità on-demand di [ DynamoDB ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/on-demand-capacity-mode.html) può essere una scelta efficace, soprattutto per carichi di lavoro nuovi o imprevedibili, in quanto consente di pagare solo le risorse consumate senza la necessità di un provisioning eccessivo. Man mano che i modelli di traffico di gioco diventano più stabili e prevedibili nel tempo, puoi passare alla modalità di capacità fornita da [ DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/provisioned-capacity-mode.html), che può offrire risparmi sui costi grazie a una migliore pianificazione della capacità. L'attivazione del ridimensionamento automatico sulle tabelle DynamoDB è un'altra ottimizzazione fondamentale, che consente al servizio di regolare dinamicamente la capacità fornita in base alle fluttuazioni del traffico. Testa la struttura dei dati del tuo gioco in un ambiente di sviluppo prima del lancio per trovare e rimuovere gli indici secondari [ locali (LSI) e gli indici secondari globali (GSI) non necessari. ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LSI.html) [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html) Ciò può portare a notevoli risparmi sui costi di archiviazione e gestione dei dati di gioco. La rimozione delle operazioni di scansione [ inefficienti ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-query-scan.html) dal codice di backend del gioco a favore di query più mirate, l'acquisto di capacità [ riservata di ](https://aws.amazon.com/dynamodb/reserved-capacity/) Amazon DynamoDB e l'utilizzo di DynamoDB Streams con AWS Lambda trigger [ per elaborare gli eventi di backend di gioco possono ottimizzare ulteriormente i costi di ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html) DynamoDB. Per ulteriori informazioni, consulta Best practice per l'interrogazione e la scansione dei dati in DynamoDB. [https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-query-scan.html](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-query-scan.html) 

 Implementando queste strategie di ottimizzazione dei costi sia per Amazon Aurora che per DynamoDB, gli sviluppatori e gli editori di giochi possono ridurre significativamente la spesa per i database di backend dei giochi. 

### Passaggi dell’implementazione
<a name="implementation-steps-68"></a>
+  Usa il ridimensionamento automatico delle repliche di lettura di Aurora e le esportazioni di snapshot DB in Amazon S3 per gestire in modo conveniente le fluttuazioni del traffico e delle esigenze di analisi. 
+  Ottimizza i costi di DynamoDB iniziando con la capacità on-demand per i nuovi carichi di lavoro, passando alla capacità predisposta con scalabilità automatica per un traffico prevedibile e rimuovendo gli LSI e i GSI inutilizzati. 
+  Evita operazioni di scansione inefficienti a favore di query mirate, utilizza istanze riservate o capacità riservata e utilizza DynamoDB Streams con per l'elaborazione degli eventi. AWS Lambda 