AWS Aurora, quanto mi costi!

  • Di
  • 2024-09-19 - 4 minuti
banner

I costi di Aurora possono aumentare molto facilmente, se non si presta attenzione ai fattori che contribuiscono alle risorse utilizzate: scopriamo in che modo le query possono influenzare la fattura a fine mese.

Cosa vedrai

Amazon Aurora (spesso abbreviato in Aurora) è un database relazionale proprietario completamente gestito compatibile con MySQL e PostgreSQL.

Come molte soluzioni fully-managed, i costi possono lievitare facilmente ed è bene comprendere quali sono i fattori che influenzano i costi in bolletta.

Tra i vari fattori, c’è lo storage, il tipo di istanza scelta, backup e molto altro, ma oggi parliamo dei costi di I/O.

Cosa sono le richieste di I/O

In Aurora, le richieste di I/O di storage si riferiscono alle operazioni di lettura e scrittura eseguite sul volume di storage sottostante, e quindi sui dati. Queste richieste vengono in genere generate quando i dati vengono recuperati o scritti nel database.

Supponiamo di avere un cluster di database Aurora MySQL con una tabella denominata orders. Quando esegui una query come la seguente:

SELECT * FROM orders WHERE order_id = 1234

Aurora esegue i seguenti passaggi: la query viene analizzata e ottimizzata dall’ottimizzatore di query, e poi verifica se i dati richiesti sono disponibili nel buffer pool (ossia, nella cache).

Il buffer pool

Se i dati non sono in cache, Aurora esegue una richiesta di I/O di lettura per recuperare le pagine di dati richieste dall’utente.

Una volta recuperati i dati, vengono caricati nel buffer pool e i risultati della query vengono restituiti al client.

Amazon Aurora non ha una dimensione prefissata per il buffer pool che si applica a tutti i cluster. Piuttosto, la dimensione effettiva del buffer pool per un cluster Aurora dipende dal tipo di istanza e dalla quantità di memoria allocata al cluster. In particolare, per i cluster che si basano su Aurora MySQL, il buffer pool InnoDB (più o meno equivalente al buffer pool nel tradizionale MySQL) è configurato automaticamente per utilizzare circa il 75% della memoria dell’istanza. Ad esempio, su un’istanza r5.4xlarge con 128 GB di memoria, il buffer pool InnoDB sarebbe di circa 96 GB.

È importante sottolineare che il buffer pool è il componente che in Aurora è progettato per ridurre al minimo le richieste di I/O di storage sfruttando tecniche come la memorizzazione nella cache, lo storage strutturato in log e i modelli di scrittura ottimizzati, così da ridurre anche i costi.

Costi aggiuntivi

Tuttavia, durante le operazioni di lettura e scrittura si verificano comunque richieste di I/O di archiviazione e monitorarle può aiutare a identificare potenziali colli di bottiglia nelle prestazioni o a ottimizzare il carico di lavoro.

Infatti, se i dati richiesti sono disponibili nel buffer pool di Aurora, non ti verranno addebitati i costi di I/O di archiviazione associati a tale query.

Questo perché ti vengono addebitati i costi in base alla quantità di dati trasferiti tra il livello di archiviazione e il motore del database. Questo viene misurato dalle operazioni di I/O eseguite sul volume di archiviazione sottostante.

Quando i dati sono già presenti nel buffer pool, Aurora può fornire un output rispetto alla query direttamente recuperando i dati dalla memoria senza dover accedere al livello di archiviazione. Poiché in questo caso non vengono eseguite operazioni di I/O di archiviazione, non ti vengono addebitati costi di I/O di archiviazione.

Tuttavia, potresti comunque sostenere costi di elaborazione associati alle risorse di CPU e memoria utilizzate per elaborare la query, ma questi costi sono separati dai costi di I/O di archiviazione.

Vale la pena notare che mentre il buffer pool può ridurre significativamente i costi di I/O di archiviazione per i dati a cui si accede di frequente, non elimina completamente la necessità di I/O di archiviazione. Le query che accedono a dati non presenti nel buffer pool o le operazioni che modificano i dati (come INSERT, UPDATE o DELETE) genereranno comunque richieste di I/O di storage e comporteranno costi associati.

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source
Logo di NgRome
Logo de La Locanda del Tech
Logo di Tomorrow Devs
Logo di Coderful

Non perderti gli ultimi aggiornamenti, iscriviti a TheRedCode Digest!

La tecnologia corre, e tu devi correre più veloce per rimanere sempre sul pezzo! 🚀

Riceverai una volta al mese (o anche meno) con codici sconto per partecipare agli eventi del settore, quiz per vincere dei gadget e i recap degli articoli più interessanti pubblicati sul blog

Ci sto!

#TheRedComics

Edizione di Ottobre

A cura di Sophie Aiello, copy di Chiara Romano

Fumetto di agosto di Sophie Aiello

Vuoi diventare #tech content creator? 🖊️

Se vuoi raccontare la tua sul mondo #tech con dei post a tema o vuoi condividere la tua esperienza con la community, sei nel posto giusto! 😉

Manda una mail a collaborazioni[at]theredcode.it con la tua proposta e diventa la prossima penna del blog!

Ma sì, facciamolo!