AWS: RDS: MySQL Limitations

MySQL on RDS has its pros and cons. Only your organization can decide if the solution meets your needs. Migrating from a traditonal MySQL database to RDS may not be a simple task.

WARNING: As with many AWS services, RDS is evolving at a rapid pace. Please verify my statements before making any important decisions.

Pros

Less administration.

Given the backup, failover and scaling capabilities of RDS, smaller organizations might postpone the inevitable hiring of an expensive, full time DBA

Failover

Multi-Zone RDS provides automatic failover between zones within a few minutes, which is acceptable to most small businesses.

Scalability

Storage, instance extension

Diagnostics, Monitoring

Cloudwatch, graphs, etc.

Cons

Databases don’t run themselves.

At a certain stage of growth, the performance, storage and management needs of your database will exceed the abilities of your development team.

If you choose RDS now to postpone hiring a DBA for 6months, prepare for the eventual necessity of migrating back to a native mysql implementation next year.

Roadblocks

Advanced diagnostic functionality my be buried with the RDS API, which could hinder an experienced DBA who is comfortable with traditional unix tools such as netstat, df, iostat, tcpdump, lsof, sar, etc.

DNS, DNS everywhere!

The RDS high availability model (similar to other AWS offerings) is implemented with DNS. Mysql client connect strings must be resolved to their RDS hostnames (db-name.customerid.us-west-1.rds.amazonaws.com:3306). This introduces the overhead of performing a lookup but also an additional point of failure; the availability and performance of amazonaws.com DNS !

Replication

At this time, region->region replication is NOT supported by Mysql on RDS.
Nor is logshipping. zone->zone replication is supported by Multi-AZ internally for inter-zone failover, and read slaves are provided per availability zone to offload read-only queries.

Application considerations.

Major modifications to your app may be costly or time prohibitive. You won’t know if your code works until you test it.

Examples:

LOAD DATA INFILE workarounds
– Federated tables
– Clustering

References

RDS user guide

My experience with the AWS RDS database product has been excellent.

Offical RDS FAQs

Leave a Reply

Your email address will not be published. Required fields are marked *