W grę może wchodzić wiele czynników, więc nie sądzę, że istnieje wiele ogólnych wskazówek.
Powinieneś przeprowadzić ocenę na mniejszą skalę, być może z 1/5 początkowym zestawem danych, aby zobaczyć, jak będą się zachowywać rzeczy, gdy rzucisz oczekiwane indeksowanie i wyszukiwanie w konfiguracji. Dzięki temu zrozumiesz, ile miejsca faktycznie zajmą Twoje dane w wyszukiwarce. W przypadku wyszukiwania elastycznego zależy od tego, czy przechowujesz źródłowy plik json, jak pola są analizowane i czy są przechowywane.
EC2 może być rozsądnym sposobem oceny elastyczności wyszukiwania bez dużych wydatków na sprzęt.
W przypadku oprogramowania opartego na klastrze, np. Elasticsearch, istnieją kompromisy między utrzymywaniem klastra mniejszym a większym. Duży klaster jest przydatny, ponieważ w przypadku utraty serwera należy ponownie przydzielić mniej danych. Mniejszy klaster zużywa mniej energii i jest łatwiejszy w utrzymaniu.
Prowadzimy klaster z 35 milionami dokumentów z całkowitym rozmiarem indeksu około 300 GB x 2, ponieważ wszystkie indeksy są replikowane. Aby to obsłużyć i bardzo dużą liczbę wyszukiwań, mamy 4 węzły, każdy z 24 rdzeniami, 48 GB pamięci RAM i 1 TB pamięci z 10 000 dysków w RAID10. Niedawno zwiększyliśmy rozmiar dysku, aby zapewnić więcej miejsca na głowie.
W twoim przypadku polecam więcej pamięci RAM i więcej dysku. Dzięki tej liczbie operacji wyszukiwania możesz prawdopodobnie zaoszczędzić pieniądze na procesorach.
Niski wolumen wyszukiwania w rzeczywistości obniża wydajność, ponieważ pamięci podręczne (zarówno wewnętrzne do używanego oprogramowania i dysku systemu operacyjnego) nie będą dobrze rozgrzane.
Mam nadzieję, że to pomaga, Paul