DEV Community

Cover image for AWS - What, Why | Overview

Posted on

AWS - What, Why | Overview

I would personally suggest not going too deep in the links to different services mentioned as it may confuse you and I will be explaining those in future posts

In this post, I will try to explain what AWS is in the best and easy to understandable way possible.

What the heck is AWS ?

AWS basically stands for Amazon Web Services. In an essence, it's Amazon having a lot of computers stacked in places called data centres across the globe and then offering these computers for use to the general public at justified rates.

Why do we need AWS ?

Here are some of the benefits of using AWS:

  1. You don't have to worry about managing the hardware. For eg: let's say during black friday sale your application goes viral with its offerings and you are receiving 10 times the usual traffic. In that case, you can't possibly add that much hardware fast enough and it will impact your customers but if you use AWS then you can set it to auto-scale which will provision the hardware as per the demand or you can do it yourself with just one single click (it's that easy πŸ˜‰)
  2. Its cheaper to use AWS that to use your own hardware and there are a lot of surveys on the internet which have proven this 😌.
  3. AWS customers can enjoy a lot of services which if they try to develop on their own, it would take them a lot of time and then the time spent in managing those will be a lot but with AWS you can just use them with few clicks 😎 and they best part is they just configure so easily with other AWS resources.
  4. AWS is more cheaper, reliable than the competition always!
  5. Since AWS is the oldest player in the game, its offering are tested a lot by the customers and just for reference Netflix, Prime Video etc uses AWS for their infrastructure and I am sure you'll agree with me that they works like charm (though the developers of these apps are also major contributors for this but AWS has empowered them πŸ˜€)

What are the offerings by AWS ?

The offerings by AWS can be divided into two parts:

  1. Resources
    This includes things like EC2 instances (can be thought of a
    small server) which basically provision some hardware and we
    are able to directly interact with that hardware.

  2. Services
    This includes almost everything at AWS. Things like SQS queues, SNS topics, lambda, S3 storage which at some lower level also provision some hardware but we are not incharge of managing that hardware and we can't access it.

What are some of the bad points about AWS?

Here are a few:

  1. AWS may go down and your product may be impacted by this. You can thought of this as putting all your eggs in the same basket. To avoid such scenarios, make sure that you deploy your apps in different regions and availability zones which would minimise the impact on your service if something at AWS goes bad.
  2. Since resources are provisioned automatically (if you configured AWS to do so) sometimes, it may result in you getting hefty bills so my advise would be to add alarms on billing and also set provisioning of resources accordingly.
  3. [inspired by @wowik ] If data flow outside the AWS network(to the open internet) is also charged and it may happen that sometimes the amount you pay for the data transfer is equal to or more than what you pay for the resources πŸ™.

That's all from my side. In my future posts, I will try to explain some services from AWS. If you want to add something in it, feel free to comment or reach out and I will then make the changes accordingly.

Top comments (5)

oligospermia profile image

AWS can only be cheaper for huge projects with enormous traffic, then you can also benefit from the scalability. But if it's just for the pet projects, you can easily burn all your savings in no time when using without caution. Any VPS will beat their prices on that matter.

rad_hombre profile image
Matthew Orndoff • Edited

Not true. An AWS EC2 instance is a VPS. If you sign up for a new AWS account, you can get a "micro" instance on their free-tier free for 12 months (750 hours/month for 12 months). More information on their free-tier here.

Even after a free-tier expires, as long as you're correctly allocating resources based on what you need, the price structure can be comparable or much cheaper. The trade-off is complexity. AWS offers a lot of services that you can leverage but you'll need to educate yourself so you don't get a big bill. But even then there are alarms and limits you can set on resource consumption so you don't go over your budget.

mrmagician profile image
Avnish • Edited

Just to add a few more things:

  • AWS is very generous with their Lambda offering and for small projects, I doubt that you'll ever need to pay anythings (in free tier, it offers "1M free requests per month and 400,000 GB-seconds of compute time per month.") which in my guess is the best offering you could have.
  • On the top of all this, the best part is if you learn AWS then you can not only use it in your pet project but the same learnings can also be applied in your place of work (I doubt that they will use "VPS") which means you'll get promoted faster!
wowik profile image
Volodymyr Fedyay

Using AWS always remember about your project's network traffic - it is not free if it goes outside AWS (to internet).
Had an experience with two big web sites which used EC2 instances for about 300-400 $/month and payed for traffic same amount in addition at least. When they got some re-indexing request from Google Bot or SEO optimization issues then they got serious traffic hit and payed double traffic that months.
So it is good idea when developing for AWS (and everywhere else too actually) keep in mind volume of data you application/site sends to client's browser.

mrmagician profile image
Avnish • Edited

Yes, you are right. Its shared pain among most of the AWS customers unfortunately.
Added this, Thanks!