I'm comparing different cloud hosting offerings and am trying to do detailed cost comparisons. A lot of the other providers have most everything bundled, like bandwidth, but Amazon's is all scattered. Since I am only used to using dedicated servers, I'm not 100% sure on everything I would be paying for with EC2 (for example if I had 2 small nodes).
I know that no bandwidth is included with an instance, so that is an extra $0.15/GB on top of the hourly instance cost. If I understand correctly, I need an elastic IP per instance ($0.01/hr). From what I gather it is also important to have EBS and possibly the elastic load balancing (however I'm not the exact needs for these so I'm not sure how to price them)? Any other costs involved?
You only pay for the elastic IP when you're not using it. This makes sense, because it makes Amazon has to leave it sitting there and can't give it to any other users.
If you want any storage that is persistant, you'll need EBS, and this has a cost associated with it.
You already mentioned the bandwidth.
For a basic instance, that's all there is.
Amazon has other features (SES for email, ELB for load balancing, etc) which are all charges separately.
To budget your AWS costs, you should have a plan for your deployment, like you would have if you were sizing up a regular, physical environment. How many nodes, are they in the same region, traffic estimates for upload, download and between the nodes, database size, database traffic, etc.
Basically, you pay for CPU, disk storage and bandwidth consumption, but there are nuances that make you pay more (or less) than what you thought.
For example, if you plan to have 2 instances with a 100% uptime for a prolonged time, consider getting reserved instances. You also want to create private AMIs, which will cost you in storage, and maybe you will end up using S3 for backup or CloudFront for your static files. There is a difference in costs of bandwidth between uploads, download, and inter-region. You don't necessarily need a static IP, it depends on your architecture and on your usage. For example, if you are to load balance 2 instances with ELB, then a static IP is not necessary.
AWS have this handy tool http://calculator.s3.amazonaws.com/calc5.html to help you budget. Look at the common scenarios on the right, and use them as a baseline to develop your own plan. When you are done, on the billing estimate tab there is a Save button :)