Panoramica

Oltre ai vantaggi in termini di prestazioni, sicurezza e disponibilità dell'applicazione web, CloudFront può essere utilizzato per ridurre i costi delle applicazioni web. Innanzitutto, il modello di prezzo di CloudFront potrebbe ridurre i costi di origine. In secondo luogo, puoi configurare CloudFront e progettare la tua applicazione per ridurne i costi. Per una guida più generale sull'ottimizzazione dei costi utilizzando i servizi AWS, considera il principio di ottimizzazione dei costi di Framework AWS Well-Architected. Per monitorare e comprendere i costi, utilizza Esploratore dei costi AWS e AWS Budgets.

Prezzi di CloudFront

Il modello di prezzo di CloudFront include diverse dimensioni, le cui due principali sono:

  • Il DTO (Data Transfer Out, trasferimento dei dati in uscita) regionale ad Internet, che rappresenta la quantità di GB serviti da CloudFront agli utenti su Internet. Tieni presente che questo prezzo dipende dalla regione degli utenti, viene misurato utilizzando gigabyte binari (ad esempio 1 GB = 1024 MB) e include solo il payload HTTP (ad esempio escludendo il trasferimento dati tramite handshake TLS).
  • Le tariffe di richiesta, che rappresentano il numero di richieste HTTP(S) servite da CloudFront. Ciò dipende anche dalla regione degli utenti.

Per impostazione predefinita, CloudFront utilizza tutta la sua rete per fornire contenuti al fine di ottenere le migliori prestazioni. Prendi in considerazione la possibilità di configurare le opzioni della categoria di prezzo in CloudFront se sei disposto a trovare un compromesso con i costi di spedizione.

CloudFront ha un piano gratuito sempre attivo, che include ogni mese 1 TB di DTO e 10 milioni di richieste HTTP(S). Se utilizzi AWS WAF in combinazione con CloudFront, prendi in considerazione un impegno anticipato con il Bundle CloudFront Security Savings per risparmiare fino al 30% sui costi di CloudFront. Per volumi maggiori (10 TB o più), contattaci per ottenere ulteriori riduzioni in cambio di un maggiore impegno finanziario, firmando un accordo sui prezzi privato. Tieni presente che lo sconto che puoi ottenere è maggiore quando il traffico complessivo ha una dimensione media degli oggetti HTTP consegnati più alta. Di conseguenza, si consiglia di utilizzare CloudFront per più carichi di lavoro (distribuzione di API e distribuzione di file statici) per aumentare lo sconto complessivo che è possibile ottenere grazie a un accordo tariffario privato.

È importante constatare che quando viene utilizzato con un'origine basata su AWS, il DTO di CloudFront sostituisce il DTO dell'origine. Pertanto, non si paga il Data Transfer Out (DTO) dell'origine.

Infine, rivedi e ottimizza l'utilizzo delle funzionalità opzionali di CloudFront, che potrebbero generare costi aggiuntivi, come l'invalidazione dei contenuti.

Ottimizzazione del costo delle invalidazioni in CloudFront

In base ai prezzi di CloudFront, puoi utilizzare 1.000 percorsi per l'invalidazione ogni mese senza costi aggiuntivi. Superata questa soglia, il costo è di 0,005 USD per percorso richiesto per l'invalidazione. Un percorso elencato in una richiesta di invalidazione rappresenta l'URL (o gli URL, se il percorso contiene caratteri jolly) degli oggetti che desideri invalidare nella cache di CloudFront.

Prendi in considerazione i seguenti suggerimenti per ottimizzare il costo delle invalidazioni utilizzando CloudFront:

  • Per impostazione predefinita, affidati ai meccanismi di controllo della cache HTTP (ad esempio intestazione Cache-Control, controllo delle versioni degli URL, richieste condizionali) e scegli in maniera preferenziale le invalidazioni basate su CDN per gli scenari di rottura. Per maggiori dettagli, leggi questo post del blog.
  • Usa un jolly nelle tue invalidazioni, se possibile, per invalidare più file con una singola richiesta di invalidazione. Ad esempio, usa /storie/sport/coppa del mondo* per invalidare tutti gli articoli relativi all'evento della Coppa del Mondo, invece di invalidarli uno per uno.

Puoi monitorare l'utilizzo delle invalidazioni e impostare allarmi utilizzando Budgets AWS .

Utilizzo di CloudFront per ridurre i costi delle applicazioni web

CloudFront riduce in modo nativo i costi della tua applicazione web, alleggerendo il carico dell'origine. Innanzitutto, CloudFront serve richieste memorizzabili nella cache dalla propria cache, il che riduce i costi di scalabilità dell'origine. Puoi ottimizzare la configurazione di CloudFront per alleggerire ulteriormente l'origine aumentando la percentuale di accessi alla cache (ad esempio abilitando Origin Shield). In secondo luogo, CloudFront riutilizza le connessioni TCP/TLS all'origine per richieste dinamiche (ad esempio chiamate API), riducendo il numero di nuove connessioni che devono essere gestite dall'origine e la quantità di certificati TLS in uscita dall'origine. Ciò riduce i costi di origine come ALB perché il consumo di LCU diminuisce grazie al ridotto numero di nuove connessioni al secondo e al numero di byte elaborati.

