Elementi essenziali di fatturazione e ottimizzazione dei costi

GUIDA ALLE OPERAZIONI DI BASE

Introduzione

Quando si utilizza il cloud per ospitare applicazioni e sistemi, è importante comprendere il funzionamento del modello di fatturazione e come poter ottimizzare i costi. Il cloud permette di scambiare le spese fisse (ad esempio, i data center e i server fisici) con le spese variabili, pagando solo le risorse consumate. A seconda del tipo di risorsa utilizzata, esistono diverse dimensioni di fatturazione. Queste possono variare in base alla quantità di tempo di esecuzione di una risorsa, alla quantità di dati archiviati, trasferiti o elaborati o al numero di invocazioni API effettuate.

  • Il primo passo per comprendere la fatturazione è riuscire a vedere le risorse che si hanno e quanto costa gestirle. La dashboard di fatturazione AWS nella Console di gestione AWS mostra una panoramica di alto livello dei costi mensili correnti, insieme a una previsione basata sulle risorse attualmente in esecuzione. Se non hai ancora familiarizzato con la console, ti consigliamo di leggere il tutorial Nozioni di base sulla Console di gestione AWS. Le informazioni di fatturazione sono considerate sensibili e, come tali, solo l'utente root di qualsiasi account AWS ha inizialmente accesso a questa sezione della console. Se non riesci a visualizzare la dashboard di fatturazione, dovrai delegare l'accesso al tuo utente IAM di AWS. Ecco un esempio della dashboard di fatturazione. Qui sono mostrati i servizi attualmente in uso e il loro costo:

    Sebbene la dashboard di fatturazione offra una panoramica e una suddivisione dei costi di alto livello, potresti voler esaminare i costi in modo più dettagliato. Questa operazione può essere eseguita utilizzando l'Esploratore dei costi AWS. Questo strumento ti consente di vedere quali servizi sono stati utilizzati e l'importo di ciascuno di essi che ha contribuito alla tua spesa mensile. Vi è anche un grafico che mostra i diversi valori. Puoi utilizzarlo per filtrare diverse dimensioni, come Regione o servizio. Ecco un esempio della dashboard di fatturazione:

  • Sì. Questa dovrebbe essere una delle prime cose da configurare quando si crea un nuovo account AWS. Segui le istruzioni nella Guida per l'utente di Amazon CloudWatch per impostare un avviso in base ai costi totali stimati. A seconda delle esigenze, puoi impostare allarmi aggiuntivi in base a una serie di parametri o di dimensioni.

  • ll piano gratuito AWS offre ai clienti la possibilità di esplorare e provare gratuitamente i servizi AWS, entro i limiti specificati per ciascun servizio. Il piano gratuito comprende tre diversi tipi di offerte: un piano gratuito di 12 mesi, un'offerta Sempre Gratis e delle versioni di prova di breve durata. I servizi offerti nel piano gratuito di 12 mesi consentono ai clienti di utilizzare gratuitamente il prodotto, nei limiti specificati, per un periodo di un anno dalla data di creazione dell'account. I servizi dell'offerta Sempre Gratis consentono ai clienti di utilizzare gratuitamente il prodotto, nei limiti specificati, purché siano clienti AWS. I servizi delle versioni di prova a breve termine sono gratuiti per un periodo di tempo determinato o per una volta, a seconda del servizio selezionato. Per sapere quanto e quali risorse del piano gratuito stai attualmente utilizzando, apri la dashboard del piano gratuito nella sezione Fatturazione del tuo account AWS. Ecco un esempio di ciò che potrai vedere:

    Se l'account non è stato ancora creato o è la prima volta che si usa AWS, consigliamo di familiarizzare con la Console di gestione AWS e di leggere la sezione Configurazione del tuo ambiente AWS.

  • Generalmente, i servizi su AWS vengono fatturati secondo una tariffa a consumo basata su diverse dimensioni, come la durata di esecuzione della risorsa, la quantità di dati elaborati o trasferiti e il numero di richieste. Alcuni servizi dispongono di un piano gratuito e i costi mensili dipendono dalla combinazione dei servizi che vengono utilizzati.

    Se stai cercando una soluzione con un costo fisso e prevedibile, Amazon Lightsail è un servizio che offre istanze di server privato virtuale (VPS), container, spazio di archiviazione, database e tanto altro, tutto facile da usare e a un prezzo mensile conveniente. Come esempio, segui questo tutorial sulla implementazione di un sito WordPress su Amazon Lightsail.

  • Puoi ridurre la fattura mensile in diversi modi. Tra questi, vi sono l'ottimizzazione delle quantità o delle dimensioni dell'istanza o del database in uso, la migrazione da database con licenza a database open source, il dimensionamento automatico verso l'alto e verso il basso in base alla domanda o la modifica dei servizi per utilizzare AWS Lambda o altri servizi serverless che, quando non utilizzati, si riducono a zero. Un'altra opzione è disattivare ambienti e risorse che non vengono utilizzati 24 ore su 24, 7 giorni su 7. Ad esempio, in una settimana ci sono in tutto 168 ore. Se gli sviluppatori utilizzano l'ambiente di sviluppo solo durante l'orario d'ufficio (dalle 8:00 alle 18:00 [10 ore]), sette giorni su sette, la disattivazione consentirebbe di risparmiare 98 ore a settimana (~ 58,33%). Per implementare questa soluzione, puoi consultare il Pianificatore di istanze su AWS per disattivare automaticamente le istanze e i database secondo un programma.
     
    Le sezioni seguenti tratteranno scenari specifici in merito all'utilizzo delle istanze spot AWS, al dimensionamento automatico per aumentare o diminuire in base al carico e all'ottimizzazione dei costi di rete, elaborazione e database.
  • Quando si avvia un'istanza EC2, questa prende il nome di istanza on demand, con i relativi costi al secondo di esecuzione. Puoi anche avviarla come istanza spot EC2, il che consente di sfruttare la capacità EC2 inutilizzata nel cloud AWS. Le istanze spot sono disponibili con prezzi scontati fino al 90% rispetto ai prezzi delle istanze on demand. Poiché si basa sulla capacità EC2 inutilizzata, si prega di prestare attenzione alla sua possibile interruzione in caso di picco di istanze on demand. Quando ciò accadrà, vi sarà un preavviso di 2 minuti. Questo consente di completare qualsiasi richiesta in corso sull'istanza, di chiuderla senza problemi o sospenderla fino a quando la capacità spot non sarà nuovamente disponibile. È possibile utilizzare una combinazione di diversi tipi di istanze spot per ridurre la probabilità che la capacità non sia sufficiente per le tue richieste. Consulta la sezione successiva per saperne di più.

  • Dimensionare le risorse verso l'alto e verso il basso in base al carico di lavoro corrente consente di disporre della capacità sufficiente per gestire le richieste in arrivo. Per le istanze Amazon EC2, ciò può essere fatto utilizzando il dimensionamento automatico e configurando le regole di dimensionamento in base a parametri quali il carico della CPU, l'ingresso/uscita di rete, il numero di richieste e altro ancora. Per i carichi di lavoro in cui ci sono picchi prevedibili, quali un sistema utilizzato da una scuola in cui la maggior parte delle persone accede e inizia a utilizzarlo alle 7:00, il dimensionamento automatico può essere configurato con il dimensionamento predittivo per dimensionare, secondo un programma, tra le 6:50 e le 18:10, ad esempio.

    Come indicato nella sezione precedente, le istanze spot sono un modo alternativo per ridurre i costi delle istanze EC2. Utilizzando il dimensionamento automatico, si possono creare flotte miste di istanze composte da una combinazione di istanze on demand e istanze spot, con la possibilità di scegliere quali istanze spot utilizzare. Ad esempio, puoi configurarlo per utilizzare istanze spot sia per m5.large che per m5.xlarge, con una ponderazione per indicare la capacità fornita da ciascuna di esse. In questo caso, m5.xlarge ha il doppio del calcolo di m5.large, quindi assegnare al primo il valore 2 e a m5.large il valore 1 permetterà al dimensionamento automatico di decidere quale tipo scegliere durante il dimensionamento. La dimensione dell'istanza spot da scegliere può essere configurata in base al prezzo più basso, scegliendo l'istanza con il costo unitario più basso definito con i pesi. In alternativa, può essere ottimizzata in base alla capacità, scegliendo il tipo di istanza con la capacità spot più aggiornata, riducendo la possibilità di interruzione del carico di lavoro.

    Se per le applicazioni utilizzi le funzioni Lambda, esiste lo strumento open source AWS Lambda Power Tuning, ospitato su GitHub, che aiuta a testare il codice utilizzando diverse configurazioni Lambda per trovare la migliore combinazione di costi e prestazioni per te.

  • Un buon punto di partenza per l'ottimizzazione dei costi è l'analisi delle dimensioni dell'istanza EC2 o della funzione Lambda in base alla quantità di elaborazione che eseguono. Diversi tipi di istanze EC2 sono ottimizzati per diversi carichi di lavoro, come i CPU ad alta frequenza, l'elevata capacità di memoria, l'archiviazione locale veloce SSD NVME, le GPU collegate per il machine learning e l'elevata velocità di trasmissione effettiva di rete. Ad esempio, se noti che il carico di lavoro richiede un uso intensivo di CPU, potrebbe risultare più economico utilizzare la famiglia di istanze C5 anziché quelle generiche M5. Al contrario, se riscontri solo picchi periodici nell'utilizzo della CPU, la famiglia di istanze a prestazioni espandibili T potrebbe essere più adatta al tuo carico di lavoro. Per iniziare a ottimizzare l'elaborazione, puoi utilizzare il Sistema di ottimizzazione del calcolo AWS per analizzare i carichi di lavoro in esecuzione e formulare raccomandazioni.

  • Il trasferimento di dati tra Regioni AWS, zone di disponibilità (AZ) o tra AWS e Internet ha un costo associato. Questo costo può essere ridotto progettando la tua infrastruttura per instradare il traffico lungo percorsi ottimali. Il primo passaggio è l'analisi degli endpoint VPC se si effettuano chiamate a servizi AWS, come Amazon S3 o Amazon ECR. Creando un endpoint VPC all'interno del proprio VPC, le chiamate ai servizi AWS supportati vengono instradate attraverso l'endpoint stesso e rimangono all'interno della rete AWS. Questo processo evita di chiamare dal VPC a Internet e quindi di nuovo alla rete AWS. Questo ti aiuterà a evitare i costi di uscita dalla rete.

    L'ottimizzazione delle chiamate tra l'infrastruttura rappresenta il passaggio successivo. Quando si esegue la distribuzione su più zone di disponibilità per la resilienza, è possibile utilizzare l'affinità tra zone di disponibilità per garantire che le chiamate vengano instradate il più possibile all'interno di ciascuna zona di disponibilità. Se la tua applicazione utilizza un database supportato da Amazon RDS, puoi creare repliche di lettura in modo che tutte le chiamate di lettura effettuate possano essere eseguite utilizzando la replica di lettura all'interno della stessa zona di disponibilità.

     

  • Per avviare l'ottimizzazione dei costi del database, puoi implementare ulteriori repliche di lettura per scaricare le query dal database primario che legge solo i dati. Ciò libererà capacità sul nodo primario che gestisce tutte le modifiche ai dati (aggiornamenti, inserimenti ed eliminazioni). Questo contribuirà a ottimizzare fino a quando sarà necessario iniziare a dimensionare l'istanza del database verso l'alto o verso il basso in base alle fluttuazioni del carico. È possibile modificare la dimensione dell'istanza di un database Amazon RDS. È necessario che il database sia offline mentre viene modificato il tipo di istanza. Se l'applicazione richiede un tempo di attività continuo, si consiglia di utilizzare Amazon Aurora, un servizio di database relazionale che unisce la velocità e la disponibilità dei database commerciali di fascia alta alla semplicità e al costo ridotto dei database open source. Aurora è completamente compatibile con MySQL e PostgreSQL e consente di eseguire le applicazioni e gli strumenti esistenti senza necessità di modifiche. Amazon Aurora serverless è una configurazione on demand dimensionabile per Aurora in cui il database si avvia, si spegne e dimensiona automaticamente la capacità verso l'alto o verso il basso, in base alle esigenze dell'applicazione.

  • Dopo aver ottimizzato il carico di lavoro il più possibile, e se c'è un carico minimo fisso da supportare, vale la pena prendere in considerazione l'iscrizione a un Savings Plan (piano di risparmio). Un Savings Plan è un modello di sconto flessibile che offre gli stessi sconti delle istanze riservate, in cambio dell'impegno a utilizzare un importo specifico (misurato in dollari all'ora) di potenza di calcolo per un periodo di uno o tre anni. I Savings Plan sono disponibili in due versioni:

    I Compute Savings Plans forniscono una maggiore flessibilità e aiutano a ridurre i costi fino al 66% (proprio come le istanze riservate modificabili). I piani si applicano automaticamente a qualsiasi istanza EC2 indipendentemente dalla Regione, dalla famiglia di istanze, dal sistema operativo o dalla tenancy, comprese quelle che fanno parte di Amazon EMR, di Amazon ECS o di un cluster Amazon EKS. Ad esempio, puoi passare da istanze C4 a C5, spostare un carico di lavoro da Dublino a Londra o migrare da EC2 ad AWS Fargate beneficiando dei prezzi del Savings Plan lungo il percorso, senza dover fare nulla.

    Gli Instance Savings Plans EC2 si applicano a una specifica famiglia di istanze all'interno di una Regione e offrono lo sconto maggiore (fino al 72%, proprio come le istanze riservate standard). Proprio come con le istanze riservate, il tuo Savings Plan copre l'utilizzo di diverse dimensioni di istanze dello stesso tipo (ad esempio c5.4xlarge o c5.large) in tutta una Regione. Puoi persino passare da Windows a Linux continuando a trarne vantaggio, senza dover apportare modifiche al tuo Savings Plan.

  • Strumenti e servizi per contribuire all'ottimizzazione dei costi

Questa pagina è stata utile?