Funzionalità di Amazon MemoryDB

Perché scegliere MemoryDB?

Amazon MemoryDB è un servizio di database in memoria compatibile con Valkey e Redis OSS, durevole e dalle prestazioni ultra-veloci. È realizzato appositamente per le applicazioni moderne con architetture di microservizi.

Grazie alla compatibilità con Valkey e Redis OSS, MemoryDB permette ai clienti di creare applicazioni rapidamente utilizzando le stesse strutture dati, le API e i comandi di Valkey e Redis OSS flessibili e intuitivi che attualmente già utilizzano. Con MemoryDB, tutti i tuoi dati vengono archiviati in memoria, il che consente di ottenere una latenza di lettura di microsecondi, una latenza di scrittura di millisecondi a una cifra e un throughput elevato. Inoltre, MemoryDB archivia i dati in modo duraturo su più zone di disponibilità (AZ) utilizzando un registro transazionale distribuito per abilitare operazioni rapide di failover, ripristino del database e riavvio dei nodi. Offrendo sia prestazioni in memoria che durabilità Multi-AZ, MemoryDB può essere utilizzato come database primario ad alte prestazioni per le applicazioni di microservizi, eliminando la necessità di gestire separatamente sia una cache che un database durevole.

Compatibilità con Valkey e Redis OSS

Valkey e Redis OSS sono datastore chiave-valore in memoria rapidi e open source. Gli sviluppatori utilizzano Valkey e Redis OSS per ottenere tempi di risposta inferiori al millisecondo, consentendo ad applicazioni in tempo reale di effettuare milioni di richieste al secondo in settori come giochi, tecnologie pubblicitarie, servizi finanziari, sanità e IoT. 

Valkey e Redis OSS offrono API, comandi e strutture di dati flessibili come flussi, set ed elenchi per creare applicazioni agili e versatili. MemoryDB mantiene la compatibilità con Valkey e Redis OSS e supporta lo stesso set di tipi di dati, parametri e comandi di Valkey e Redis OSS che già conosci. Pertanto, ora puoi utilizzare il codice, le applicazioni, i driver e gli strumenti che attualmente già utilizzi con Valkey e Redis OSS con MemoryDB per creare rapidamente nuove applicazioni.

Prestazioni ultraveloci

MemoryDB archivia l'intero set di dati in memoria per garantire una latenza di lettura di pochi microsecondi, una latenza di scrittura inferiore a dieci millisecondi e un'elevata velocità di trasmissione effettiva. Può gestire oltre 13 trilioni di richieste al giorno e supporta picchi di 160 milioni di richieste al secondo. Gli sviluppatori che utilizzano architetture di microservizi richiedono prestazioni estremamente elevate poiché queste applicazioni possono comportare interazioni con molti componenti di servizio per ogni interazione dell'utente o chiamata API. Grazie a MemoryDB, è possibile garantire una latenza estremamente bassa per offrire prestazioni in tempo reale agli utenti finali.

MemoryDB include il Multiplexing I/O potenziato, che offre miglioramenti significativi al throughput e alla latenza su larga scala. Il Multiplexing I/O potenziato è ideale per i carichi di lavoro vincolati al throughput con più connessioni client e i suoi vantaggi scalano in base al livello di simultaneità dei carichi di lavoro. Ad esempio, quando si utilizza il nodo r6g.4xlarge e si eseguono 5.200 client simultanei, è possibile ottenere fino al 46% in più di throughput (operazioni di lettura e scrittura al secondo) e fino al 21% in meno di latenza P99, rispetto alla versione 6 di MemoryDB compatibile con Redis OSS. Per questi tipi di carichi di lavoro, l'elaborazione I/O di rete di un nodo può diventare un fattore limitante nella capacità di scalabilità.

Con il Multiplexing I/O potenziato, ogni thread I/O di rete dedicato trasmette i comandi di più client nei motori Valkey e Redis OSS, sfruttando la capacità di Valkey e Redis OSS di elaborare in modo efficiente i comandi in batch.

