0

I'm a software/web developer and for the first time I have to set up a cloud system to host one of the websites I have coded. I found very difficult to estimate the costs for an Amazon EC2 cloud system using the provided calculator. I have absolutely no idea of how much traffic the website will have, especially because I have to calculate the traffic for the database (Amazon RDS), static resources (Amazon S3/Amazon EBS) and normal page requests (Amazon EC2). Also, I don't know whether a micro instance will suffice or if I need a small or maybe more.

The only data I have is:

  • Number of predicted users per month
  • Average amount of time spent on the website per user
  • Predicted peak number of people online at the same time

What is the best way to estimate the costs? Is there a tool or something that allows to run the website and capture all the data useful to estimate the costs (i.e. DB traffic, static resources traffic, etc.)?

The website is coded in Java Spring.

Any experience on the subject is really appreciated.

Thank you very much.

satoshi
  • 141
  • 7
  • 1
    You could try running your website on a free micro instance and see if that's enough. At the very least, this will give you a better idea of the requirements and you might not have to pay for the resources. – Lars Kotthoff May 02 '12 at 19:36
  • Thank you, @LarsKotthoff. Will this free micro instance have a detailed report telling me how much traffic has been used etc.? Thanks. – satoshi May 03 '12 at 09:47
  • Yes, you get detailed stats on everything that's billable with all instance types. – Lars Kotthoff May 03 '12 at 17:17

2 Answers2

0

Instance costs are simple to calculate, and remember they're much cheaper (54%) if you can commit to a 1 year reserve instance (Once you find the right size).

My instance costs far far outweigh my bandwidth costs. I'm only delivering pages and static content though, no video/streaming from Amazon. Also, Data transferred between Amazon RDS and Amazon EC2 Instances in the same Availability Zone is free (just be sure you're pointing at the dns name or internal IP).

The bill for instances is several thousands but my cloudfront and bandwidth costs are only running a few hundred a month.

Jason Floyd
  • 1,792
  • 1
  • 13
  • 18
  • Thank you, @JasonFloyd. The thing is that I absolutely have no idea if I will need 5 instances or 100, really. The website should initially support 10,000 users/month, with an average amount of time spent on site of 20 minutes. It should also support 1,000 users online at the same time during peak times. Can you give me a very rough idea of how many instances I will need? And also, when should I scale horizontally (add more instances) and when should I scale vertically (add resources to single nodes, e.g. go from micro to small)? Thanks. – satoshi May 03 '12 at 09:51
  • Scale horizontally usually to handle more simultaneous users, but you can do the same going vertically to a point. If your app does any heavy lifting you might need faster instances. You'd really need to do some load testing on various sized instances to get a load profile for each and then calculate over costs. – Jason Floyd Jul 03 '12 at 01:53
0

@Satoshi, first off, regarding an estimation of costs – I recommend doing some load testing and running some analytics to measure your user traffic, DB traffic, static resources traffic, etc. (take a look at these analytics tools and these load testing tools.)

As for the DB instance – Since you are not yet sure what size instance you will need, you might want to check out Xeround. I think they have an auto-scale option where your DB can scale in when fewer resources are required (and scale out when needed), also look at their pricing plans), they have a-pay-per use (rather than instance size) option. That might be a suitable alternative for your needs. :)

Lena Weber
  • 313
  • 1
  • 4