10 Ottobre 2023

Amazon RDS Aurora vs RDS MySQL vs MySQL su EC2: Una Guida per una giusta scelta.

Scopri quale database è il migliore per le tue esigenze: un’analisi dettagliata di MySQL, MariaDB e Aurora AWS focalizzata su prestazioni e efficienza dei costi.

Nell’era digitale in cui viviamo, la velocità e la reattività sono diventate componenti fondamentali per il successo di qualsiasi progetto online. Che si tratti di un sito web istituzionale, un e-commerce o una piattaforma di contenuti, la performance è spesso la chiave per distinguersi dalla concorrenza e fornire un’esperienza utente superiore. Questo è particolarmente vero per i CMS (Content Management System) come WordPress, Joomla e Drupal, nonché per piattaforme e-commerce come WooCommerce, Magento e Prestashop, che richiedono un database robusto e veloce per gestire grandi volumi di dati e transazioni in tempo reale.

La scelta del database giusto può essere la differenza tra il successo e il fallimento di un’operazione online. Oltre a garantire prestazioni elevate, è fondamentale considerare anche l’efficienza in termini di costi, soprattutto per le startup e le piccole imprese che hanno budget limitati. D’altra parte, le grandi imprese cercano soluzioni scalabili che possano crescere insieme a loro, senza compromettere la velocità o la sicurezza.

In questo articolo, proponiamo un’analisi dettagliata e comparativa di tre sistemi di gestione di database relazionali (RDBMS) comunemente utilizzati: MySQL, MariaDB e Amazon Aurora. L’obiettivo è fornire un quadro chiaro delle loro prestazioni, capacità e efficienza economica. Questo vi permetterà di prendere una decisione più informata, adattando la soluzione scelta alle specifiche esigenze del vostro progetto.

Attraverso una serie di test, analizzeremo vari aspetti che includono la velocità di elaborazione, la scalabilità e, naturalmente, il costo. Tali fattori saranno fondamentali per determinare quale sistema di database è il più adatto per supportare un’applicazione web ad alte prestazioni, come potrebbe essere richiesto da un sito WordPress ad alto traffico o da una complessa applicazione web.

I contendenti

MySQL: Il Pioniere che ha Standardizzato i Database

MySQL è uno dei sistemi di gestione di database relazionali più antichi e diffusi nel mondo del web. Inizialmente sviluppato da MySQL AB nel 1995, il software è stato sottoposto a numerose evoluzioni nel corso degli anni. Una delle svolte più significative è stata la sua acquisizione da parte di Sun Microsystems nel 2008 e successivamente da Oracle nel 2010. Se da un lato queste acquisizioni hanno portato ad avanzamenti tecnologici e a una maggiore integrazione con altri prodotti Oracle, dall’altro hanno sollevato diverse questioni. Critiche si sono concentrate, ad esempio, sulla chiusura del codice e sul licenziamento, che hanno eroso la natura open source del progetto. Nonostante ciò, MySQL continua a essere un pilastro nel mondo dei database, utilizzato da giganti del web come Facebook e YouTube.

MariaDB: La Rivoluzione Ideologica

MariaDB è stato concepito come un fork di MySQL nel 2009, principalmente come reazione alle politiche commerciali e di licenza adottate da Oracle. Essenzialmente, rappresenta una sorta di evoluzione “ideologica” del progetto originale, con un focus su un ambiente di sviluppo più aperto e comunitario. MariaDB introduce anche una serie di migliorie tecniche rispetto a MySQL, tra cui una maggiore efficienza e funzioni aggiuntive. Questi vantaggi hanno contribuito a renderlo una scelta sempre più popolare tra gli sviluppatori che cercano un’alternativa solida a MySQL, senza compromettere la compatibilità.

Aurora AWS: La Forza del Cloud al Servizio dei Database

Amazon Aurora è un servizio di database relazionale gestito che offre compatibilità sia con MySQL che con PostgreSQL. Questo motore di database unisce la velocità e la robustezza tipiche dei sistemi commerciali ad alte prestazioni con la flessibilità e l’accessibilità dei database open source. In pratica, tutto il codice, gli strumenti e le applicazioni che stai già utilizzando con MySQL o PostgreSQL possono essere facilmente integrati con Aurora. In alcuni casi, Aurora può fornire un throughput che è fino a cinque volte superiore rispetto a MySQL e tre volte superiore rispetto a PostgreSQL, senza richiedere sostanziali modifiche alle applicazioni esistenti.

