Configurazione aggiuntiva per istanze e cluster database Neptune Serverless - Amazon Neptune

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à.

Configurazione aggiuntiva per istanze e cluster database Neptune Serverless

Oltre a impostare la capacità minima e massima per il cluster database Neptune Serverless, ci sono alcune altre opzioni di configurazione da considerare.

Combinazione di istanze serverless e istanze con provisioning in un cluster database

Un cluster database non deve necessariamente essere solo serverless: puoi creare una combinazione di istanze serverless e istanze con provisioning (ossia una configurazione mista).

Ad esempio, supponi di aver bisogno di più capacità in scrittura rispetto a quella disponibile in un'istanza serverless. In questo caso, puoi configurare il cluster con un'istanza di scrittura con provisioning di dimensioni molto grandi e continuare a utilizzare le istanze serverless per le istanze di lettura.

Altrimenti supponi che il carico di lavoro in scrittura per il cluster vari, ma che il carico di lavoro in lettura sia costante. In questo caso, puoi configurare il cluster con un'istanza di scrittura serverless e una o più istanze di lettura con provisioning.

Per informazioni su come creare un cluster database con configurazione mista, consulta la pagina Utilizzo di Amazon Neptune Serverless.

Impostazione dei livelli di promozione per le istanze Neptune Serverless

Per cluster contenenti più istanze serverless o una combinazione di istanze serverless e istanze con provisioning, presta attenzione all'impostazione del livello di promozione per ciascuna istanza serverless. Questa impostazione ha un controllo maggiore sul comportamento delle istanze serverless rispetto a quello che ha sulle istanze database con provisioning.

In AWS Management Console, si specifica questa impostazione utilizzando la priorità di failover in Configurazione aggiuntiva nelle pagine Crea database, Modifica istanza e Aggiungi lettore. Questa proprietà viene visualizzata per le istanze esistenti nella colonna facoltativa Livello di priorità nella pagina Database. È inoltre possibile visualizzare questa proprietà nella pagina dei dettagli di un cluster database o un'istanza.

Per le istanze con provisioning, la scelta del livello 0-15 determina solo l'ordine in base al quale Neptune sceglie l'istanza di lettura da promuovere a istanza di scrittura durante un'operazione di failover. Per le istanze di lettura Neptune Serverless, il numero del livello determina anche se l'istanza aumenta le proprie dimensioni in modo che corrispondano alla capacità dell'istanza di scrittura oppure se si dimensiona separatamente da essa in base solo al proprio carico di lavoro.

Le istanze di lettura Neptune Serverless di livello 0 o 1 vengono mantenute a una capacità minima pari almeno a quella dell'istanza di scrittura, in modo che siano pronte a sostituire quest'ultima in caso di failover. Se l'istanza di scrittura è con provisioning, Neptune stima la capacità serverless equivalente e utilizza tale stima come capacità minima per l'istanza di lettura serverless.

Le istanze di lettura Neptune Serverless di livello da 2 a 15 non hanno lo stesso vincolo per quanto riguarda la capacità minima ed eseguono il dimensionamento indipendentemente dall'istanza di scrittura. Quando sono inattive, riducono le proprie dimensioni fino al valore NCU minimo specificato nell'intervallo di capacità del cluster. Tuttavia, ciò può causare problemi se il carico di lavoro in lettura aumenta molto e rapidamente.

Mantenere la capacità in lettura allineata a quella in scrittura

Una cosa importante da tenere a mente è che l'obiettivo è quello di garantire che le istanze di lettura possano tenere il passo con l'istanza di scrittura, onde evitare un ritardo di replica eccessivo. Questo è un aspetto a cui prestare particolare attenzione in due situazioni, in cui le istanze di lettura serverless non si dimensionano automaticamente in modo sincronizzato con l'istanza di scrittura:

  • Quando l'istanza di scrittura è con provisioning e le istanze di lettura sono serverless.

  • Quando l'istanza di scrittura è serverless e le istanze di lettura serverless hanno un livello di promozione compreso tra 2 e 15.

In entrambi i casi, è opportuno impostare la capacità serverless minima in modo che corrisponda a quella di scrittura prevista, così da garantire che le operazioni di lettura non vadano in timeout causando potenziali riavvii. Nel caso di un'istanza di scrittura con provisioning, è opportuno impostare la capacità minima in modo che corrisponda a quella dell'istanza con provisioning. Nel caso di un'istanza di scrittura serverless, l'impostazione ottimale potrebbe essere più difficile da prevedere.

Poiché l'intervallo di capacità delle istanze è impostato a livello di cluster, tutte le istanze serverless sono controllate dalle stesse impostazioni di capacità minima e massima. Le istanze di lettura di livello 0 e 1 si dimensionano in modo sincronizzato con l'istanza di scrittura, mentre le istanze con livello di promozione compreso tra 2 e 15 si dimensionano indipendentemente l'una dall'altra e dall'istanza di scrittura, in funzione del rispettivo carico di lavoro. Se imposti la capacità minima su un valore troppo basso, le istanze inattive di livello da 2 a 15 possono ridursi a dimensioni troppo piccole, che non riescono ad aumentare di nuovo abbastanza velocemente da gestire un'improvviso picco nell'attività di scrittura.

Evitare di impostare un valore di timeout troppo elevato

Potrebbero essere applicati costi imprevisti se viene impostato un valore di timeout delle query troppo elevato su un'istanza serverless.

Senza un'impostazione di timeout ragionevole, è possibile eseguire inavvertitamente una query che richiede un tipo di istanza potente e costoso, e che continua ad essere eseguita per un periodo di tempo molto lungo, con costi mai previsti. Per evitare questa situazione, specifica un valore di timeout delle query adatto alla maggior parte delle query e che causa il timeout solo delle query con tempi di esecuzione inaspettatamente lunghi.

Questo vale sia per i valori di timeout generali delle query, impostati utilizzando i parametri, sia per i valori di timeout per specifiche query, impostati utilizzando gli hint di query.

Ottimizzazione della configurazione di Neptune Serverless

Se il cluster database Neptune Serverless non è ottimizzato per il carico di lavoro in esecuzione, potresti notare un funzionamento non ottimale. Puoi regolare l'impostazione della capacità minima e/o massima in modo che il dimensionamento avvenga senza problemi di memoria.

  • Incremento dell'impostazione minima della capacità per il cluster Questa operazione consente di correggere la situazione in cui un'istanza inattiva torna a una capacità con meno memoria di quella richiesta dall'applicazione e dalle funzionalità abilitate.

  • Incremento dell'impostazione massima della capacità per il cluster Questa operazione consente di correggere la situazione in cui un database occupato non è in grado di aumentare le dimensioni fino a una capacità con memoria sufficiente per gestire il carico di lavoro ed eventuali funzionalità abilitate che consumano molta memoria.

  • Modifica il carico di lavoro sull'istanza in questione. Ad esempio, puoi aggiungere istanze di lettura al cluster per distribuire il carico in lettura su più istanze.

  • Ottimizza le query dell'applicazione in modo che utilizzino meno risorse.

  • Prova a utilizzare un'istanza con provisioning che abbia dimensioni più grandi del numero massimo di NCU disponibili in Neptune Serverless, per vedere se è più adatta ai requisiti di memoria e CPU del carico di lavoro.