Dec 082010

Too much money, too much downtime. That sums up my experience with my web hosting company over the last couple years. My shared hosting account costs about $120/year, and sure didn’t feel like I was getting my money’s worth. Due to ridiculous email downtime and failing SSL certs I moved email services to Google apps a year ago. That helped a lot, but many times over the last few months my web server has gone down for hours at a time.  The alternatives were to deal with another unknown web host (with likely the same problems), or buy a VPS (virtual private server) for a more than what I am paying now. Amazon web services was out of the question for personal use, as a small instance was $300 per year.

All that changed this fall though. Amazon introduced micro instances – 613 MB RAM machines which provide a small amount of consistent CPU and burst CPU capacity when additional cycles are available. This is plenty of horsepower for my little website; probably more overall resources than it had access to in shared hosting. Importantly the pricing is quite reasonable when you consider reserved instances. The three year reserved instance works out to $88.65 per year, plus storage and bandwidth costs (minimal in my case).   The real kicker though is that Amazon is eating the costs for micro instances + services for one year with their AWS Free Usage Tier to try to get more customers using AWS.

You can’t beat free, right?  This sounds like a hell of a deal, and it is. But this does come with hidden costs – your time and experience with two aspects:

  • The Amazon Web Services platform. I’m pretty familiar with AWS already – I’ve been using Amazon Web Services (EC2, EBS, S3, etc) at work for about two years now. It is great for being able to expand out with as much processing power as you want. Though things have been quite simplified these days (boot from EBS, elastic IPs, web control panel, etc), the service and concepts can have a fairly steep learning curve if you are new to it.
  • Configuring & running a Linux server. I’m using Amazon’s Linux image for my server with mysql and apache installed. Getting applications like Gallery and WordPress running happily on a new server does take some reading up if you aren’t familiar with linux and web concepts (e.g using yum to install dependencies, editing config files to enable php modules and htaccess). You also need to think about things which are normally taken care of by your web hosting provider, like backups.

This page is being served to you from my Amazon micro instance.  It took me an afternoon to transfer my files from my old hosting provider and get everything setup correctly on Amazon. If you were new to the platform or Linux, it would take longer than that. But if treated as a learning experience, it is an amazing opportunity. AWS Free Usage Tier lets you try out a server for a year for free, that’s pretty damned amazing.  Frankly, I don’t know of a better learning lab – you can pick and choose from hundreds of starting images, destroy them, and start fresh at any time easily and quickly with no cost.

The real question is – will I still think it is a good idea to run my own web server a year from now?  Probably not, but it was an fun little project.

Oct 072010

The first round of SSH clients for the iPhone presented some problems when connecting to Amazon Web Services EC2 Linux server instances. EC2 instances require a private certificate key file to be used to authenticate to the server during an SSH session. This lead to some workarounds where one had to export the iPhone’s key and add that key to the EC2 server instance. This wasn’t much fun to do. Thankfully, the latest versions of many SSH apps for the iPhone support private key imports. For my example bellow I’m going to be using the iSSH app:

1. Find the .pem key file saved during keypair creation in Amazon Web Services for the instance you launched.

2. Get the the content of the .pem file into the iPhone’s copy/paste memory. There are several ways to do this, here are two of them:

– 2a. Save the pem file to dropbox and open the file on the iPhone using the dropbox app (note you likely need to rename the pem to .txt in order for iOS to allow you to read the file).

– 2b. Open the .pem file with a text editor and copy the contents into a new email to an iPhone account

3. Open iSSH, go to General Settings -> Configure SSH Keys -> Import Key…

iSSH home screen

4. Paste the content of the .pem file into the lower text box; ignore the Key Password field unless you have specified one when generating the key separately (Amazon keys don’t typically have passwords).

Save the private key file

5. Go back to the iSSH home screen and select Add Configuration…

6. Select the Use Key and select the key file saved earlier.

Selecting the key

7. Save the configuration and connect to the server instance.

Connected to AWS EC2 Linux server

Oct 052010

Stuff breaks. Usually when I’m nowhere near a computer. These 4 apps help keep me sane:

1. Jaadu Remote Desktop (app store link). Pricey, but the best RDP client of the bunch. This plus the built in iPhone VPN client and I can access all of our Windows based servers.

2. Citrix Receiver (app store link). Only really applicable if you have significant Citrix investment (e.g. Citrix Access Gateway), but this app works great for a quick check on things in our hosted environment.

3. iSSH (app store link). Great SSH client for the iPhone. The private key import function (copy paste pem contents) is critical for using this app with Linux servers on Amazon Web Services.

4. iAWSManager (app store link). This is a fantastic app if you are heavy into Amazon Web Services. There is an amazing amount of functionality packed into it – CloudWatch monitoring graphs, EBS manipulation, security group access, etc. Given the choice, I won’t be launching new EC2 instances from the app because of the screen size, but it is amazing to have the option.

May 202009

Over the last few years I have been traveling with my ultralight laptop. I’ve always enjoyed having a movie available, or leeching off random wifi to stay in contact and look up information while traveling.  Even though it is lightweight and small, it was still too much for my liking.  This last trip I tried an experiment.   Could my iphone replace my laptop for travel?

Looking up travel info – Yes
Most websites work quite well on the iphone. There are even a number of travel apps popping up that make travel much easier – I had several apps for Busan and Seoul subway maps were quite useful. Google maps are pretty useful when you have a wireless connection available, but the geo-locate doesn’t work outside of the US/Canada (I don’t have 3g with built-in GPS). If Apple ever gets their act together and allows GPS apps with maps, the 3g iphone could be an amazing travel info device.

Email – Yes
The iphone works very well for quick emails. I’m looking forward to landscape keyboard layout with the next OS upgrade though.

Voice contact – Yes
I didn’t have service in Korea, so I used the iphone Skype app to make Skype out to calls to US phone numbers. I had several calls just under an hour and quality was quite good. The iphone gets pretty warm after a while, but stayed stable.

Blog – Yes
I didn’t do much of it this trip, but I was able to write up some quick posts using the wordpress app and upload them when I was near a wireless signal. I don’t think it would be much fun to write a novel, but it might be better with a landscape keyboard layout. The one downside is that any photos I wanted to include had to be on the iphone.

Storing and reviewing photos – No
With my laptop I was able to offload photos and review them each day. This isn’t possible at the moment with the iphone. Reviewing end of day photos helped a lot while I was still learning my SLR, but were also a big time-sink. I would have enjoyed looking the photos over on the fight back, but otherwise I’m glad I didn’t bother.  As for photo storage, I had 14 GB of extreme III SDHC memory cards with me, and that was more than enough.  Had I been needing more photo storage, an image tank would have been up to the job.

Work emergencies – Yes
Occasionally I need to connect to servers at work to bail someone out or fix something. With a laptop I typically establish a VPN connection and then use Remote Desktop to access the server or workstation. In this case, the Jaadu RDP iphone app was up to the job. I wouldn’t want to work on systems for a long time, but it is more than enough for quick fixes or file retrieval. I was able to login to our email server and check the event logs and services while at a cafe in Korea. Very cool.

The verdict – Yes
The iphone worked great for my style of travel.  Other than reviewing photos on the plane I didn’t miss my laptop for a second.  In fact, many times I was doing things that my laptop simply didn’t offer. I’ll be leaving the laptop behind next trip.