Ada banyak faktor yang dapat berperan, jadi saya tidak berpikir ada banyak pedoman umum.
Anda harus melakukan evaluasi skala yang lebih kecil, mungkin dengan 1/5 data awal yang ditetapkan untuk melihat bagaimana hal-hal berperilaku ketika Anda melempar pengindeksan yang diharapkan dan beban pencarian di setup. Ini akan memastikan Anda memahami berapa banyak ruang yang sebenarnya akan dikonsumsi data Anda di mesin pencari. Untuk elasticsearch, tergantung apakah Anda menyimpan sumber json dan bagaimana bidang dianalisis dan jika mereka disimpan.
EC2 dapat menjadi cara yang masuk akal untuk mengevaluasi elasticsearch tanpa pengeluaran h / w yang besar.
Untuk perangkat lunak berbasis cluster, seperti elasticsearch, ada tradeoff antara menjaga cluster lebih kecil vs lebih besar. Cluster besar bagus karena ketika Anda kehilangan server, lebih sedikit data yang perlu dialokasikan kembali. Cluster yang lebih kecil mengkonsumsi lebih sedikit energi dan lebih mudah dirawat.
Kami menjalankan cluster dengan 35 juta dokumen dengan ukuran indeks total sekitar 300GB x 2, karena semua indeks direplikasi. Untuk mendukung ini dan jumlah pencarian yang sangat besar, kami memiliki 4 node, masing-masing dengan 24 core, 48GB RAM dan 1TB penyimpanan dengan 10K disk di raid10. Kami baru-baru ini menambah ukuran disk untuk memastikan kami memiliki ruang kepala lebih banyak.
Untuk kasus Anda, saya akan merekomendasikan lebih banyak RAM dan lebih banyak disk. Anda mungkin dapat menghemat uang pada CPU dengan volume pencarian itu.
Volume pencarian yang rendah sebenarnya merusak kinerja, karena cache (baik internal ke s / w yang digunakan dan disk OS) tidak akan menghangat dengan baik.
Semoga ini bisa membantu, Paul