Architecture for setup ignition for 3 millions tags

I want to get some idea what is the best practice to setup a hardware and software architecture to handle 3 millions tags with ignition.
For example is it ok to run ignition on single peace on powerfull hardware? Or distribute the ignition load between several hardware by using VM clustering?
It is nice to if anybody use this many tags before.