I'd go for Nginx, because this is faster then Apache. There are several benchmarks on the internet about the differences and the pros and cons of them. I'd suggest to read some of them, like this one by HostingAdvice.com.
To speed up Magento more, you should be using your build in caches, of course and you should consider using Varnish, which is available by default in Magento 2. Together with KnockoutJS, it works pretty fast. Of course, you can also use Redis, which is also available by default in Magento 2.
And of course you should have performance on your mind for every change you make in your Magento project. When benchmarking every single change, you can speed up all your changes as well.
So, there should be more then enough ways to speed up Magento 2, question is if you should setup hosting yourself. There are a lot of hosting solutions for Magento 2 out there, which are managed, so the guys there should be aware of the best specs for a proper Magento 2 project. I don't know all of them, but I could recommend companies like Byte (Hypernode), Nexcess and Sonassi. They're all specialised in Magento hosting and know what they're doing. Maybe getting in touch with one of these companies will help you out a lot as well.