Oltre a queste caratteristiche, Aurora si distingue per il suo sistema di storage ad alte prestazioni, ottimizzato per lavorare in sinergia con i suoi motori di database. Questo storage distribuito e veloce è progettato per adattarsi automaticamente alle tue esigenze di scalabilità, con un volume del cluster che può estendersi fino a 128 tebibytes (TiB). Aurora automatizza e standardizza anche le procedure di clustering e replicazione dei database, operazioni che di solito richiedono un notevole sforzo in termini di configurazione e gestione.

Infine, è importante sottolineare che Amazon Aurora è un componente del più ampio servizio Amazon Relational Database Service (Amazon RDS). Amazon RDS è una piattaforma web che facilita la creazione, la manutenzione e lo scaling di database relazionali nel contesto del cloud computing.

Tuttavia, è importante notare che questi benefici vengono con un prezzo. Aurora può essere una soluzione costosa, soprattutto per le aziende più piccole o per progetti con budget limitati, rendendo il fattore costo un elemento decisivo nella scelta di adottarlo o meno.

Metodologia del Test: Confronto tra MySQL, MariaDB e Aurora su un’istanza RDS t4g.medium

AWS RDS (Amazon Web Services Relational Database Service) offre la possibilità di implementare un database gestito e ottimizzato nel cloud. Gli ingegneri di AWS hanno svolto un lavoro eccellente nell’ottimizzare ciascun tipo di istanza in funzione della quantità di RAM e dei core CPU forniti. Questa pre-configurazione effettuata da un team di esperti ci permette di confrontare le prestazioni relative dei motori di database, piuttosto che la nostra capacità di ottimizzare un determinato sistema di database.

Prima Fase del Confronto

La prima parte di questo confronto prevede l’attivazione di ciascun database su un’istanza db.t4g.medium RDS e l’esecuzione di un test con HammerDB, uno strumento di benchmarking per database molto popolare. In seguito, esploreremo istanze di dimensioni minori e maggiori per vedere quale database scala meglio.

L’Infrastruttura Utilizzata

Tutti i database in questa parte del confronto sono stati eseguiti su un’istanza db.t4g.medium dotata di 2 core CPU ARM e 4 GB di RAM. Le impostazioni predefinite includevano la crittografia a riposo e nessuna funzionalità di insight sulle prestazioni o monitoraggio avanzato.

  • Aurora
    • Versione: Aurora MySQL 3.01.1 (Compatibile con MySQL 8.0.23)
    • Configurazione: Singolo master, nessuna replica
    • Costo stimato (potrebbe variare a seconda dell’uso): $100 al mese
  • MySQL
    • Versione: MySQL 8.0.27
    • Spazio di archiviazione: 100 GB con storage gp2
    • Configurazione: Nessun standby
    • Costo stimato: $65,86 al mese
  • MariaDB
    • Versione: MariaDB 10.5.13
    • Spazio di archiviazione: 100 GB con storage gp2
    • Configurazione: Nessun standby
    • Costo stimato: $65,86 al mese
  • HammerDB
    • Versione: HammerDB 4.3 Linux
    • Sistema operativo: Ubuntu 20.04
    • Tipo di istanza: EC2 t3.medium
    • Disposizione: Nella stessa zona di disponibilità delle istanze RDS per minimizzare la latenza.
    • Connessione: Attraverso VNC a un’interfaccia utente Gnome per avviare i test e acquisire screenshot.

Esecuzione del Test

Abbiamo avviato il contatore delle transazioni e dato il via ai test.

MySQL su istanza RDS t4.g medium

Fin dal primo momento, MySQL ha registrato immediatamente circa 50.000 transazioni al minuto, mantenendo questo livello per tutta la durata del test. Il report sull’utilizzo della CPU mostrato sulla dashboard di AWS ha indicato che MySQL ha utilizzato circa il 90% dei cicli CPU disponibili. Questo è un chiaro segno che il carico di lavoro è limitato dalla CPU piuttosto che dalla memoria, suggerendo che il bottleneck delle prestazioni si trova nella potenza di calcolo e non nella capacità di memoria dell’istanza.

MariaDB su istanza RDS db.t4g.medium

Il profilo ufficiale di HammerDB su Github consiglia di utilizzare il driver MySQL per eseguire i benchmark su MariaDB, nonostante esista un driver specifico per MariaDB. Quindi, manterremo inalterate tutte le impostazioni per MariaDB, ad eccezione del nuovo hostname e delle credenziali.

