Are there really that many people that want to code a Node.js app but can't set up an quick ubuntu image using virtualbox? EC2 as a dev environment seems a bit backwards.
I use EC2 for development (I commute via bike so I don't usually work offline) and it's the best environment I've ever coded in.
In fact, I can even code and fix things from my iPad, your iPad, anyones computer, my phone, a library kiosk or an airplane cockpit.
If I want to try something experimental (aka dist upgrade etc), I just clone the AMI, make my modifications, and if I like it, I keep it.
My emacs looks exactly the same, where ever I am. If I need to get to a different computer, I still log in through my EC2 instance, where all servers I need are accessible via convenient shortcuts and the appropriate port forwarding is configured already. And, again, I can do this from wherever I am.
You make a good point, on second thought EC2 is a pretty good development environment as long as you aren't GUI dependent.
I still don't think it is a good development environment for someone that finds a node.js install too complicated. This seems to be what the article suggests.
OTTOMH: create different configurations that you only need for one project, experiment with cutting edge software, increase CPU, memory and disk on the fly ...
The great thing with EC2 is that you can let all your friends try your Node.js app by giving them a simple link. It's all about reducing the barrier to entry.
For me the reason is two fold. Sharing the hacks I build is easier when I don't have to deal with NAT. Secondly, for some environments, like the default Amazon Linux AMI the default packages and PATH makes it a huge hassle to compile/install Node. This AMI was born out of our own frustration with that process which I'm sure affects Linux distros other than just the Amazon Linux one.
(Really? -2? I am actually surprised that this is a problem. I have to share web apps with my friends, in both directions, regularly. It's never been a problem. Everyone has a publicly-routeable address these days.)
Sadly, not all ISPs allow this. I run into this frustration whenever I visit my parents. They use a wireless ISP which does not provide each customer with a public facing IP. They all share the same public IP address and therefore can not receive incoming connections.
Yes. They are called Windows users. And I am one of them. I set up an ec2 instance last week using a similar process. I also got a cywin up locally, but I use the ec2 instance mostly.
Now that you mention it, Virtual Box would be a great solution and it would be great to have a guide walking through this. I used google to figure everything out and 'node.js ec2' is a query you get to pretty quickly when you have no starting reference point.
The posts targets users not familiar with nix systems as well. Often times, it's not as simple as ./configure && make. There are dependencies that need to be satisfied and PATHs that need to be configured (depending on your distro). That was a huge headache for us when we first setup production servers on EC2.
I understand that it may seem silly to setup an EC2 account when the accustomed nix user can install Node much more easily, but hey, who doesn't like a year of free dedicated hosting thanks to Amazon?
The posts targets users not familiar with nix systems as well.
So the idea is to convince them to run servers connected directly to the Internet without any system administration skills? No wonder I get so much spam.
Somehow I think distributing binaries would be the logical solution to "node.js is hard to compile", not convincing people with no UNIX experience to pay Amazon $70 a month to let them run their very own server. But that's just me.
(I have personally compiled node from source on Debian and RHEL5. It was easy on both machines. The hardest part was to get waf to use all 32 cores on that RHEL machine for the build. But it's actually documented in the node docs!)
I spent the past week getting node.js up and running. This guide helps a ton. Thanks for doing this.
On the other hand I've learned more about unix in the last week than I ever wanted to know. I'm now happily hacking away at my code on my ec2 instance using vim and all sorts of funky commands. I still have no idea what nginx is supposed to do, but I did figure out how to turn it off. Yeah, me.
So, if like me, you've never logged into a unix box, you may actually want to try one of the harder guides. It will teach you a ton.
May not be the place for this, but I'm curious what everyone is using as a node.js deployment workflow? I'm very tempted to stick to my old fabric fab file.
I'm using Capistrano, which is pulling my code from Github, with a bunch of custom scripts to minify my static assets and send them off to a CDN. If you've got a fab file that works for you, there's no reason not to stick with it.