Taking AWS for a Spin

Amazon Web Services console
Amazon Web Services Console

I’ve been planning to deploy something to the Amazon Web Services cloud for some time now, so when I started thinking about options for hosting the new blog, and looked at Amazon’s “Free for a year” offer, I couldn’t resist. Well, maybe I could have; I really didn’t try.

So what’s it like? So far, it’s great. I was able to set up the entire site without a single issue. To understand why this is remarkable, you need to take a moment to consider all of the steps involved:

  • Stand up a Linux server
  • Install Apache, PHP (including MySQL extensions), and FTP
  • Configure the DNS servers
  • Stand up and configure a MySQL database server
  • Install and configure WordPress

There are plenty of opportunities for something to go wrong in a list like that, but nothing did. Why was it so painless? Three reasons:

  1. The AWS console is easy to use, and everything seems to just work
  2. The AWS documentation is clear and easy to follow
  3. As for the one item that I did not immediately find in the AWS docs, this Stack Overflow Q&A came to the rescue

Now keep in mind I’m not a server or networking guru. I’ve had to set up development environments plenty of times, but when it comes to setting up production environments, I leave all of the server and networking stuff to the experts whenever I can. So for a simple software engineer like yours truly to be able to set up and configure all of the aforementioned stuff in an unfamiliar environment without so much as one significant difficulty is really quite a feat. A feat for which I take no credit whatsoever.

The only issue that I found with the AWS console is that it’s not always easy to tell whether you’re remaining within the bounds of the free account. Sometimes, it is easy to tell; for example, when setting up a new EC2 server, the options are clearly marked to enable you to identify what is available for free and what isn’t. However, not all parts of the console are so clearly marked.

I ran afoul of this when setting up the DNS servers. It turns out that these are not free. I found this out because the console provides a way to set up various warnings, and one of these is a warning to let you know if your cost is going above a certain threshold. I had set up a warning with a threshold of 0.00, and within a day received an email telling me that my cost was now $1.00. It did not tell me what exactly the $1 was for, however.

So, I created a support ticket to find out what was costing money, and to my pleasant surprise, received a clear and professional response within a couple of hours. The support person informed me that the charge would be removed, and all I needed to do was to delete the DNS servers. On the one hand, it’s a bit disappointing that the free-vs.-not-free paths are not more clearly defined; on the other, the alarm worked perfectly, and the support was excellent.

As you can infer from the above, the free options are designed to prevent any kind of production application from being deployed. I realized this well before I got the $1.00 email, because of other limitations that were clearly marked in the console. Most fundamentally, the amount of storage and RAM available on the free servers is not sufficient. No problem; this makes perfect sense, and I don’t fault Amazon for this at all.

As a result, however, the blog you are actually reading is not hosted on AWS. Amazon’s free options are not designed to support a production site, and their full-fledged EC2 service is overkill for a simple blog, so I opted for a conventional hosting solution for this site.

Meanwhile I’m keeping the Amazon account for R&D. I look forward to digging deeper and learning more about AWS as I deploy some of my own apps over the course of the year. As you can see from the screen shot above, there is much more functionality in the AWS console than I’ve even touched as yet. Of course, I don’t expect things will always go smoothly – I’m bound to get frustrated with AWS at some point – but what I’ve seen so far is encouraging.