This blog is now running on WordPress. I’ve been meaning to move from Community Server (hosted on a server in my house) to something more modern & flexible (and hosted in the cloud) for ages.
The desire to dig into the latest in Linux and cloud hosting finally drove me to actually do it. I decided to force myself to use no Microsoft technologies for this project.
Step one was updating my Ubuntu Linux desktop VM (running within Oracle’s VirutalBox virtual machine system on my Windows 7 Ultimate destkop) with Ubuntu 11.04 (Natty Narwhal). I then used Chrome within Ubuntu for all other work.
I researched both Tumblr and WordPress. I really wanted to use Tumblr but in the end I choose WordPress for two reasons:
- I could host it myself and thus be “forced” into installing it, configuring it, and tweaking it.
- I could not find any way to import my old blog from Community Server into Tumbler (without first putting it into WordPress).
The next step was to install WordPress on my Ubuntu VM. It was shockingly easy to do with Ubuntu’s “Synaptics Package Manager”. A few clicks and it was installed.
I then discovered a Community Server add-in that exported my old blog content to a BlogML file. WordPress has a huge number of plug-ins (“Widgets”) available and the first BlogML importer I tried worked fine (with the exception of not importing my category names; but I just fixed those manually).
I played with WordPress on this Linux instance running on my desktop for a while to ensure I understood how it worked. Once I was comfortable I started poking around Amazon’s Web Services and immediately discovered a set of AMIs (hydrated VM instances) for WordPress. In the names for the AMIs I saw the term “BitNami”. A quick Bing search (sorry, but I refuse to use Google search) helped me understand that BitNami is a solution that takes a Ubuntu Linux distribution and pre-configures it for certain workloads, including WordPress. It then makes these “configurations” available as VM images for different hosting services including Amazon’s EC2.
On http://bitnami.org/stack/wordpress a single click on “ami-3980d37c” installed this instance on my Amazon AWS account and a few more clicks started the instance. It could not have been any easier.
I browsed to the DNS name AWS provided for my instance and the Bitnami WordPress home page came up. I was able to log in and change the default password and start configuring the blog immediately.
A bit more challenging was figuring out how to SSH into the instance in order to do deeper configuration (for example, I wanted to move the WordPress instance from host/wordpress to the root). It had been ages since I’ve used SSH. I couldn’t figure out why I couldn’t connect until I determined I was using an old AWS private key.
Within my desktop Ubuntu install I was able to use ssh from the command prompt and party on. I had some files I need to transfer from my Windows desktop to my new server so I decided to see if I could find an easy tool for doing that. That is when I discovered Bitvise Tunnelier which is a Windows based SSH client that includes a slick file manager like tool for copying files to/from the SSH host. From that point forward I used the SSH window on my Windows desktop and stopped using my Ubuntu desktop.
I re-imported my BlogML file into my new server and picked a WordPress theme. Once I was confident the blog was working I changed my DNS settings so that ceklog.kindel.com pointed to my AWS instance and updated my Feedburner account to pull from that instead. I also disabled (mostly) the old Community Server instance running on my Windows Server. Besides some tweaking (themes, anti-spam, etc…) in WordPress I was done. Took me about 4 hours and I learned a ton.
The biggest takeaway for me is just how far the community has come in streamlining the deployment, configuration, and management of cloud based services. It is amazingly friction free.
Charlie, thank you for this excellent post on your experience with AWS!! 🙂
I’m currently searching for a better hosting solution than my current one, so your article did help a lot, although I have two questions: what AWS plan are you using and how much do you estimate it will cost you?