Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question

closed as primarily opinion-based by GlenH7, MichaelT, user61852, gnat, Bart van Ingen Schenau Aug 9 at 8:18

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

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. –  GrandmasterB Jan 5 '11 at 19:01
1  
@GrandmasterB: No monthly fee? You mean electricity doesn't cost money where you live? And maintenance of your home server takes you zero time? –  John Bartholomew Mar 30 '12 at 22:31
    
Will the remote access method be fast "enough" for you? –  user1249 Jul 9 '12 at 14:01
    
How about Azure virtual machines as an alternative to EC2 for running the desktop environment? –  feklee Mar 2 '13 at 13:02

6 Answers 6

up vote 4 down vote accepted

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.

share|improve this answer
    
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 '11 at 17:01
    
@David, updated :) –  Tim Post Jan 5 '11 at 18:27

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.

share|improve this answer
1  
Remotely running GUI IDE on Linux server by far is not what Unix/Linux people are doing. –  vartec Jul 9 '12 at 14:36
1  
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. –  Christopher Mahan Jul 9 '12 at 17:08
    
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 '12 at 8:31
    
Mmm, interesting. Perhaps our experience varies. I'll keep that in mind when I make broad generalizing statements. –  Christopher Mahan Jul 11 '12 at 16:31

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.

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

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

  • storage: You have to choices, persistent EBS and ephemeral storage. EBS is quite slow, can't really imagine working with IDE usin 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 gonna use at all. Yet you're gonna have to put up with all annoyances of the cloud.

share|improve this answer

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.

share|improve this answer
    
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 '11 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). –  GrandmasterB Jan 5 '11 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 '11 at 20:41

I'm using EC2 micro instances via the free teir 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 experienced on there. Micro instances for me have even supported traffic up to 100k hits a day (very well-handled to, at only a peak of about 70% CPU usage).

Take a look at bitnami - it's a quickstart lampstack (or anystack) 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.

share|improve this answer

protected by World Engineer Aug 7 at 18:49

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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