Amazon Web Services (AWS) and cloud computing in general is a major paradigm shift in terms of how to best operate enterprise systems. In the past, companies would buy hardware based on loose metrics or even a gut feel of what capacity they need to grow. This would even come down to end of year budgets that need to be utilized. AWS is an entirely different paradigm where you rent hardware and your utilization is metered.
Instead of purchasing physical hardware, AWS allows you to purchase operating time on their hardware. Depending on your workload and access patterns you can significantly reduce your overall IT budget. But this does require changing how you think of computing. One of the first exercises someone will go through when evaluating AWS is producing a cost comparison against their current system. AWS provides a simple cost calculator where you can build this estimate.
The cost calculator can help validate whether AWS is a viable solution for your business. If you're a new startup, it can help you validate your business model. If hardware costs more than you expect to bring in, then you have a problem. Another great benefit is the ability to test ideas at scale. Some companies exclusively use AWS for this use case and will run production on their own hardware.
Typically one will go and assume of course you need to run your machines 100% of the time, this is production. Then plug in the rough estimated storage needs, redundancy and expected network data transfer. The final number will be produced and you'll likely get sticker shock. How can this be so expensive? First it's important to step back and realize these costs not only have the hardware costs built in but also the labor and operating costs of running a data center. Those are commonly overlooked costs when estimating your own internal solution.
The real question you need to think about is how can I adapt my solution to take advantage of the cost savings built into AWS. For example, Amazon S3 is a dynamic, scalable way to store much of your data. Storing your data there doesn't require EC2 instances running all the time. So instead of having a bunch of EC2 machines backed by local or EBS storage you can architect your system to have S3 be your main file store. S3 has a Hadoop filesystem client that can make it easier to port applications built on HDFS. Netflix is an example of a major organization doing just that. Then you can architect your EC2 load and analytical processes to run on demand or as needed. Depending on how often you need to run, this can provide significant cost savings as you only pay for instances when they are running.
AWS is by no means a silver bullet and will not make sense for every use case. Regardless of whether you migrate to AWS or not, going through this exercise gets you to think of computing as more of a resource. It can frame the discussion to gain a better understanding of your rough cost per user. This information is critical when planning budgets regardless if your a new startup or a large enterprise.