I database relazionali sono un pilastro della maggior parte delle applicazioni. Ma per quanto riguarda scalabilità e bassa latenza, non si può fare molto per migliorare le prestazioni. Anche aggiungendo repliche a letture in scala, esiste un limite fisico imposto dalla capacità di archiviazione su disco. La strategia più efficace per far fronte a tale limite consiste nel completare i database basati su disco con il caching.

In questo tutorial apprenderai come incrementare le prestazioni delle tue applicazioni aggiungendo un livello di caching al database relazionale. Attuerai una strategia cache-aside utilizzando Amazon ElastiCache for Redis per un database MySQL. La strategia cache-aside è una delle più diffuse per incrementare le prestazioni di un database. Quando un’applicazione deve leggere dati da un database, anzitutto interroga la cache. Se non vengono trovati dati, l’applicazione interroga il database e inserisce i risultati nella cache. Esistono molti modi per invalidare la cache se i record pertinenti vengono modificati nel database sottostante, ma ai fini di questo tutorial useremo la funzione di scadenza Time To Live (TTL) fornita da Redis.

Il nodo ElastiCache for Redis e il database MySQL creati in questo tutorial sono idonei al piano gratuito AWS.

Attuazione della strategia cache-aside con Amazon ElastiCache for Redis

Tempo necessario per il completamento: 120 minuti

Costo: idoneo per il piano gratuito

Casi d’uso: caching, dimensionamento, alta disponibilità, applicazione in tempo reale

Prodotti: Amazon ElastiCache for Redis, Amazon RDS MySQL e Piano gratuito di AWS

Pubblico: sviluppatori

Livello: principiante - intermedio

Ultimo aggiornamento: 25 luglio 2019

*Questa stima presuppone il rispetto delle configurazioni consigliate durante il tutorial e la terminazione di tutte le risorse entro 2 ore.

**Gli account creati nelle ultime 24 ore potrebbero non avere ancora accesso a tutte le risorse necessarie per questo progetto.

Per completare la sezione di prerequisito sono necessari 20 minuti. 

Questo tutorial illustra alcuni meccanismi con esempi scritti in Python per spiegare alcune tecniche di caching. Auspicabilmente sarà facile tradurre il codice nel linguaggio da te scelto.

Per completare questo tutorial è necessario accedere a un'istanza EC2. Se non ne hai già una in esecuzione, segui queste istruzioni per assegnarne una.

Dopo che hai accesso all’istanza EC2, esegui questi comandi: 

$ sudo yum install git -y
$ sudo yum install mysql -y
$ sudo yum install python3 -y
$ pip3 install --user virtualenv
$ git clone https://github.com/aws-samples/amazon-elasticache-samples/
$ cd amazon-elasticache-samples/database-caching
$ virtualenv venv
$ source ./venv/bin/activate
$ pip3 install -r requirements.txt

Ora tutto è pronto per iniziare il tutorial.