27

My problem

I am working as a consultant for various companies. Each company provides me with a laptop with their software on and I also have my own, where I have my development environment. I tend to buy a new laptop every second year and find myself spending lots of time configuring and installing software. I also spend a lot of time waiting for my laptop to process things.

To solve all these issues, I am now considering using EC2 (running windows instances) as my main development platform and just access this from any PC I happen to be at. I calculated that running the Large instance (cheapest 64-bit) for 8 hours a day for a year costs me 960$ per year, which is acceptable.

I imagine that when I approach the workplace each day, I will make a single tap on my phone to fire up the instance, so it is ready when I get to work. I should have different icons on my phone to fire up the various instance types. The same software should of course automatically be loaded on the various hardware (sometimes I would even need their instance with 68.4 GB of memory).

Another advantage is that if I am having a specific problem with my instance, I could fire up another instance and have someone look into the problem and update the image.

My question:

Does anyone have experience with such a setup on EC2? What kind of problems do you foresee?

5
  • 2
    If you have a decent enough home connection, you can do this using Windows Remote Desktop on a 'server' machine at your home. Or if you want multiple instances, run several under virtual box. No monthly fee. Jan 5, 2011 at 19:01
  • 2
    @GrandmasterB: No monthly fee? You mean electricity doesn't cost money where you live? And maintenance of your home server takes you zero time? Mar 30, 2012 at 22:31
  • Will the remote access method be fast "enough" for you?
    – user1249
    Jul 9, 2012 at 14:01
  • How about Azure virtual machines as an alternative to EC2 for running the desktop environment?
    – feklee
    Mar 2, 2013 at 13:02
  • Did you consider using some Linux VPS instead of EC2 ? Aug 27, 2015 at 22:33

6 Answers 6

11

I don't use EC2, but I do make use of a very large Xen farm. Quite frankly, I love it because:

  • I can get to work from anywhere
  • It is simple to make snapshots of whole file systems (I'm using VHD)
  • It is simple to produce ISO's for installation
  • Migrating VM's around is trivial if I need one to grow and run out of room
  • Programs like distcc really speed up builds when you have 8 - 10 virtual machines it can use
  • Stuff downloads really quickly with a 100MB connection :)

The caveat is, I'm screwed if I don't have an up to date pull from my HG repos in the event that I can't get Internet for whatever reason, and that has happened a few times.

If you have a really, really elaborate setup .. there's no way you could really produce it again locally (or perhaps you could), but the point is, no connection, no work.

2
  • Thanks for the excellent answer. I have updated the question a bit with the price. It should have been 960$ per year.
    – David
    Jan 5, 2011 at 17:01
  • @David, updated :)
    – user131
    Jan 5, 2011 at 18:27
6

You're discovering what the Unix/Linux people have been doing for years: developing on servers. You can then use any machine and ssh/putty into your server(s) and dev there.

Cheap linux servers are much cheaper than ec2. You can go with rackspacecloud at $11/month (they have windows images too), but you can also go with 15.00/year base machine hosting at http://buyvm.net/ (happy customer, no other relationship)

For amazon, you can look at 3 year prepaid instances. That could save you a lot.

4
  • 4
    Remotely running GUI IDE on Linux server by far is not what Unix/Linux people are doing.
    – vartec
    Jul 9, 2012 at 14:36
  • 2
    I didn't mention GUI IDE. Unix people generally don't use GUI IDEs. It's EMACS vs VIM and some Nano and Ed thrown in. Jul 9, 2012 at 17:08
  • 1
    So first, AFAIK, there is no text mode Visual Studio, so no, remotely developing on Windows is not same thing as remotely editing file with vi. Secondly I don't quite agree with your generalization. In my 15 years experience developing for Linux, I've seen very few people using only text mode editor. And most of them were in fact SysOps, not developers. On the other hand developers would mostly use fully-fledged IDE (Komodo, Eclipse and derivatives, KDevelop, Quanta+, InteliJ and derivatives).
    – vartec
    Jul 10, 2012 at 8:31
  • 1
    Mmm, interesting. Perhaps our experience varies. I'll keep that in mind when I make broad generalizing statements. Jul 11, 2012 at 16:31
