Continuent Tungsten/Replicator... anyone used them?

I am attempting to establish an approximate price for replicating a MySQL database between two Amazon regions. As Amazon does not allow replication with RDS, we are forced to look for third party solutions to offer to our client.

Has anyone had any experience with any products for MySQL replication? Continuent seem to be the only option.

Presumably you mean some sort of synchronous replication rather than the in-built?

Yes. They sell a replication layer that substitutes for MySQL's replication.

Tungsten is not synchronous - it is still asynchronous. It also adds a layer7 proxy in front of your normal DB traffic, and puts a bunch of Java processes in the middle of your asynchronous replication (though it makes up for it by multithreading replication traffic across schemas).

Tungsten's main strength is the polish of its management tools - setting up new servers and managing high availability between multiple DCs is simple in Tungsten.

What, specifically, are you trying to do that normal MySQL replication can not?

I am attempting to establish an approximate price for replicating a MySQL database between two Amazon regions. As Amazon does not allow replication with RDS, we are forced to look for third party solutions to offer to our client.

I'm an idiot and missed this when I first responded. Sorry about that.

If you're using RDS, your only replication options are DRBD between multiple AZs (managed by Amazon), and normal read-only replication slaves that use MySQL's normal replication.

The reason is that you're simply not given enough access to the underlying MySQL database to set up your own form of replication (you can't access binlogs, which is required for Tungsten or even normal MySQL replication).

If you want active multi DC replication, you'll have to pull the data out of RDS & start your own MySQL servers.

Have you done this on EC2 before? I'm wondering how EC2 instances vanishing affects the replication, and I fear the answer is a bad one (hence looking into Tungsten, GoldenGate, etc).

Yes. While EC2 instances *can* and *do* fall down, it's not an every day type occurrence (I'm personally monitoring 5 separate mysql instances on EC2, none of which have had to be re-built in the last 100+ days). As long as you have backups and reasonable install script (such as Puppet/Chef/etc), you can recover from a downed instance very easily.

As for handling the failure itself, by moving out of RDS, you gain a few options. One, you could use Tungsten in that case. Two, you could use an open source tool like MMM, Flipper, MHA, etc. Three, you could manage failovers manually (though I'd recommend using something like MHA to do the actual failover even if you don't want it to automatically monitor the system).

That said, you really do want to have a dedicated DBA if you're going to move out of RDS. RDS, despite being a real PITA for DBAs, is decent when you don't have one.

I can also chime in here in that I run over 40 instances in EC2 of MySQL, several of them (a good 15 or so) replicated of which about 10 are full replicas of a not insignificant database (~1TB). They're dotted about in both us-west, us-east and Europe. As a general EC2 rule, the bigger the instance, the less you see sporadic outage/brownout (largely because you have less/no neighbours) but as falcolas says they do fail (as all 'hardware' does). We mitigate that by running the DB data on EBS so if an instance dies you reattach the storage and then let the configuration management do it's thing. Reading between the lines of your initial post if you're not able or willing of moving from RDS you're SoL I think, at least for realtime replication. If you can move out of RDS then replication will do you just fine (caveat being there's more to it than that, moreso for HA or DRP purposes) and in the basic case, the costs are ostensibly that for the instance(s) that you're going to be replicating from/to.