Hardware Considerations with a sharded cluster

Hi there,

we want to setup a sharded cluster over 3 servers. The data has to be hold in the same datacenter as the application for performance reasons.

I figured our that we need 3 serperate server as a replica set as config servers, right?
Can these be located in another location (e.g. google cloud) and won’t have influece on the performance of the regular operations?

Do the mongos-Router have to be hosted on seperate servers aswell? If yes, will the data be tunneld through the routers? (e.g. if the routers are located elsewhere and the app and shard server are right beside each others - will the whole data run through the routers?)

What would be the best options for the setup when we can’t expand the servers in the datacenter?

Best regards