If you’ve gotten this far, you have probably noticed our love for Amazon RDS. In case you didn’t, let us reiterate: we love this service. Setting up and maintaining a MySQL database doesn’t appear to be too difficult. But setting it up properly, with a backup/restore mechanism in place, perhaps even replicated for higher availability and tuned for optimal performance, is difficult. As your traffic grows, it is inevitable that you will have to scale up. And as your application becomes more important, you will want to implement replication to minimize downtime, and you will have to keep the database software up to date.
Amazon introduced RDS not too long ago. RDS provides almost everything you need to run a production-grade database server without the immediate need for a database administrator (DBA). Often, the DBA also helps with optimizing the schemas. Of course, RDS is not capable of doing that for you, but it will take care of backups, so you will not lose more than five minutes of data in case of a crash, and you can go back in time to any second during a period of up to the last eight days. It will automatically upgrade the MySQL database software for you, provide enhanced availability in multiple zones, and read replicas to help you scale.
We need to get a bit technical here, as there is a very important, not-too-well-documented feature: if you use MyISAM as your storage engine, you do not get an important part of the backup functionality.
There are two kinds ...