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
From that point on, working with RDS is like working with any MySQL server. Any application or tool that can talk to MySQL can talk to your RDS DB Instance. You can even use the standard MySQL command-line monitor tool to create users and tables, issue SQL commands, and so on. The only restriction is that RDS disallows SUPER privileges, though RDS provides a specialized form of the MySQL "kill" command to fill the hole created by SUPER's absence. (See the RDS documentation for details.)
Once the Amazon RDS DB Instance is created and access is authorized, it can be managed like any remote MySQL database -- such as with the MySQL Administrator tool, above.
If you prefer manipulating DB Instances programmatically instead of by the command-line tools, Amazon has posted a collection of libraries for a variety of programming languages. At the time of this writing, libraries were available for Java, C#, PHP, VB.Net, and Perl. Because RDS's management functions are exposed as a set of Web services, the libraries are basically wrappers around Web service-based remote procedure calls.
I tested the PHP library, which employs PHP's object-oriented features to abstract RDS access into an Amazon_RDS_Client class. All you have to do to enable the library is modify a configuration file so that database objects can find your AWS access key ID and AWS secret access key. Once that's done, there are at least two dozen example programs that you can run in script fashion (launched from the command line) to explore RDS's API calls.
Pay as you go
A fundamental principle of Amazon Web Services has always been you pay for what you use. Costs for RDS are therefore wholly a function of your MySQL application's usage profile.
There are several DB Instances classes, and each has its own price-per-hour figure. A Small DB Instance is 11 cents per hour. A Quadruple Extra Large DB Instance is $3.10 per hour. The rest are arrayed in between. Note that you are charged for as long as your DB Instance lives -- even if it is not responding to any MySQL commands. You have to terminate your database to stop the meter. But you don't have to lose your data. You can request that a snapshot be created at termination and restore from that snapshot at a later time. There's a cost for Amazon to hold the snapshot, of course: 15 cents per gigabyte per month.
You must also calculate "warehousing" fees for your data -- that's 10 cents for each gigabyte per month. And I/O requests cost 10 cents per million I/Os. There are also data transfer fees, which depend on direction. All data transfers in are 10 cents per gigabyte; data transfers out are priced on a staggered scale (see the RDS Web site for details). However, if you are transferring data into or out of your RDS instance from another AWS utility -- say, an EC2 instance -- and both are in the same region, then the transfer is free.
Backups won't cost you anything, as long as the backups use no more space than you originally allotted for your database. Beyond that, it's 15 cents per gigabyte per month (the same as for snapshot retention).
Anyone wanting to employ Amazon's RDS had best put together a spreadsheet macro or two to help with the cost estimation.
This story, "First look: Amazon RDS gives you a MySQL server in the cloud," was originally published at InfoWorld.com. Follow the latest developments in Amazon Web Services, MySQL, cloud computing, application development, and data management at InfoWorld.com.
Read more about cloud computing in InfoWorld's Cloud Computing Channel.