I'm a lone IT guy trying to evaluate the cost of moving our existing physical data center to AWS (6 application servers and 2 replicated MySQL servers). The cost calculator that Amazon provides is based on bandwidth needs and server instances that come in 3 sizes. I know what our bandwidth needs are, but I'm having a hard time getting an idea of what EC2 service instance sizes would correspond with our particular hardware/load. Our load varies heavily on a schedule, so I envision at least one "on demand" instance during peak times. What tools/strategies can I use to map our physical setup to a corresponding (load optimized) AWS setup?
I found the cost calculators provided inadequate for me personally. I've got a deployment currently that consists of 3 x m1.small, 2 x m1.large, 1 x m1.xlarge and 1 x c1.xlarge server instances. We went from a 3 physical server build-out in a traditional data center to this a little over 9 months ago.
The easiest part of the calculation to determine is the hourly instance costs. I found for the most part my S3 costs were trivial due to the pricing scheme. EBS volumes and snapshots are actually more than S3 costs and pretty easy to calculate though I will suggest over estimating the I/O requests as I've found our actual usage to be higher than we estimated originally.
The bandwidth is tricky and short of the server instances themselves, likely to be the second largest cost to factor in. I thought we had an idea of the bandwidth usage patterns but actual usage under AWS has proved those initial estimates incorrect. A few things to keep in mind is that you have public inbound & outbound bandwidth but also inter-region bandwidth. If you have instances running in the same region but in different availability zones (AZ) you will be charged for the bandwidth. This also counts when you're considering EBS volumes as well as they are done in a given AZ. We've actually seen the inter-region bandwidth be higher than our public bandwidth usage due to the communication between the instances themselves.
I've created my own spreadsheet that performs most of the calculations for me when trying to give estimates for budgeting purposes. I'm currently in the process of going over the spreadsheet to get revised updates for the new budget. This time however I'm able to make use of some of the usage history that Amazon provides so I can give a better estimate.
As for which instance maps that has been a best guess effort. You can try to match based on CPU and memory intensity of the servers primary purpose. We actually split up our infrastructure more with AWS than with physical servers so we could better match the needs of the various parts and allow additional scalability.