Tecniche di ottimizzazione dei costi per Amazon OpenSearch Service - OpenSearch Servizio Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tecniche di ottimizzazione dei costi per Amazon OpenSearch Service

Di seguito sono riportate alcune delle tecniche più comunemente utilizzate per ottimizzare i costi durante l'utilizzo di Amazon OpenSearch Service, sia Managed Clusters che Serverless. Poiché ogni carico di lavoro è unico, valuta queste strategie rispetto ai tuoi modelli di utilizzo specifici e convalidale in un ambiente di test prima di applicarle alla produzione.

Ottimizzazione dei costi per i cluster gestiti da Amazon OpenSearch Service

Fonte derivata: ignora la memorizzazione del campo _source

Derived Source è una funzionalità di ottimizzazione dello storage che elimina il sovraccarico legato alla memorizzazione del campo: _source

  • OpenSearch memorizza ogni documento inserito due volte: una volta nel _source campo (documento non elaborato) e una volta come campi indicizzati per la ricerca.

  • Il _source campo da solo può occupare una notevole quantità di spazio di archiviazione, spesso il 30-50% dello spazio di archiviazione totale dell'indice.

  • Con Derived Source, si evita l'archiviazione _source e la si ricostruisce invece dinamicamente da campi indicizzati quando necessario (durante le operazioni di ricerca, get, mget, reindex o aggiornamento).

  • Si tratta di un opt-in, abilitato al momento della creazione dell'indice utilizzando le impostazioni dell'indice composito.

  • Disponibile in tutte le regioni in cui è supportata la versione OpenSearch 3.1 o successiva.

Ideale per: carichi di lavoro analitici e di registrazione in cui non è necessario recuperare frequentemente il documento non elaborato originale ma è comunque necessario cercare e aggregare più campi.

Per ulteriori informazioni, consulta la documentazione open source e l'annuncio What's New.

OR1 / OR2 / OM2 instances: famiglie di istanze OpenSearch ottimizzate

OR1 e le OM2 istanze più recenti OR2 utilizzano Amazon S3 per lo storage di repliche tramite la replica di segmenti:

  • OR2: Throughput di indicizzazione fino al 26% superiore rispetto al 70% in più rispetto alle istanze R7g. OR1

  • OM2: Throughput di indicizzazione fino al 15% superiore rispetto alle istanze M7g, il 66% in più. OR1

  • Entrambe utilizzano la stessa architettura: EBS locale per lo storage principale e S3 per la durabilità.

  • Elimina i costi di storage delle repliche: repliche archiviate in S3 (durabilità 11 nove secondi) anziché in costosi volumi EBS.

  • Miglioramento del rapporto prezzo/prestazioni fino al 30% rispetto alle istanze della generazione precedente.

  • Supporta Shallow Snapshot v2, ossia istantanee quasi istantanee senza sovraccarico. I/O

Ideale per: carichi di lavoro di analisi operativa e analisi dei log che richiedono un'elevata indicizzazione.

Per ulteriori informazioni, consulta l'argomento relativo all'annuncio OR2 e alle OM2 novità e alla guida per gli OpenSearch Istanze ottimizzate per i domini Amazon OpenSearch Service sviluppatori.

Indici cumulativi: aggregano i dati storici delle serie temporali

Gli indici cumulativi riepilogano e comprimono i dati delle serie temporali precedenti in intervalli di tempo più approssimativi, riducendo drasticamente il volume di archiviazione:

  • Dati IoT/sensori: conserva i dati al secondo in hot storage per periodi recenti; aggrega i riepiloghi orari o giornalieri per i dati più vecchi.

  • Metriche di sistema: conserva le metriche dettagliate degli ultimi 30 giorni; aggrega i dati più vecchi in riepiloghi orari o giornalieri.

  • Dati di registro: conserva tutti i dettagli per la finestra di risoluzione dei problemi attiva (ad esempio, 1 settimana); mantieni i modelli di errore riepilogati per i periodi precedenti.

  • Combinalo con le politiche ISM per automatizzare il rollup e la migrazione a più livelli in un'unica politica del ciclo di vita.

  • Maggiori risparmi nell'aggregazione da secondi a ore rispetto a secondi a minuti.

