Choosing the Right EC2 Instance Type for Your Application
aws.typepad.com
aws.typepad.com
Create a spreadsheet, write some benchmarking tools, make sure you aren't actually benchmarking another service the instance depends on (db, API, etc) and go to town. Vary # of request/sec, # of parallel requests, # of app workers/threads/etc.
Write down all your results and then compute amount of 'work' (reqs/sec, computations, db inserts/updates, etc) vs hourly or RI pricing. That should get you some good numbers on what instance type is most cost effective for your workload.
If I wanted to buy a small instance to start which AMI should I choose to have a run of the mill Rails stack?
Also some AMI's have a cost? How does that work?
As for cost, there are licensing and support fees. By using such AMIs you are allocated support resources, eg: opening tickets, receiving support via personal QA assistance.
Also, if you create your own AMIs, you pay for associated storage of the image.
AMIs are kind of hard to avoid if you manage your AWS through the web console - create a new instance and the first thing that pops up is "choose an AMI".
(no offense to Keith -- he wasn't there after all)
Summarizes things pretty well.
1) I create a base AMI for each group of my servers that have similar environments. For example, I may have a base image v1.3 for general wordpress sites, or v1.1 for rails + redis. By doing this, I greatly reduce the amount of manual setup when I want to load a new server, and I know that when my server is up, it has all the tools and configurations that I need in order to just start deploying my code. 2) I create nightly snapshots of all of my attached volumes and also create a backup AMI of all of my current servers. These are ONLY for recovering servers that are not changing minute-by-minute, or for easily rolling back if something terrible happens and I just need to start fresh.
You can use an Ec2 + an AMI + an EBS volume for whatever you'd like, including a database. If the server goes down, you will not lose a thing, since your EBS persists. You also don't have to manually mount/unmount - that's all taken care of for you automatically. There have been some rare issues in the past with EBS volumes dying, so for critical data, I would definitely consider some sort of replication.