6

I'm using EC2 more traditionally, as servers. The problems I'd foresee with what you're attempting:

  • storage: You have two choices, persistent EBS and ephemeral storage. EBS is quite slow, can't really imagine working with an IDE using such a slow disk. Ephemeral storage goes away as soon as you stop your instance, so not quite good option either. And of course nowhere near as fast as SSD.

  • memory: not enough, especially given how cheap RAM is nowadays.

  • CPU: really, really under-powered, only 2 slow virtual cores. Entry level i3 will give you better performance, not to mention i5 or i7.

  • connectivity: latency to AWS is quite high, way above for what you'd expect. Given that I'm using EC2 instances in Europe while connecting from Europe I'd expect latency well below 30ms, meanwhile it's more like 300-500ms. For comparison transatlantic latency is about 50ms. Latency would make any interactive GUI environment unusable.

Overall, cloud for servers, it's huge advantage is scaling (especially auto-scaling). Which you're not going to use at all. Yet you're going to have to put up with all annoyances of the cloud.

UPDATE as of mid-2015: since I've written this answer in 2012, AWS has added SSD storage, reduced latency. As for CPU and RAM, it still holds, EC2 is seriously under-powered compared to an average laptop, unless you're willing to spend well in excess of $200/mo.

4

I've used an EC2 instance this way to do some 64-bit development using Visual Studio 2010 on a large Windows instance. It worked beautifully!

Even though I'm in South Africa, the latency was not a big issue. Copying and pasting, and editing big blocks of text was a bit sluggish, but when debugging I didn't even notice the lag. Doing the big downloads to get up and running - for me VS 2010 and Office 2010 - was extremely fast - some GBs in a few minutes. I was literally up and running within half-an-hour.

So I recommend you give it a try.

3
  • What were you doing copying and pasting into your IDE? Bad form!
    – lorddev
    Jul 8, 2012 at 4:16
  • @lorddev copying between files in Visual Studio? What do you recommend as an alternative? Jan 22, 2013 at 7:16
  • It was a joke. I've encountered a ton of copy-and-paste programmers over the years.
    – lorddev
    Jan 23, 2013 at 3:34
3

The biggest problem that I see -- at least with a Windows instance and assuming that you're using remote desktop -- is that network lags are annoying. Depending on how physically close you are to the Amazon data center, it might not be an issue. Personal experience: I had a week in which my ISP decided to route packets across the US to get to my office (12 miles away); the UI was unusable.

3
  • It will probably be an issue, at least if I am on a mobile connection. I guess I have to test it before I decide anything.
    – David
    Jan 5, 2011 at 17:02
  • 1
    I use RDP a lot to access a personal development machine. For non-graphics programming, the performance is so good that you could easily forget you're not sitting at the machine. So its going to depend a lot on your connection & how configure it (removing all fancy gui effects). Jan 5, 2011 at 19:07
  • 1
    @GrandmasterB - it depends very much on the latency of your connection. For example, even on my home LAN, there's a noticeable difference between hardwired connections and wireless. And the routing of your packets over the Internet can cause big latencies: a 6,000 mile roundtrip between US coasts, for example, adds 3/100ths of a second.
    – Anon
    Jan 5, 2011 at 20:41
1

I'm using EC2 micro instances via the free tier and it's fantastic. It's fast, responsive, and I hardly have to pay a dime. It lasts for about a year, but if you need a temporary development environment, EC2 is the way to go. I've had nothing but great experiences on there. Micro instances for me have even supported traffic up to 100k hits a day (very well-handled too, at only a peak of about 70% CPU usage).

Take a look at bitnami - it's a quickstart LAMP stack (or any stack) image to get running in basically 5 minutes. Also, make sure you configure your security correctly! Only allow SSH, HTTP/HTTPS connections in your web security groups. Use SFTP for file transfer.

Not the answer you're looking for? Browse other questions tagged or ask your own question.