Per ulteriori informazioni, consulta il post sul blog Index Rollups.

Index State Management: automatizza l'intero ciclo di vita dei dati

Le policy ISM automatizzano lo spostamento degli indici attraverso livelli di storage e azioni del ciclo di vita:

  • Migrazione automatica degli indici: da Hot to Cold to Cold to Delete, in base UltraWarm all'età, alle dimensioni o al numero di documenti.

  • Attiva i rollup prima delle transizioni di livello per ridurre il volume di dati.

  • Imposta politiche di rollover (ad esempio, quando un indice raggiunge i 50 GB o ha 30 giorni) per controllare la crescita dell'indice.

  • Automatizza l'unione forzata sugli indici di sola lettura per recuperare spazio di archiviazione dai documenti eliminati.

  • Combinalo con i rollup per il massimo risparmio su set di dati di grandi serie temporali.

Istanze riservate: assicurati sconti prevedibili

Per carichi di lavoro analitici stabili e prevedibili, le istanze riservate offrono sconti significativi rispetto ai prezzi on demand:

  • Termini di impegno di 1 o 3 anni senza opzioni di pagamento anticipato, anticipato parziale o completamente anticipato.

  • Ideale per nodi di dati di livello avanzato e nodi master dedicati che funzionano continuamente.

  • Usa il calcolatore AWS dei prezzi per stimare i risparmi prima di impegnarti.

  • Le istanze riservate sono uno sconto di fatturazione applicato alle istanze on demand: non sono necessarie modifiche all'infrastruttura.

Tipi di istanze e numero corretti

Linee guida chiave tratte da OpenSearch Well-Architected Lens e best practice per il corretto dimensionamento:

  • Utilizza sempre istanze di ultima generazione (ad esempio, le istanze Graviton3 offrono prestazioni migliori fino al 25% rispetto alle istanze basate su Graviton2).

  • Utilizza i volumi EBS gp3 anziché gp2: prestazioni migliori a costi inferiori senza costi aggiuntivi.

  • Abbina il tipo di istanza al carico di lavoro: ottimizzata per la memoria per le ricerche intensive, ottimizzata per il calcolo per le attività di indicizzazione più impegnative.

  • Valuta i nodi dedicati alla gestione dei cluster: necessari solo per 3 o più nodi di dati; evita di sovradimensionare i nodi master con dimensioni eccessive.

  • Monitora i CloudWatch parametri per rilevare l'over-provisioning: CPU sostenuta inferiore al 40%, JVM inferiore al 50% e storage inferiore al 50% sono segnali di spreco.

  • Intervalli ottimali: CPU 60-80%, JVM 65-85%, storage 70-85% per carichi di lavoro sostenuti.

Per ulteriori informazioni, consulta il post sul blog Right-Sizing Best Practices.

Ottimizzazione degli shard: evita lo sharding eccessivo

L'over-sharding è un fattore di costo nascosto: troppi shard di piccole dimensioni sprecano CPU, memoria e heap JVM:

  • Dimensioni degli shard consigliate: 10-50 GiB per shard a seconda del carico di lavoro.

  • Non più di 25 shard per GiB di heap Java, non più di 1.000 shard per nodo di dati.

  • Utilizza le politiche di rollover di ISM per controllare la crescita degli indici ed evitare la proliferazione illimitata degli shard.

  • Riduci il numero di repliche laddove la durabilità lo consente (OR1/OR2 le istanze eliminano completamente la necessità di repliche).

  • Utilizza l'unione forzata sugli indici di sola lettura per ridurre il numero di segmenti e recuperare spazio di archiviazione.

Per ulteriori informazioni, consulta Quanti frammenti mi servono?

Zero-ETL/Interrogazione diretta con Amazon S3

Per i dati che vengono interrogati molto raramente ma che devono rimanere accessibili, Direct Query (zero-ETL con S3) consente di interrogare i dati S3 direttamente senza importarli: OpenSearch

  • Nessun costo di inserimento: i dati rimangono in S3.

  • Nessun costo di storage di livello superiore per i dati di archiviazione.

  • Pay-per-query modello di calcolo.

  • Supporta OpenSearch dashboard per la visualizzazione.

  • La latenza di secondi o minuti è accettabile, non per i casi d'uso in tempo reale.

