DEV Community

Cover image for What is AWS? A Guide for Beginners.

What is AWS? A Guide for Beginners.

Lewis Menelaws on May 28, 2019

If you are into business or technology, then you have definitely heard of Amazon Web Services. In terms of business, AWS business model is very rev...
Collapse
 
bkairu5 profile image
Halafu • Edited

I have needed something like this for a long time to clear the confusion. It's beginning to make sense but still with some confusion. Let's say i have a Flask app that users can create accounts and post events. Am i correct to say i would need EC2 for the core app and Amazon S3 for the event and user profile images? Can i also just use Lightsail? And if i have to use 2 or more services how then is this cheaper than just using one service with a fixed monthly payment?

Collapse
 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦

Elastic Beanstalk vs Lightsail

The easiest way to deploy a web-app on AWS such as a Flask app is to use Elastic Beanstalk. Elastic Beanstalk was created to compete with Heroku. You just choose your runtime environment (Python) upload your code and it runs.

Elastic Beanstalk under the hood is a CloudFormation template which will provision multiple AWS services such as Load Balancers, Auto Scaling Groups, EC2 instances, RDS and etc.

Once you get comfortable with the different AWS services you can take the training wheels off so to speak and just provision these resources directly.

Lightsail was created to compete with Godaddy in the way it's easy to set up a wordpress. In my experience, Lighsail is troublesome as I find the GUI becomes out of sync with resources and the only way I've fixed it was to use paid AWS support. So to me, Lighsail is more trouble than its worth.

Lighsail and Elastic Beanstalk are very similar in that the are glorified GUIs to setup AWS resources for you.

The Monolith

You could just launch a single EC2 instance and put everything on it, and this is a good way to be cost effective. AWS does give us free tier access to many services which can lessen the adoption of using multiple services. S3 is a cost I never really think about because it takes terabytes of data before I start seeing cents. Also, there is no cost for traffic coming into AWS meaning uploads don't cost you anything.

So if you want to be cost effective you would provision a single EC2 instance running the Flask app and the database, S3 is not a cost you need to worry about so you can just store files there with little worry.

If you really want to save money you should be looking at serverless architecture. You can take your flask code and turn them into python lambda functions and then use MySQL Aurora Serverless to have this highly available and durable application that costs nothing or pennies.

I have a fundamentals course

I cover many fundamental AWS services and I go deep into how pricing works and how to keep costs down in my fundamentals course.

If anyone is interested here's the deal:
Get 15$ OFF Certified Cloud Practioner for 3 Month Access

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Great response Andrew!

Collapse
 
bkairu5 profile image
Halafu

Thanks for the detailed response.

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Good question Halafu. What's good with AWS is the free tier can provide many of these services for free while your application is small. So you might be able to get away with not paying anything or very little.

You can use lightsail, it kind of will jump your project faster since it seems like you have a standard web application.

From what I understand,

EC2 for your Flask Server
S3 for images and other files
MySQL on EC2 or Amazon Aurora for your database.

Let me know if I covered everything :)

Collapse
 
bkairu5 profile image
Halafu

Thanks, you've covered everything. I now have the motivation to jump in, will get started with Lightsail and see how it goes.

Thread Thread
 
lewismenelaws profile image
Lewis Menelaws

Glad I can help Halafu πŸ˜ƒ

Collapse
 
attacomsian profile image
Atta

I remember the day when I joined AWS in early 2014. It was one of the best decisions I ever made. After getting banned from Digital Ocean due to weird reasons, I was really disappointed because I loved their simple interface and predicted pricing model. But it turned out a blessing in disguise.

At first, it was a bit overwhelming to understand AWS services. But after some time, it became easy. Since then, I have been using AWS for everything (cloud hosting, emails, storage, DNS, CDN, analytics, etc.) for my own and clients projects. Pay as you go coupled with free tier is very economical for hosting hobby projects. Also, it is easy to pay together for all services rather than paying individually for each service to 3-5 different companies.

I really love AWS πŸ’– and highly recommend to others.

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Glad its worked out for you Atta 😁

Collapse
 
nabeelmansour profile image
NabeelMansour

can you recommend some courses for a totally beginner who want to learn aws

Collapse
 
technophile profile image
Vatsal Hirpara

Thanks you for this post. I have visited aws website in the past but couldn't understand a thing. Now I have a little bit insight. I just joined dev community today and already found so many great posts like this. Definitely bookmarking this:-)

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Glad you can find value out of this Vatsal πŸ˜ƒ. Welcome to the Dev community. You will love it here!

Collapse
 
ben profile image
Ben Halpern

I would have eaten this up a few years ago. It's easy to forget how convoluted AWS is when first approaching it. Tremendous post.

Collapse
 
ben profile image
Ben Halpern

(I am still eating this up. I still needed a simple explanation of some of these services.)

Collapse
 
lewismenelaws profile image
Lewis Menelaws

The first gif is still my reaction sometimes when exploring that mega menu πŸ˜…

Collapse
 
viccw profile image
Vic Seedoubleyew

Thanks a lot for this article. I have indeed felt overwhelmed every time I went to AWS website, like you describe it. This article is helpful to clear things out.

I haven't looked at the details of all explanations you give, but I think the EC2 explanation could be improved. The "Let’s make this easier to understand" didn't give me an understanding of how this is different from a shared hosting on 1and1, or from GoDaddy which you quote. The "What Amazon Says" section actually gives more hints on that.

Thanks again anyway!

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Thanks for the critique Vic :) I could've went more in depth for sure.

Collapse
 
upendramanve profile image
upendramanve

This post is quite underrated. So helpful and easy to understand guide for any beginner to get started. πŸ‘

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Glad you think so πŸ˜ƒ

Collapse
 
gtsofa profile image
Julius Nyule

Thanks a millie. A very nice resource for beginners

Collapse
 
harshadbhandure profile image
Harshad Bhandure

Thank you so much. Very useful for beginners.

Collapse
 
voidjuneau profile image
Juneau Lim • Edited

Wow, so many services I didn’t know that’s even possible! Thank you for the post! You should get paid from Amazon for this.

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Thanks Juneau :). Let Amazon know 🀣

Collapse
 
nestordgs profile image
Nestor GutiΓ©rrez

Thanks for this post, I must practice AWS and your post explain to me what means many of the services.

Collapse
 
joanalauren profile image
joanalauren

Thanks for the helpful article. Recently found another good blog - romexsoft.com/blog/benefits-of-aws... and there are more information about AWS.

Collapse
 
highcenburg profile image
Vicente G. Reyes

I've always wondered what DynamoDB and Amazon Aurora does. Would you be writing more about these in detail?

Collapse
 
lewismenelaws profile image
Lewis Menelaws

I could if there is more interest πŸ˜€

Collapse
 
yougotwill profile image
Will G

Amazing article. Easy to read and I now have a much better understanding of AWS. Thanks for the post Lewis!

Collapse
 
lewismenelaws profile image
Lewis Menelaws

Thanks so much for reading William. Glad it can be value to you πŸ˜ƒ

Collapse
 
vladignatyev profile image
Vladimir Ignatev

What about Amazon Cognito? It is a complete authentication flow for your web applications, that is absolutely worth mentioning!