Puoi configurare CloudFront per ridurre ulteriormente i costi in diversi modi. Ad esempio, comprimi i file di testo utilizzando GZIP o Brotli per ridurre il DTO. Un altro esempio: quando la tua applicazione necessita di funzioni edge, prediligi l'utilizzo di Funzioni CloudFront quando possibile, perché è meno costoso di Lambda@Edge. Leggi le best practice per ottimizzare le funzioni edge per ridurne i costi.

Infine, prediligi l'utilizzo di una l'intestazione Cache-Control standard per controllare l'aggiornamento della cache, invece di utilizzare le invalidazioni come parte delle normali operazioni. Il meccanismo Cache-Control è più affidabile, in quanto può controllare la memorizzazione nella cache del browser e non ha costi (rispetto alle invalidazioni di CloudFront, oltre le quote di 1000 invalidazioni al mese). Usa le invalidazioni per gli scenari di rottura.

Ottimizzazione di AWS WAF

La componente principale del costo di AWS WAF è rappresentata generalmente dalle commissioni di richiesta. Puoi ridurre questo costo in diversi modi:

  • Abilita AWS WAF esclusivamente sulla distribuzione CloudFront che richiede protezione in base alla tua modellazione delle minacce. Ad esempio, se i tuoi contenuti statici ospitati su S3 non richiedono la protezione WAF, spostali in un dominio separato (ad esempio static.example.com) su una distribuzione CloudFront separata e abilita AWS WAF solo sulla distribuzione principale (ad esempio www.example.com) che serve i tuoi file HTML.
  • Quando ti abboni a Shield Advanced, le tariffe di richiesta di AWS WAF sono incluse nel prezzo di Shield Advanced. Shield Advanced addebita un abbonamento mensile e una tariffa premium sulla tua applicazione Data Transfer Out. Se la tua applicazione ha un elevato numero di richieste (richiesta elevata al secondo con payload medio basso, ad esempio con API), abilitare Shield Advanced potrebbe aiutarti a ridurre i costi complessivi di WAF.
  • Infine, alcune regole di AWS WAF hanno costi aggiuntivi, come CATPCHA, il rilevamento dei bot di AWS o le regole gestite dai fornitori presenti nel Marketplace AWS. Ottimizza questi costi adattando tali regole a condizioni specifiche (ad esempio solo gli IP CAPTCHA sospetti o applicando il rilevamento dei bot alle richieste HTML) e utilizzandole alla fine della WebACL, dando la possibilità alle regole gratuite precedenti di bloccare le richieste dannose senza costi aggiuntivi. Leggi questo blog per una spiegazione più approfondita dell'ottimizzazione dei costi delle regole di WAF.

Ottimizzazione a livello di applicazione

Esistono tecniche a livello di applicazione che puoi implementare per ridurre i costi di distribuzione di CloudFront. Considera le seguenti tecniche:

  • Sfrutta la memorizzazione nella cache del browser per ridurre la quantità di richieste inviate da CloudFront
  • Implementa gli ETag sui tuoi oggetti per abilitare le richieste condizionali. Gli aggiornamenti degli oggetti con risposte 304 Not Modified sono più economici da fornire rispetto ai recuperi completi.
  • Implementa l'ottimizzazione delle immagini per comprimere le immagini utilizzando formati moderni come WebP e Avif. Inoltre, carica in maniera asincrona le immagini sul tuo sito Web per evitare di scaricare quelle che non vengono visualizzate dai browser.
  • Implementa lo streaming a velocità di trasmissione adattiva per la distribuzione di video. Prendi in considerazione la codifica video QVBR. Prendi in considerazione la possibilità di fornire una scala di rendering ottimizzata in base ai tipi di dispositivo. Questo blog spiega questo concetto, tuttavia è stato scritto utilizzando Lambda@Edge prima del lancio delle Funzioni CloudFront.
  • Utilizza una stessa policy di origine, se possibile, per le chiamate API, che rimuovono il costo delle richieste CORS OPTION preflight. Leggi questo blog per ulteriori dettagli.
  • Prendi in considerazione tutte le opzioni di registrazione e seleziona quella più efficace per te. I log di accesso standard di CloudFront vengono forniti senza costi aggiuntivi, tuttavia si applicano a tutto il traffico. Al contrario, i log in tempo reale di CloudFront sono configurati in modo granulare dal Comportamento cache di CloudFront e dal campo obbligatorio per un addebito incrementale. WAF offre diverse opzioni di registrazione: la più conveniente è quella basata su Kinesis Firehose. Tieni presente che puoi filtrare le richieste registrate in base a dimensioni come l'operazione della regola o l'etichetta emessa.

Risorse

Questa pagina è stata utile?