First look: Amazon RDS gives you a MySQL server in the cloud
Amazon's Relational Database Service provides an easy escalator into the cloud for existing MySQL applications
Amazon's Relational Database Service (RDS) creates a MySQL database server in the cloud. The notion of "database as a service" is already a reality, thanks to products like FathomDB. Amazon itself provides EC2 instances running MySQL, and Amazon's SimpleDB service offers capabilities similar -- but not identical -- to Amazon RDS.
So why RDS? In particular, why choose RDS over SimpleDB?
SimpleDB's very name gives the best reason. SimpleDB is intended to be used as a simple database. SimpleDB stores tuples -- attributes and values -- arranged as rows identified by an ID field. It's excellent if you need basic read, write, and query capabilities. It is not, however, a relational database.
[ NoSQL databases may have a better way of storing data for your Web app. See the InfoWorld Test Center review of Amazon SimpleDB, CouchDB, Google App Engine, and Persevere | See also InfoWorld's top 10 emerging enterprise technologies. ]
Very well, you say, then what of an instance of EC2 running MySQL? Doesn't that provide the same functionality as RDS? True, but RDS pares the components to their MySQL essentials. Unlike an EC2 instance, RDS requires no operating system configuration or management. Neither do you have to work out the details of connecting your EC2 instance to EBS (Elastic Block Storage), nor worry over issues of backing up the EBS holding your database.
Put simply, if a MySQL database is all you want, RDS is just that -- nothing more, nothing less. It's that last part -- nothing less -- that's the real power of RDS.
Instant DB Instance
From a user's (and developer's) perspective, Amazon RDS is no more than a remote MySQL database. Amazon refers to a specific instantiation of an RDS-based MySQL server as a DB Instance. Amazon provides a Web-service based API for creating and managing DB Instances; the rest can be handled by standard MySQL communication protocols.
When a DB Instance is created, you specify the attributes that govern its behavior and capacity. For example, a DB Instance's Class determines the server's available memory and processing power. (Amazon specifies processing power using a metric called an Elastic Compute Unit, or ECU, roughly equivalent to a 1.0GHz 2007 Xeon processor.) The list of instance classes reads like a fast food menu. Start with a Small DB Instance at 1.7GB of memory and one ECU, work your way up to a Large instance, then an Extra Large instance, a Double Extra Large instance, and top out at the gut-busting Quadruple Extra Large instance that boasts 68GB of memory and 26 ECUs.
Another attribute defined at DB Instance creation time is the available storage, which can range from 5GB to 1,024GB. While Amazon RDS tops out at 1TB databases, that limitation applies to a single DB Instance. Nothing stops you from partitioning your data into multiple DB Instances; effectively, then, the upper limit -- other than your pocketbook -- is 1TB per table.