Ci sono molti fattori che possono entrare in gioco, quindi non credo che ci siano molte linee guida generali.
Dovresti condurre una valutazione su scala più piccola, magari con 1/5 del set di dati iniziale per vedere come si comportano le cose quando lanci l'indicizzazione e il carico di ricerca previsti all'installazione. Questo ti assicurerà di capire quanto spazio consumeranno i tuoi dati nel motore di ricerca. Per elasticsearch, dipende se stai memorizzando il codice sorgente e come vengono analizzati i campi e se vengono memorizzati.
EC2 può essere un modo ragionevole per valutare la ricerca elastica senza ingenti spese in conto terzi.
Per i software basati su cluster, come elasticsearch, esistono dei compromessi tra mantenere il cluster più piccolo e più grande. Un cluster di grandi dimensioni è utile perché quando si perde un server, è necessario riassegnare meno dati. Un cluster più piccolo consuma meno energia ed è più facile da mantenere.
Eseguiamo un cluster con 35 milioni di documenti con una dimensione totale dell'indice di circa 300 GB x 2, poiché tutti gli indici vengono replicati. Per supportare questo e un numero molto elevato di ricerche, abbiamo 4 nodi, ciascuno con 24 core, 48 GB di RAM e 1 TB di spazio di archiviazione con dischi da 10 KB in raid10. Di recente abbiamo aumentato le dimensioni del disco per assicurarci di avere più spazio per la testa.
Per il tuo caso, consiglierei più RAM e più disco. Probabilmente puoi risparmiare denaro sulle CPU con quel volume di ricerca.
Il volume di ricerca basso danneggia effettivamente le prestazioni, dal momento che le cache (sia interne all'S / W utilizzate che al disco del sistema operativo) non verranno riscaldate bene.
Spero che questo aiuti, Paul