Background: I'm writing a web application that will be available to the world at large on a software-as-a-service basis. As input to my choosing a database platform, I've been reading up on 'NoSQL' databases like Cassandra, Riak, MongoDB, and Redis. Replication, sharding, and partitioning are prominent in the feature sets of all of these databases.
I'll end up choosing one of them and getting on with development, but what troubles me is whether I'll realistically be able to take advantage of all of that database sharding/distribution goodness in production.
I'm a one-man start-up with a production technology infrastructure consisting of one SliceHost slice running Centos. I don't ever expect to run my own server hardware. I just want to have a view now of the kind of server architecture I could move towards when my product becomes overwhelmingly successful. :-)
How do people set up clusters of servers to support their nifty NoSQL database distribution schemes in a VPS environment? In most (all?) cases, the database products expect to run on a private LAN, and therefore lack the authentication mechanisms you'd need to support clusters spanning the wild woolly Internet world. How does one establish a private LAN in 'the cloud'? Do VPS providers offer that kind of thing? SliceHost seems to offer private IP addresses, but those addresses are accessible by all of their customers; they are not restricted to one particular customer.