AWS Database Migration Service
aws.amazon.com
aws.amazon.com
AWS is giving away their software and only charging for the hardware to run this migration software on. The catch is that you need to be migrating to AWS resources which you are paying for. I'm sure this tool will have less features than the more established competitors, but for customers that fit the sweet spot, it will be very attractive.
Disclosure: I know some of the people at http://www.dbvisit.com/, a database migration company, and competitor to this.
In the process you need to set up an AWS account, create a RDS database, import your data into it... and perhaps you stop there despite the initial plans. Or use RDS for your next project, since you are already more familiar with it.
The managed services are a huge part of the lock-in with AWS services, because even though they generally cost more than the competitors, they can often come out equal after accounting for those aggregate hours lost to doing those things.
You can't really accuse a vendor of lock in just because his product is priced lower than it would cost you to do it yourself.
Per (not authoritative, obviously) wiki:
"In economics, vendor lock-in, also known as proprietary lock-in or customer lock-in, makes a customer dependent on a vendor for products and services, unable to use another vendor without substantial switching costs."
I agree with this. It shouldn't require that the service is purposefully preventing you from changing; lock-in can occur because a service offers advantages that prevent changing by virtue of some other cost.
If I say I'll pay you $1 if you sit in my office for an hour, you can't say that you were "locked in" by me, if Mary offers you $2 to sit in her office, you can walk over to her office and get more money.
You can backup/restore and run your database on basically any hosted service so switching costs are trivial here.
If you want to talk lock-in, look at services like Lambda where there isn't a direct counterpart (although the model there is so simple that most users could port relatively quickly).
I can see something like DynamoDB being vendor lock-in since you can't just download your data into your own self-hosted DynamoDB instance, but if you're using a standard off-the-shelf RDS database (MySql, PostgreSQL, Sql/Server, etc), I don't think you can call it lock in when you're staying only because it's easier than running it yourself.
In this case, there is basically 0 switching cost since relational databases are everywhere and you can always take your data/schema with you. This new migration service actually makes it even easier than before.
There is no lock-in.
https://aws.amazon.com/blogs/aws/rds-postgres-read-replicas/
Or am I allowed to set the source and target databases to be the one and the same?
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora...
DMS gets closer than the above link, I think, since it will handle replication onto the target database for you. But, for two fully compatible database engines, it seems like you should be able to make the switch without having to fuss with replication configuration or spinning up a new instance at all.
My company has been using AWS for a while, but management wanted a "backup" backup off Amazon "JUST IN CASE". Due to amazon blocking replication credentials for MYSQL servers we had to basically dump over scp to our off amazon server and run the update on that machine via a script. We tried a number of different options but none were reliable. All nasty stuff.
Anyway after setting up a dms.t2.medium replication instance, I was able to create a number of tasks pulling from our amazon server to our off amazon server.(You have the option to just pull a full dump, pull a full dump and continue replication or simply replicate data.) It's been running for a little under 24 hours now and has been, solid so far with the replication. I know not even a day yet, but it's looking promising. Fingers crossed!
A small bonus to doing the setup for this. I found out the hard way that there was bad schema in our database, which I spent the last couple days fixing. DMS is rather sensitive, and will fail and not restart if it encounters to many errors trying to replicate data.
Overall cost is looking like it's going to cost me about $150 a month for the replication instance, which is only marginally more than the bandwidth costs I was incurring doing full dumps to our off amazon server.
Benefits are almost instant replication and an interface that will give me almost instant feedback on failed replication tasks, all within AWS which is where we are hosting everything else at this time. I was also able to create individualized tasks for separate schema so I can watch and manage errors on a schema by schema basis which is nice.
Overall I'm happy with it, but only time will tell if it can continue to be a reliable replication option.
O.
We use Postgres so it might be that we couldn't do the same. Presently I run the DB on EC2 instance(s) but one day I'm sure I'll switch to RDS. Just trying to understand what an exit strategy might look like in the future.
If the Database you want to migrate/replicate from is running on Amazon you should be able to make it a replication source.
I saw nothing that stated the database HAD to be on RDS. You use the servers address to setup the endpoints. And provide a database username and password to connect with so it should be doable.
As for migration, don't know, you could export the database and listen to binlog but that will lock table for a bit, depending on the database size. But maybe that's acceptable.
Would be curious to hear from folks with more DBA experience :)
There are several startups that will do this for you, including mine (Fivetran).
I've deployed a Redshift-based analytics application, and we're discovering operationally that -- for some workloads -- we would be better served by a Postgres RDS instance instead. It would be nice if I could one-click (or few-click) migrate everything from our Redshift instance to RDS.
The above is quoted from an email I received from them regarding the service this afternoon.
Note: using continuous replication and adding logging Dashboards to your links will also increase the cost. I seem to recall seeing the dashboards are $3 a piece after the first 3 or something silly like that and then data costs on top of that. My cost so far don't match that though.
I'm guess-estimating my DMS cost are going to be about $30 if the $6.48 I've spent in the last 7 days during setup and configuration time averages out.
The lack of "true" replication into postgres RDS instances is one of the things blocking us from fully using it.
EDIT: looks like it's there now. will try it out tonight then.