Amazon Web Services is one of the most popular systems used for deploying software to a web based infrastructure. With a TON of wide ranging services Amazon Web Services (AWS) is a very enticing one stop shop for deploying your projects. Big companies such as Netflix, Dropbox, GoDaddy use/have used AWS for their deployments.

There are a lot of benefits and reasons why you should use AWS. The fact that it's super easy and cheap to get started is a huge benefit is something that deserves a ton of credit. The ability to quickly launch new instances to run new servers, or to easily backup databases and have an easy to scale database with DynamoDB are massive benefits. Oh and did I mention that I can pass in an image and AWS Rekognition will give me the details about the image, such as information about the scene, details about the people in the image, etc. Super awesome deep learning stuff.

That being said there are certain things about AWS that drive me crazy. The pricing of AWS is a massive double edged sword. I strongly believe in the principle of a company starting out with super affordable pricing and allow for easy scaling. A company that focuses on the smaller user is a great idea due to the fact that those smaller users will grow into larger users.

Let's take S3 for example. 2.3 cents per GB per month. That is a pretty great deal. Storing images, documents, and other small types of files on S3 is a great deal, and is easy to make it profitable. That being said, S3 is terrible for certain types of content. For example streaming video that is ad based. AWS charges $0.09 per GB out of their network. Which is SUPER expensive. 9 cents for every GB out of the network is not affordable for certain types of applications. Keep in mind as you scale up to 150TB per month that gets reduced to 5 cents per GB out. You have to spend $3,600 per month in JUST data charges to even start to get reduced rates. And you will only save $0.005 per GB out once you spend $3,600 per month on data.

That to me is ridiculous. I totally understand that servers are expensive. But obviously AWS is perfectly ok with charging $0.05 per GB, yet they choose to only offer that to the most premium users. For some products and industries this is perfectly fine and not an issue at all. But for others this is a massive hit. For streaming video this can be a killer.

I'm not saying AWS shouldn't charge anything. But I also think they should put a higher focus on the small developers and start up companies that are struggling to become profitable as is.

There are a lot of hosting providers that have a lot more of a flat rate model. For example DigitalOcean charges $5 for their base instance that includes 1TB of transfer, with a $0.02/gb charge beyond that. Now I have certain problems with that model. For one, why wouldn't you just create a lot more instances to get around that $0.02/gb overage charge since each instance comes with 1TB of transfer. That is slightly confusing. Or OVH just gives you a certain amount of Mbps and doesn't charge per GB in or out of the network. Which seems like a pretty good system. The base price does seem slightly higher, and it would be a problem if scaled too fast since it does have speed limits. Although the cost of scaling a system like that is a lot cheaper. Of course I'm not factoring in the development/labor time that it would take to scale. But if you are an indie/startup company and doing most of the work between only a couple of people that isn't the biggest concern. The bigger concern is the cost of the actual servers and how much it's costing you.

With AWS you are truly having to pay it being a one stop shop and for the ability to scale easily. Even if you don't need all their services or don't need to scale fast right away, you are still paying for that functionality that you might never end up using. It's SUPER nice to have a system that is a one stop shop and scales very well. But not everyone needs that. At the same time tho, migrating to another service seems like a pain. So I'm sure their are companies and applications elect to go with AWS for the ease of scaling down the road.

I hope that in the future AWS can do a better job catering towards smaller developers and companies. Because the small companies and developers are the companies and developers of tomorrow. Although it won't make Amazon as much money today it will make them a lot more money later on if they keep those customers happy.

Disclaimer: all pricing I discuss is reflective of only a portion of AWS costs, and is subject to change at any time. There are a lot of details to AWS pricing and it changes often. Prices discussed are reflective as of the date of writing this post, and might not reflect all the AWS costs related to a given service. Please review and understand all pricing before using any service.