Those are impressive numbers. We* run about half that, 1 million page views per month. We also have a lot of search activity, both local and external, since we have a base of over 1.8 million messages posted.
We run our site on AWS, on an m4.xlarge instance (4 CPUs and 16 GB of memory). Storage is 100 GB of gp2 (EBS, SSD). We found, unsurprisingly, that the main trick to keeping performance crisp is to be careful with plugins and to give Postgresql enough room to breathe. We’ve currently got db_shared_buffers set to “8192MB”, so 50% of memory. After a few hours of uptime, that means our system usually settles down with a gig or so to spare. We’re not at all CPU-bound, it’s all memory and I/O.
Good luck with your site!
Gunnar
*) We are Jag-lovers, our Discourse site is at https://forums.jag-lovers.com/