I’ve got a (always-growing) list of product, features or configurations that I’d like to experiment with, but sometimes they aren’t practical to test on my local virtual machines. So, I planned to roll a new virtual machine on the development ESX server that we had at my office. All was going along fine with the Linux installation (OEL5U2) screens until I got to the end where it starts actually installing. For whatever reason, our little server was sick (likely a storage problem) and it hung for hours.
Rather than debug the storage issue, I wanted to get on with my testing. I consulted my usual list of experts, and my friend Matt suggested that I spin up a machine in the Amazon EC2 cloud. I checked out the costs and it seemed fairly reasonable. VERY reasonable, actually. Since it was based on time (cost per hour the machine is running), I waited for a day or two until I could dedicate enough time to it and complete the testing in one sitting.
Getting started was a little daunting as the only way to perform administration tasks like starting a machine or altering the machine’s firewall was via web service API calls. I used ElasitcFox (a Firefox plugin developed by Amazon) to do this. In the last few weeks, Amazon has introduced a web-based console to manage AWS EC2 instances which will make things much easier I think (I haven’t tried it yet).
Once I got all the security settings configured and ElasticFox working, I found the Oracle-provided Amazon Machine Images (AMIs), picked an appropriate one, and started it. These AMIs are a pre-packaged Oracle Enterprise Linux installation configured for Oracle Database and they also include an Oracle Database 11g installation. The startup of the AMI includes a database creation script that will prompt for some basic information and then fire up DBCA in silent mode to create a database for you as well.
While my first attempt took me a little longer, I’m sure that all my subsequent startups will have a server with a database up and ready within 20 minutes or less. To build a VM on my own VM server with a similar configuration would likely take more than an hour. When you’re a consultant paid by the hour, those extra 40 minutes matter when you multiply it enough times!
The best part? The cost. My cost from Amazon’s AWS usage was $1.02 (USD). I used the server for about 8 hours or so, completed my testing, and shut it down. I can tell you that $1.02 is a lot less than a consultant’s rate for 40 minutes! So, financially (assuming you use the OTN trial/development license for the Oracle software) it is a simple decision. While it’s good to do an installation periodically to stay fresh on installer changes and the like, it is usually just a boring means to an end. With the pre-packaged AMIs, it’s a lot easier to get to work!
The downside is that unless you utilize Amazon’s Elastic Block Store (EBS), once you shutdown your machine, all the contents of that machine (the storage) is gone. Luckily, it only costs $0.10 per hour to keep a machine running, so you can also deal with this issue by just letting your server run. At $0.10 per hour, it would cost a little less than $20 per week to leave the server running. Not a bad deal at all.
Another key to consider here is that when you use Oracle’s AMI instead of installing the DB yourself, you don’t have to download the RDBMS installation media images. When part of the usage cost is based on the network bandwidth you consume, this is a big benefit since the installation media is one or two gigabytes, not to mention the additional time required to wait for the download.