Durabilità multi-AZ

Oltre ad archiviare l'intero set di dati in memoria, MemoryDB utilizza un log transazionale distribuito per fornire durabilità, coerenza e recuperabilità dei dati. MemoryDB archivia i dati su più zone di disponibilità in modo da poter ottenere un rapido ripristino e riavvio del database. Puoi utilizzare MemoryDB come un unico servizio di database primario per i tuoi carichi di lavoro che richiedono bassa latenza e una velocità di trasmissione effettiva elevata, invece di gestire separatamente una cache per la velocità e un database relazionale o non relazionale aggiuntivo per l'affidabilità.

Scalabilità

Puoi dimensionare il tuo cluster MemoryDB per soddisfare le variabili esigenze delle applicazioni: orizzontalmente aggiungendo o rimuovendo nodi, o verticalmente passando a tipi di nodi più grandi o più piccoli. MemoryDB supporta il ridimensionamento in scrittura con partizionamento orizzontale e il ridimensionamento in lettura aggiungendo repliche. Il tuo cluster continua a rimanere online e supporta le operazioni di lettura e scrittura durante le operazioni di ridimensionamento.

Servizio completamente gestito

Iniziare a usare MemoryDB è semplice. Basta semplicemente avviare un nuovo cluster MemoryDB utilizzando la Console di gestione AWS oppure è possibile utilizzare la CLI o l'SDK di AWS. Le istanze database di MemoryDB sono preconfigurate con i parametri e le impostazioni ottimali per il tipo di nodo selezionato. Sarà pertanto possibile avviare un cluster e collegarlo all'applicazione in pochi minuti senza ulteriore configurazione.

MemoryDB fornisce parametri di Amazon CloudWatch per le istanze database. Puoi usare la console per visualizzare più di 35 parametri operative essenziali per il cluster, inclusi i parametri relativi a calcolo, memoria, archiviazione, throughput, connessioni attive e molto altro.

MemoryDB mantiene automaticamente aggiornati i cluster con i nuovi aggiornamenti e consente di eseguire facilmente l'upgrade dei cluster alle ultime versioni di Valkey e Redis OSS.

Sicurezza

MemoryDB viene eseguito in Amazon Virtual Private Cloud (Amazon VPC), che consente di isolare il database in una rete virtuale e di connettersi all'infrastruttura IT locale tramite VPN IPsec crittografate in modalità standard. Utilizzando la configurazione VPC in MemoryDB, inoltre, è possibile configurare le impostazioni del firewall e controllare l'accesso di rete alle istanze database.

Con MemoryDB, i dati inattivi vengono crittografati utilizzando le chiavi create e controllate tramite il Servizio AWS di gestione delle chiavi (AWS KMS). Inoltre, i cluster creati con i tipi di nodo AWS Graviton2 includono la crittografia DRAM a 256 bit sempre attiva. MemoryDB supporta la crittografia al volo tramite Transport Layer Security (TLS).

Grazie alle caratteristiche di AWS Identity and Access Management (IAM) integrate con MemoryDB, è possibile controllare le operazioni che gli utenti e i gruppi di IAM sono autorizzati ad eseguire sulle risorse di MemoryDB. Ad esempio, è possibile configurare le regole di IAM in modo che alcuni utenti abbiano solo accesso in lettura e scrittura, mentre gli amministratori potranno creare, modificare ed eliminare le risorse. Per ulteriori informazioni sulle autorizzazioni a livello di API, consulta Utilizzo di policy IAM per MemoryDB.

MemoryDB utilizza liste di controllo degli accessi (ACL) di Redis OSS per verificare sia l'autenticazione che l'autorizzazione per il tuo cluster. Le liste ACL consentono di definire autorizzazioni differenti per utenti diversi nello stesso cluster.

Integrazione con Kubernetes