Campionamento e compressione al momento dell'ingestione

Riduci i costi prima ancora che i dati raggiungano: OpenSearch

  • Campionamento: inserisci solo un sottoinsieme rappresentativo di flussi di log ad alto volume (ad esempio, il 10% dei log di debug).

  • Compressione dell'indice: abilita il codec di compressione migliore per ridurre l'ingombro di archiviazione.

  • Filtraggio dei campi: elimina i campi ad alta cardinalità e con basso valore prima dell'indicizzazione (ad esempio, tracce di stack non elaborate per i vecchi log).

  • Politiche di conservazione: definisci finestre di conservazione massime in linea con i requisiti di conformità: non archiviare mai i dati a tempo indeterminato.

Evita i costi di assistenza prolungati: rimani aggiornato sulle versioni del motore

Amazon OpenSearch Service addebita una tariffa fissa per l'ora di istanza normalizzata per le versioni del motore in Extended Support:

  • Il mantenimento di versioni precedenti e non supportate comporta costi aggiuntivi oltre ai costi delle istanze.

  • Esegui l'upgrade alle versioni attualmente supportate per evitare i costi di Extended Support.

Tag di allocazione dei costi e monitoraggio CloudWatch

La governance proattiva dei costi previene gli sprechi:

  • Applica i tag di allocazione dei costi ai OpenSearch domini per un monitoraggio dettagliato dei costi per team o carico di lavoro.

  • Imposta CloudWatch allarmi per l'utilizzo dello storage, la pressione della JVM e la CPU per rilevare tempestivamente l'over-provisioning.

  • Usa AWS Cost Explorer per identificare i domini con un utilizzo costantemente basso.

  • Evaluate Auto-Tune: regola automaticamente le dimensioni dell'heap JVM e altre impostazioni per migliorare le prestazioni e ridurre lo spreco di risorse.

Ottimizzazione dei costi per Amazon OpenSearch Service Serverless

Ricerca vettoriale ottimizzata per il disco (raccolte vettoriali)

La ricerca vettoriale ottimizzata per disco è una delle tecniche di riduzione dei costi più potenti per i carichi di lavoro vettoriali. Esegue la ricerca vettoriale a una frazione del costo della modalità in memoria, mantenendo solo i vettori compressi nella RAM e archiviando vettori ad alta precisione su disco.

Come funziona:

  • In modalità standard (in_memory), l'intero grafico HNSW viene caricato nella RAM, il che diventa proibitivamente costoso su larga scala.

  • In on_disk modalità, solo i vettori compressi (quantizzati) vengono conservati in memoria per la generazione candidata; i vettori a piena precisione vengono recuperati dal disco solo per la fase di rescoring finale (ricerca a due fasi).

  • Ciò riduce drasticamente il fabbisogno di RAM mantenendo al contempo un'elevata qualità di ricerca.

  • on_diskLa modalità predefinita utilizza una quantizzazione binaria 32x, riducendo i requisiti di memoria del 97% rispetto alla modalità in memoria.

  • Supporta i livelli di compressione: 2x (FP16), 4x (byte), 8x, 16x, 32x (binario).

  • Latenza P90 nell'intervallo 100-200 ms, adatta per carichi di lavoro che non richiedono tempi di risposta a una cifra di millisecondi.

Benchmark per il risparmio sui costi:

Set di dati Richiama @100 Latenza P90 Riduzione dei costi
Coerenza TREC-RAG 0,94 104 ms 83%
Tasb-1M 0,96 7 ms 67%
Marco-1M 0,99 7 ms 67%

Ideale per: pipeline RAG, ricerca semantica, recupero di documenti e qualsiasi carico di lavoro vettoriale in cui una latenza P90 di 100-200 ms è accettabile e la riduzione dei costi è una priorità.

Nota

