4
votes

I plan to move my web site to Reserved Instance c3.xlarge Amazon EC2. However, after playing around for just a few hours with the Free Tier Usage, I already got charge for about $2.65. Although this is not much, I'm considering what happen if I already purchase the 3-year term and get a lot of hidden charges every month. Need advice of what I should prepare to avoid these hidden costs.

My biggest concern is with the first 2 million I/O charge (after the Free Tier Usage ends in one year). Also the Provisioned IOPS EBS ($0.065 per IOPS-month provisioned). With just a few hours trying this new toy, there are already so many IO occurs. Wondering how much the IO if the site is hosted here with EC2.

enter image description here

1
You are using provisioned IOPs (PIOPS) which are billable and not required. PIOPS are billed whether used or not, you are paying to have them available in case you need them. Unless you know you need PIOPS or you see bottlenecks caused by IO, I wouldn't use PIOPS. - Lorenzo Aiello
Regarding other hidden costs, AWS is painfully transparent about everything which means lots of little costs (some pennies here and there) which all add up. They have published a great calculator to help you estimate costs: calculator.s3.amazonaws.com/calc5.html - Lorenzo Aiello
Thanks, but how about that 2 million I/O request charge? I tried the calculator and got even more expensive. I put 250 GB/month for all Data Transfer (because I predict my web site traffic is about 250 GB/month). Now I got $827 one-time payment and $94 monthly payment. I even haven't entered the Route 53, S3 and CloudFront costs. It may end up well about $200/month. I pay $180/month with my current host for a very good spec server (24 cores and 24GB RAM). Do you think it's worth it to move to Amazon EC2? - user1576748
Sorry, I must have missed something...where are you seeing 2 million I/O requests? Regarding the Data Transfer, AWS is 18 cents per gig which I agree is rather expensive. The benefit (and downside) of AWS is paying for [only] what you use. So for example if you have an application that requires 20 cores during work hours, but only 4 outside of work hours then you can use auto scaling to cut your costs by 50-70%. AWS is a different beast than dedicated, but when used correctly can be a great asset. If you can provide some more information or insight I can try to help connect the dots for you. - Lorenzo Aiello
The 2 million I/O is right under EBS. Although currently it's $0, but it's already almost 105K I/O requests. For sure, if it's one month long, there can be hundreds of millions of I/O requests occur. My application is Magento. Since my users are mostly in the US, I plan to have 1 instance only (c3.xlarge should be enough) in one region. It has 80GB Instance Store (which I believe is free) and buy S3 in case I need more storage. Plan to use Route 53 for DNS and CloudFront for CDN. I only have one domain, nothing fancy. - user1576748

1 Answers

2
votes

EBS Pricing

I/O requests are only charged for Magnetic EBS Volumes.

  • Using SSD volumes (general purpose or provisioned) there is no change for I/O
  • General Purpose volumes allow about 100 IOPs provisioned per disk (burstable depending on network traffic)
  • Provisioned volumes allow you to increase performance above that ratio

Using non EBS optimized instances with provisioned IOPS is not a good idea.

Reference: http://aws.amazon.com/ebs/pricing/

Instance Pricing

Instances are not designed to be persistent like VPS or Dedicated servers are. Instead, they are designed to be pieces of a larger network infrastructure that makes up your application. There are certain ways around this such as having regular snapshots, and using an autoscaling group of 1 for instant failover.

Amazon's EC2 catch phrase: "Design for failure and nothing will fail"

Reference: http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf (page 11) Reference: http://media.amazonwebservices.com/AWS_Building_Fault_Tolerant_Applications.pdf

Reserved Instances

I would not recommend reserving instances for more than a year at a time because reserved instances are highly specific. Instances must be all of the following criteria to receive the discount and are non-transferable.

  • Must be the same instance type
  • Must be in the same region
  • Must be in the same zone

Reference: http://aws.amazon.com/ec2/purchasing-options/reserved-instances/

Bandwidth

There is not much that you can do here to reduce bandwidth costs (provided it is all legitimate), however you can increase the performance for your clients by using something like CloudFront or S3+CloudFront.

Using S3 for static media assets could also reduce the load on your server.

Designing your Architecture

Based on your requirements (in the comments of the question), I would recommend going with multiple EC2 instances (3-4) using auto-scaling to scale with demand. This will help reduce your costs outside of peak hours. To help reduce costs further, you can use reserved instances on your minimum instance count.

Using that model, a central database can be managed using RDS.

Here is a SE Q&A specific to Magento on AWS: https://magento.stackexchange.com/questions/459/running-magento-in-an-aws-environment