Look at "Application Framework Examples" and the templates for "A simple Ruby on Rails "Hello World" application" to start. You can build your whole stack with a single click.
Later on, if you decide you want to be devops instead of dev, you can learn about how these templates were written. Go here to roll your own:
That's a somewhat difficult questions to answer, and it depends on which aspect of EC2 you're interested in. EC2 isn't really a thing for which there are tutorials because EC2 is essentially a server to rent, It's how you use EC2, and there's hardly a standard for that currently. I think the more important thing is to become familiar with the Amazon Web Services (AWS) as a whole, of which EC2 is only a part. There are some AWS SDK's which I find wildly helpful. Here's the docs for the php sdk http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#i=Ama...
following other people companies who are using AWS can be a great way discover ways of using AWS. Netflix operates a great blog. http://techblog.netflix.com/
If you're interested in in just renting a server, and putting Wordpress on it, there are tutorials for that, and you'll have to deal with setting up a web server, domain name etc... But perhaps you're interested in learning about how build out a scalable protein folding cluster, and the set of challenges will be completely different. AWS only provides the hardware and you must create whatever you wish to implement.
Hi, I am trying to port some of my Rails and Node.js projects from my computer / Github. So essentially setting up instances and running the respective webservers on these EC2 instances.
Look at "Application Framework Examples" and the templates for "A simple Ruby on Rails "Hello World" application" to start. You can build your whole stack with a single click.
Later on, if you decide you want to be devops instead of dev, you can learn about how these templates were written. Go here to roll your own:
Not to discourage you from playing with EC2--it's awesome and useful--but if you just want to spin up Rails or Node.js apps quickly, it may be easiest and most convenient to use Heroku[1]. They run on EC2 and manage load balancing, web-server setup, (some) databases for you. All you do is push from your git repo to their endpoint, and they take care of the staging and deploy for you.
EC2 itself just provides blank virtual machines and gives you full control over them. At a high-level, you'll be setting up your web server and db, pulling your application code, and running it. It's really not too dissimilar from setting up your app on your local machine.
The complexity around EC2 comes from the need to scale an application. Then you'll want to add load-balancers and more instances. While you can add these by the GUI console, you'll want to learn to use the EC2 Command Line tools[2] or the API via a library like Boto[3]. You may want to look through Amazon's suggested architectures to understand how to put these tools into play[4].
Yes, heroku will be a good option as you don't have to worry about web server, db and other setup. If you are a one man team bootstrapping your startup or project, heroku will save you a lot of time. On top of that, you can start free and later on worry about paying and scaling. I recommend to use beanstalk for git private repository instead of github that only provides free public one.
Perhaps you desire the additional control and complexity that managing your own instances offers. If that is not the case, maybe try something like Heroku.
Besides that if you plan on making any public AMIs, the blog posts by Eric Hammond of Alestic are required reading and his example github repo for this task should be checked out.
The "Getting started with" guides at http://aws.amazon.com/documentation/ec2/ are great. Once you're done with those might as well just read the docs at there too.
I know the title says EC2, but if your just looking for a Linux box at roughly the same price, then linode is also a very good option. Railscasts has a couple of screencasts that deal directly with setting up a linux box with Rails and Postgres that I would highly recommend to someone just getting started. It is a pro cast, so it would cost 9 a month, but definitely worth the price.
I think this is a great suggestion. Linode is much easier to get started with than AWS if scalability isn't a priority.
A linode VPS is just a standard linux server, while EC2 has lots of quirks.
For instance, AWS/EC2 has a variety of types of storage, and their persistence properties aren't always what you'd expect. So, EC2 requires you learn how to run a linux server plus a bunch of AWS specific stuff. Linode only requires basic linux administration skills.
If you are set on EC2, I found boto very useful for keeping track of my AWS resources.
I know it's kind of tangential, but one of the MASSIVE benefits of using EC2 and clouds for hosting is the simplicity of provisioning new machines when problems occur (nodes dying, high traffic, etc.).
One attitude to take when using Infrastructure as a Service (IaaS) is to always expect failure - nodes can easily disappear when a problem occurs and take out your entire website.
The best backup plan you can have for this is to capture the entire configuration of your stack in some version controlled way. One of the tools I use for this falls under the domain of "configuration management", with the best products being Chef[1] or Puppet[2], or just writing a normal bash script that installs your Rails stack and checks out your code from github.
When utilizing these technologies, I usually do the following:
1. Create a virtual image that has your CM tools + dependencies installed on it.
2. Add a bootstrap script that runs at boot (usually /etc/rc.local on Linux). This script will acquire and parse user-data[3] that is provided in the provisioning request to EC2[4], an then kick off your main configuration logic.
3. Capture the image and use it as your base image that you perform deployments from.
Feel free to let me know if you have any questions with this method! It's a bit overkill at the learning phases of IaaS clouds and OS administration, but it will save you a TON of time down the road as a programmer.
Go look at the SDK docs... they're not half bad. I got a system up and running with them (not knowing anything about AWS beforehand) in a day or two. Most of it is just knowing the lingo and getting some practice in.
It sounds like maybe what you really want to learn is the basics of Linux system administration. If you start with that, it will become much clearer how you can use EC2 to host your applications.
http://aws.amazon.com/cloudformation/aws-cloudformation-temp...
Look at "Application Framework Examples" and the templates for "A simple Ruby on Rails "Hello World" application" to start. You can build your whole stack with a single click.
Later on, if you decide you want to be devops instead of dev, you can learn about how these templates were written. Go here to roll your own:
http://aws.amazon.com/cloudformation/aws-cloudformation-arti...
In the meantime, keep learning Rails and node, and let AWS Cloud Formation set the servers up for you. That's sort of the point of the cloud.