Per applicare questa modifica ai dati indicizzati esistenti, è necessario reindicizzare. È possibile utilizzare uno strumento di pipeline esterno, ad esempio per reindicizzare i dati in un nuovo indice.

Per ulteriori informazioni, consultate il post del blog Disk-Optimized Vector Search, il post sul blog Quantization Techniques e. Lavorare con le raccolte di ricerca vettoriale

Vector Auto-Optimize (raccolte vettoriali)

L'ottimizzazione automatica valuta automaticamente le configurazioni degli indici vettoriali e consiglia il miglior compromesso tra qualità di ricerca, latenza e costo della memoria, senza richiedere competenze vettoriali:

  • Fornisce consigli di ottimizzazione in meno di un'ora.

  • Integrato con pipeline di ingestione vettoriale.

  • Può essere combinato con l'indicizzazione accelerata da GPU per database vettoriali su scala miliardaria.

Per ulteriori informazioni, consulta il post sul blog Auto-Optimize.

Indicizzazione vettoriale accelerata da GPU (raccolte vettoriali)

L'accelerazione GPU trasferisce l'indicizzazione vettoriale HNSW alla modalità serverless, riducendo drasticamente i tempi e i costi dell'OCU legati alla creazione di indici vettoriali di grandi dimensioni: GPUs

  • Tempi di creazione degli indici da 6,4 a 13,8 volte più rapidi rispetto all'indicizzazione basata solo su CPU.

  • Costi OCU di indicizzazione inferiori fino al 75% per carichi di lavoro vettoriali con elevati livelli di scrittura.

  • GPUs sono collegati dinamicamente: paghi solo quando l'accelerazione GPU è attiva. OCUs

  • Consente di creare database vettoriali su scala miliardaria in meno di un'ora.

  • Caricato separatamente come accelerazione vettoriale. OCUs

Ideale per: ingestione vettoriale iniziale su larga scala o frequenti scenari di riqualificazione dei modelli in cui la ricostruzione degli indici è costosa.

Per ulteriori informazioni, consulta il post sul blog GPU Acceleration.

Imposta i limiti massimi dell'OCU (tutti i tipi di raccolta)

Amazon OpenSearch Service Serverless si ridimensiona automaticamente in OCUs base alla richiesta. Senza un limite, i costi possono aumentare inaspettatamente. Imposta un limite massimo di OCU a livello di account o per gruppo di raccolta per evitare una scalabilità incontrollata. Il sistema è scalabile fino a questo limite durante i picchi di carico, ma non lo supererà.

Valori consentiti:

  • Livello di account: qualsiasi valore fino a 1.700 OCUs (non limitato a multipli di 16).

  • Gruppi di raccolta: 1, 2, 4, 8, 16 e multipli di 16 fino a 1.696. OCUs

Monitora le CloudWatch metriche (OCUUtilization) per ridimensionare correttamente le impostazioni massime dell'OCU nel tempo.

Nota

Se l'utilizzo raggiunge il limite massimo dell'OCU, le prestazioni potrebbero peggiorare notevolmente anche se i costi sono contenuti. Il raggiungimento del limite massimo non risolve la causa alla base del picco dell'OCU. Per le raccolte vettoriali, la causa principale sono in genere i vettori in memoria, che devono essere affrontati direttamente ottimizzando l'indicizzazione vettoriale, riducendo la dimensione dell'indice o regolando i compromessi tra richiamo e precisione.

Suggerimento

Iniziate con una OCU massima conservativa e aumentatela solo quando mostrate un utilizzo prolungato vicino al limite massimo. CloudWatch Se raggiungi costantemente il limite massimo, analizza la causa principale, in particolare l'utilizzo dei vettori in memoria per le raccolte vettoriali, anziché limitarti a innalzare il limite.

Per ulteriori informazioni, consulta Gestione dei limiti di capacità per Amazon OpenSearch Serverless.

Ottimizza il periodo di conservazione (raccolte di serie temporali)

Le policy relative al ciclo di vita dei dati eliminano automaticamente i dati dalle raccolte di serie temporali dopo un periodo di conservazione specificato, impedendo una crescita illimitata dello storage. Solo le raccolte di serie temporali supportano le politiche relative al ciclo di vita dei dati, mentre la ricerca e le raccolte vettoriali no.