AWS Controllers for Kubernetes (ACK) per MemoryDB consente di definire e utilizzare le risorse MemoryDB direttamente dal cluster Kubernetes. Ciò consente di avvalersi di MemoryDB per supportare le applicazioni Kubernetes senza dover definire risorse MemoryDB al di fuori del cluster o eseguire e gestire le funzionalità del database in memoria all'interno del cluster. È possibile scaricare l'immagine del container MemoryDB ACK da Amazon Elastic Container Registry (Amazon ECR) e fare riferimento alla documentazione per la guida all'installazione. Puoi anche visitare il blog per informazioni più dettagliate.

Nota: ACK per MemoryDB è ora disponibile a livello generale. Inviaci i tuoi commenti accedendo alla nostra pagina Github.

 

Supporto JSON

MemoryDB offre il supporto nativo per i documenti JavaScript Object Notation (JSON) oltre alle strutture dati incluse in Redis OSS, senza costi aggiuntivi. È possibile semplificare lo sviluppo di applicazioni utilizzando i comandi integrati progettati e ottimizzati per i documenti JSON. MemoryDB supporta aggiornamenti parziali dei documenti JSON, nonché potenti funzioni di ricerca e di filtro tramite il linguaggio per query JSONPath. Il supporto per JSON è disponibile se si utilizza la versione di Valkey e Redis OSS 6.2 o superiore. Per ulteriori informazioni, consulta la documentazione di MemoryDB.

Ottimizzazione dei costi

MemoryDB offre il tiering dei dati come un modo a basso costo per scalare i tuoi cluster fino a centinaia di terabyte di capacità. Il livello dei dati fornisce un’opzione di prezzo per prestazioni per MemoryDB utilizzando gli SSD in ogni nodo cluster oltre ad archiviare i dati in memoria. Ideale per i carichi di lavoro che hanno regolarmente accesso fino al 20% del loro set di dati generale e per le applicazioni che possono sopportare ulteriore latenza quando accedono ai dati sulla SSD.

Quando utilizzi i cluster con il livello dei dati, MemoryDB funziona spostando in modo automatico e trasparente gli elementi utilizzati meno recentemente dalla memoria agli SSD NVMe attaccati localmente quando viene utilizzata la capacità di memoria. Quando accedi a un elemento archiviato su SSD, MemoryDB lo riporta in memoria prima di servire la richiesta. I livelli dei dati MemoryDB sono disponibili sui nodi R6gd basati su Graviton2. I nodi R6gd hanno una capacità totale quasi 5 volte superiore (memoria + SSD) e possono aiutarti a ottenere un risparmio di oltre il 60% sui costi di archiviazione quando funzionano al massimo utilizzo rispetto ai nodi R6g (solo memoria). Ipotizzando valori di stringa da 500 byte, in genere puoi aspettarti una latenza aggiuntiva di 450 µs per le richieste di lettura ai dati archiviati su SSD rispetto alle richieste di lettura ai dati in memoria.

MemoryDB offre nodi riservati che consentono di risparmiare fino al 55% rispetto ai prezzi dei nodi on-demand in cambio di un impegno di utilizzo per un periodo di uno o tre anni. I nodi riservati sono complementari ai nodi on-demand di MemoryDB e offrono alle aziende la flessibilità necessaria per ridurre i costi. MemoryDB offre tre opzioni di pagamento per i nodi riservati: nessun anticipo, pagamento anticipato parziale e pagamento anticipato dell'intero costo; in questo modo è possibile bilanciare l'importo pagato in anticipo con la tariffa oraria in vigore.

I nodi riservati MemoryDB offrono una flessibilità dimensionale all'interno di una famiglia di nodi e di una Regione AWS. Ciò significa che la tariffa scontata per i nodi riservati verrà applicata automaticamente all'utilizzo di tutte le dimensioni della stessa famiglia di nodi. La flessibilità delle dimensioni riduce il tempo da dedicare alla gestione dei nodi riservati e, poiché non si è più vincolati a una dimensione specifica del nodo del database, si può ottenere il massimo dallo sconto anche se il database deve essere aggiornato.