MariaDB dimostra subito che, con questa dimensione dell’istanza, le sue prestazioni sono superiori. Non appena avviato il test, si nota un aumento della velocità, suggerendo che MariaDB è ottimizzato in modo più efficace per istanze di questa dimensione rispetto a MySQL.

Una cosa che mi ha sorpreso è stata che la velocità ha continuato a salire. Nel corso del test, raggiungeva regolarmente quasi 80,000 transazioni al minuto! Questo suggerisce che MariaDB non solo inizia con prestazioni elevate, ma è anche capace di mantenere e incrementare questo livello di efficienza durante l’intero ciclo del test.

Aurora su istanza RDS db.t4g.medium

Eravamo molto eccitati all’idea di vedere cosa Aurora potesse fare in questo test. Amazon fa molte affermazioni sulla sua velocità; ad esempio, la pagina delle FAQ di Aurora sostiene che sia fino a cinque volte più veloce di MySQL.

Tuttavia, questo benchmark mostra che Aurora era all’incirca veloce quanto MySQL per questo specifico carico di lavoro. Nonostante le alte aspettative alimentate dalle affermazioni di Amazon, le prestazioni effettive non hanno mostrato un vantaggio significativo in termini di velocità rispetto a MySQL nel contesto di questo test.

Aurora sembrava mostrare un utilizzo della CPU leggermente inferiore rispetto agli altri.

Abbiamo anche controllato la quantità di I/O utilizzati da Aurora durante il test, poiché molte persone su Internet si lamentano del fatto che gli I/O siano inaspettatamente costosi. Il nostro test ha raggiunto il picco di 300 IOPS al secondo.

Alla fine, la fattura prevista per questa unità in esecuzione su AWS EU-WEST-2 era di circa $ 100 al mese.

 

Analisi dei Risultati del Benchmark delle Prestazioni

Prestazioni Misurate

  • MySQL: Ha registrato 16,855 ordini elaborati al minuto e 50,945 transazioni al minuto.
  • MariaDB: Con 23,347 ordini e 76,866 transazioni al minuto, ha ottenuto risultati significativamente migliori.
  • Aurora: Ha totalizzato 15,781 ordini e 47,517 transazioni al minuto.

Analisi Dettagliata delle Prestazioni

MariaDB ha superato entrambi i suoi concorrenti, MySQL e Aurora, sia in termini di ordini che di transazioni elaborate al minuto. Questi dati sono particolarmente sorprendenti per Aurora, che, nonostante le affermazioni di Amazon circa le sue superiori prestazioni, non ha mostrato alcun vantaggio significativo su MySQL.

Confronto sull’Efficienza dei Costi: Ordini Elaborati per Dollaro Speso

Al fine di fornire un’analisi più completa e olistica, abbiamo valutato anche l’efficienza in termini di costi per ciascun database. Abbiamo utilizzato i dati del benchmark e i costi mensili stimati per calcolare il numero di ordini elaborati per ogni dollaro speso:

  • Aurora: 6,817,435 ordini per dollaro
  • MySQL: 11,052,459 ordini per dollaro
  • MariaDB: 15,309,508 ordini per dollaro

In base a questo indicatore, MariaDB è risultato il database più efficiente dal punto di vista dei costi, seguito da MySQL e infine da Aurora.

Conclusione: MariaDB Come Scelta Ottimale

Se l’obiettivo è di massimizzare sia le prestazioni che l’efficienza dei costi per un sistema di database transazionale ad alte prestazioni, MariaDB appare come la scelta più vantaggiosa. Ha superato sia MySQL che Aurora in entrambi gli aspetti nel nostro test.

Mentre MySQL rimane una solida opzione per coloro che sono già ben integrati in quell’ecosistema, se l’efficienza dei costi è una preoccupazione, potrebbe essere prudente considerare un passaggio a MariaDB. Aurora, pur vantando una serie di funzionalità avanzate, non sembra giustificare il prezzo più elevato, almeno per i carichi di lavoro simili a quelli oggetto del nostro test.

In un contesto aziendale dove ogni millisecondo e ogni centesimo hanno un impatto significativo, specialmente per chi è focalizzato su web performance come nel nostro caso, è fondamentale prendere decisioni ben informate. Confidiamo che questo articolo vi fornisca gli strumenti necessari per farlo.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

Torna in alto