Il conteggio OCU per le raccolte di serie temporali dipende direttamente dalla quantità di dati recenti che devono essere conservati nell'archiviazione locale. Le raccolte di serie temporali conservano solo la parte più recente dei dati nell'archiviazione OCU locale; i dati più vecchi vengono trasferiti su S3 e il numero di scale di conseguenza: OCUs

OCUs required = max (minimo OCUs, OCUs necessario per conservare i dati entro la finestra di conservazione)

Configurazione delle politiche del ciclo di vita dei dati:

  • Imposta periodi di conservazione da 24 ore a 3.650 giorni per indice o modello di indice.

  • Amazon OpenSearch Service Serverless elimina automaticamente i dati nel miglior modo possibile (in genere entro 48 ore o il 10% del periodo di conservazione).

  • Le regole possono essere applicate a livello di raccolta, a livello di modello di indice o a livello di indice individuale: le regole più specifiche hanno la precedenza.

Esempio di dimensionamento:

  • 1 TiB/day ingestione con una conservazione di 30 giorni = circa 1 TiB di hot data = 20 OCUs per l'indicizzazione + 20 per la ricerca. OCUs

  • Riduzione a una conservazione di 7 giorni = circa 233 GiB di hot data = circa OCUs 4 per l'indicizzazione + 4 per la ricerca. OCUs

Una conservazione più breve significa meno dati «hot» nello storage locale, meno dati OCUs necessari e una minore spesa di elaborazione. Allinea i periodi di conservazione agli effettivi requisiti aziendali e di conformità: per impostazione predefinita, non conservare i dati a tempo indeterminato.

Per ulteriori informazioni, consulta Utilizzo delle politiche del ciclo di vita dei dati con Amazon Serverless OpenSearch.

Evita di archiviare dati non necessari (tutti i tipi di raccolta)

La riduzione diretta del volume di dati acquisiti riduce sia i costi di elaborazione (OCUs) che quelli di archiviazione:

  • Filtra i campi al momento dell'inserimento: utilizza le pipeline per eliminare i campi di basso valore prima che raggiungano la raccolta.

  • Evita di importare dati duplicati o ridondanti: deduplica a livello di pipeline.

  • Usa le mappature degli indici appropriate: disabilita l'indicizzazione sui campi archiviati ma mai ricercati (). "index": false

  • Per le raccolte di ricerca: evitate di archiviare blob binari di grandi dimensioni o testo non elaborato che gonfia lo spazio di archiviazione senza valore di ricerca.

Gruppi di raccolta per carichi di lavoro multi-tenant (tutti i tipi di raccolta)

I gruppi di raccolta consentono raccolte multiple con chiavi KMS diverse per condividere le risorse OCU all'interno dello stesso limite di sicurezza, riducendo drasticamente i costi per le architetture multi-tenant. Applicabile ai clienti che utilizzano più chiavi KMS per tenant o per raccolta:

  • In precedenza, ogni chiave KMS unica richiedeva una chiave KMS dedicata, il che rendeva OCUs proibitivo l'isolamento per tenant.

  • Con i gruppi di raccolta, i tenant con chiavi di crittografia separate possono condividere la capacità dell'OCU.

  • Risparmi sui costi fino al 90% per un gran numero di carichi di lavoro degli inquilini più piccoli.

  • Supporta sia i valori minimi OCUs (base garantita, nessun avvio a freddo) che quelli massimi OCUs (limite di costo).

  • Le raccolte con diversi tipi di accesso alla rete (pubblico e VPC) possono coesistere nello stesso gruppo.

  • CloudWatch le metriche forniscono visibilità per gruppo sul consumo di risorse e sulla latenza.

Ideale per: provider SaaS, piattaforme multi-tenant o qualsiasi carico di lavoro con molte piccole raccolte che richiedono ciascuna la propria chiave KMS.

Per ulteriori informazioni, consulta il post sul blog Collection Groups, l'annuncio What's New e. Gruppi di raccolta Amazon OpenSearch Serverless