AWS 101: Your Easy Start to Amazon Web Services
Tags: aws, cloud, cloudcomputing, serverless
Published: 2024-04-11 21:16:04

> I am excited to walk with you, step by step, in this AWS Series where we will cover everything AWS from the word go, to building our applications on the cloud... and this being the first article in this series, I can't wait for your feedback.

Set? Buckle up and let's kick off 🚀

## What is Cloud Computing?
To understand what cloud computing is, let us first understand what a [server](https://en.wikipedia.org/wiki/Server_(computing)) is and what it comprises of.

---

A server is a powerful computer that provides data, services, or functionality to other computers, known as clients, over a network. In essence, servers host and share resources that clients can access. There are many types of servers, including [web servers](https://en.wikipedia.org/wiki/Web_server), [mail servers](https://www.cloudflare.com/learning/email-security/what-is-a-mail-server/), and [file servers](https://en.wikipedia.org/wiki/File_server). Each type performs a specific function. For example, a web server hosts websites and makes them available to users on the internet. When you type a URL into your web browser, you’re actually sending a request to the site’s web server.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iw9ht0zi4qbuzd6ffwe1.jpg)

The image above is an image of how a [server room](https://en.wikipedia.org/wiki/Server_room) would look like. In server rooms, there are cables, computer servers, cabinets, routers and networking switches etc. which normally take up a lot of space. Some challenges of having physical servers / server rooms include:
- Paying for the space where the servers are located.
- Paying for power supply, cooling and maintenance.
- Adding and replacing hardware takes time.
- Scaling is limited since the more your product / company grows, the more servers you need which requires more space.
- Hiring of a 24/7 team to monitor the infrastructure.
- How to deal with disasters? (earthquake, power shut down, fire etc.)

---

On the other hand, [cloud computing](https://en.wikipedia.org/wiki/Cloud_computing) is like "servers on the internet"; a server that can be accessed from anywhere. In traditional computing, we set up physical servers _(like in the server room image above)_ to run our applications and store data. Cloud computing is now like having a similar server but a virtual one that still includes the software and networking capabilities, making accessing and storing data over the internet possible. 
With cloud computing, these servers are owned and managed by a [cloud service provider](https://www.techtarget.com/searchitchannel/definition/cloud-service-provider-cloud-provider), like [Amazon Web Services (AWS)](https://aws.amazon.com/) - _covered in this blog series_, [Google Cloud](https://cloud.google.com/), [Microsoft Azure](https://portal.azure.com/) and many others. These servers can be accessed and used over the internet to store data, run applications, or even run artificial intelligence services. The cloud provider, on the other hand, takes care of all the maintenance, upgrades, and security, allowing us to focus only on using the services and building our applications / products rather than managing the infrastructure.

---

Cloud computing therefore is, the **on-demand delivery** of compute power, database storage, application, and other IT resources through a cloud service provider with pay-as-you-go pricing. This means that you will only pay for the service you are using and only the resources you will be using hence you can provision exactly the right type and size of computing resources you need.
Additionally, as mentioned above, in cloud computing, you can access as many resources as you need e.g. accessing servers, storage, databases, application services etc. from anywhere, and almost instantly.

> Amazon Web Services owns and maintains the network-connected hardware required for these application services, while you provision and use what you need via a web application.

In present digital age, most companies now have their server rooms in the cloud, eliminating the need for space, power supply, cooling, maintenance etc. which results in significant cost savings. Additionally, they don't have to hire a team to monitor the infrastructure because the cloud provider handles all the maintenance, upgrades, and security of the cloud. It’s like having your own tech team, but without the extra cost.

> Did you know that you have actually been using the cloud, without even knowing? Tools like Gmail, which is an E-mail cloud service, where you ONLY pay for your emails stored (no infrastructure, etc.), [Dropbox](https://www.dropbox.com), [Google Drive](https://drive.google.com), [iCloud](https://www.icloud.com) which are cloud storage services, and even [Netflix](https://www.netflix.com/), which is actually built entirely on AWS and provides you a cloud service, which is to get video on-demand. 

These cloud services are however very different from AWS, but in this series, we will learn what goes behind these services and how AWS can help us build these kind of cloud services.

---

#### The Deployment Models of the Cloud
In our cloud computing introduction, let us go one step further and discuss the different kinds of clouds. There are 3 different kinds of clouds out there:

1. Private Cloud - This is a cloud service used by a single organization, and not exposed to the public. This means that you have complete control over it since it meets specific business needs. An example of a Private Cloud provider is [rackspace](https://www.rackspace.com/).

2. Public Cloud - As the name goes, this is a cloud service owned and operated by a third-party cloud service provider and delivered over the Internet, hence can be accessed and used by the public. The three famous Public Cloud providers are: [Amazon Web Services (AWS)](https://aws.amazon.com/), [Google Cloud](https://cloud.google.com/), and [Microsoft Azure](https://portal.azure.com/).

3. Hybrid Cloud - This is an approach where one can keep some servers on premises and extend some capabilities to the cloud. This means that we will have a hybrid of our own infrastructure and the cloud. In this approach, we will have control over sensitive assets in our private infrastructure.

---

#### The Characteristics of Cloud Computing
Another important thing we need to discuss are the characteristics of cloud computing. There are 5 characteristics of cloud computing:

1. On-demand self service - This means that users can provision resources and use them without any human interaction from the service provider.

2. Broad network access - This means that the resources are available over the network and can be accessed by diverse client platforms.

3. Multi-tenancy and resource pooling - This means that multiple customers can share the same infrastructure and applications on the cloud while still having security and privacy and all serviced from the same physical resources - They're going to share this entire data center of the cloud.

4. Rapid elasticity and scalability - This means that we can automatically and quickly acquire and dispose resources when needed and we can also quickly and easily scale based on demand.

5. Measured service - This means that the usage is measured, and we are going to pay exactly for what we have used.

---

#### Advantages of Cloud Computing
In the introduction section above, we have mentioned a number of advantages of using cloud computing as compared to having physical servers and in this section, let us explore further and understand the six main advantages of cloud computing:

1. Trade capital expense (CAPEX) for operational expense (OPEX) - This means that you don't own the hardware and you are going to pay on-demand hence reducing the Total Cost of Ownership (TCO) & Operational Expense (OPEX). This is like you are renting the service from the cloud provider.

2. Benefit from massive economies of scale - This means that, since a lot of customers are using the cloud platforms e.g. AWS, then the prices will be reduced by AWS over time because AWS will be more efficient at running due to its large scale.

3. Stop guessing capacity - Initially, we had to plan and buy servers in advance and hope that they would meet the capacity, but now we can actually scale automatically based on the actual measured usage for our application.

4. Increase speed and agility - We have increased speed and agility hence we can create, operate and do stuff right away.

5. Stop spending money running and maintaining data centers.

6. Go global in minutes - by leverage the Cloud provider's e.g. AWS' global infrastructure.

---

#### Problems solved by the Cloud
From our advantages above of using cloud computing, let us now discuss the problems we have solved:

- **Flexibility** where we can change resource types when needed.

- **Cost-Effectiveness** - Pay as you go, for what you use.

- **Scalability** where we can accommodate larger loads by making hardware stronger or adding additional nodes.

- **Elasticity** which is the ability to scale out and scale in when needed.

- **High-availability and fault-tolerance** because we don't really on the one data center, but on the fleet of data centers all around the world.

- **Agility** meaning that we can rapidly develop, test and launch software applications.

---

#### Types of Cloud Computing
The final topic we will discuss before we get into AWS cloud platform are the different [types of cloud computing](https://aws.amazon.com/types-of-cloud-computing/):

- **Infrastructure as a Service (IaaS)** - This type provides building blocks for cloud IT; providing services such as networking, computers, and data storage space in its raw form. This type of cloud computing provides the highest level of flexibility and can easily be paralleled with traditional on-premises IT as migration is taking place.

Examples: Amazon EC2 (on AWS), GCP, Azure, Rackspace, Digital Ocean, Linode etc.

- **Platform as a Service (PaaS)** - This type removes the need for an organization to manage the underlying infrastructure hence one can just focus on the deployment and management of their applications.

Examples: Elastic Beanstalk (on AWS), Heroku, Google App Engine (GCP), Windows Azure (Microsoft) etc.

- **Software as a Service (SaaS)** - This type provides one with a completed product that is run and managed by the service provider. In most cases, people referring to Software as a Service are referring to end-user applications. In this type, you do not have to think about how the service is maintained or how the underlying infrastructure is managed; you only need to think about how you will use that particular piece of software. A good example is the email service where you can send and receive email without having to manage feature additions to the email product or maintain the servers and operating systems that the email program is running on.

Examples: Many of the AWS services (ex: Rekognition for Machine Learning), Google Apps (Gmail, Google Drive, ...), Dropbox, Zoom etc.

The image below shows the best comparison between the on-premises server, IaaS, Paas, and SaaS:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/utti4e8m90r7pa7xxgb9.png)

---

## AWS Cloud Overview

#### The History
The concept of the cloud computing [traces its roots back to 1993](https://en.wikipedia.org/wiki/History_of_cloud_computing) but we won't start our discussion from that far. In **2002**, Amazon established its subsidiary Amazon Web Services, which allowed developers to build applications independently. This was after they realized that the IT departments could be externalized. In **2004**, AWS launched their first offering publicly, which was SQS. In **2006**, AWS expanded their offering and they relaunched with the availability of SQS, S3 and EC2. In the same year, Google launched Google Docs, a SaaS model to edit and save documents online. In **2007**, AWS expanded in Europe and has been expanding globally to-date with very many applications and services running on AWS.

---

> According to [Gartner Magic Quadrant](https://www.gartner.com/en/documents/3989743), a platform that ranks the world’s top cloud companies in its new Magic Quadrant for Strategic Cloud Platform Services report, [AWS was named as a leader in the 2022 Gartner Cloud Infrastructure & Platform Services (CIPS) Magic Quadrant for the 12th consecutive year](https://aws.amazon.com/blogs/aws/aws-named-as-a-leader-in-the-2022-gartner-cloud-infrastructure-platform-services-cips-magic-quadrant-for-the-12th-consecutive-year/).

---

#### AWS Cloud Use Cases
AWS enables you to build sophisticated, scalable applications which are applicable to a diverse set of industries.
Uses cases can include transferring your enterprise IT or using the cloud as a backup and storage or doing some big data analytics. One can also host a website or create a backend for your mobile and your social applications. We can as well use AWS and have your entire gaming servers running on the cloud.

---

#### AWS Global Infrastructure

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8i55qcaez2a4guxvcoe0.png)

AWS is global and in this section, we are going to learn a bit more specifics about how it works. In AWS, we have, AWS Regions, AWS Availability Zones, AWS Local Zones, AWS Data Centers, and AWS Edge Locations / Points of Presence.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9n57dko7w73pg8niq628.png)

[More on AWS Infrastructure](https://infrastructure.aws/)

- AWS Regions

The first important concept in AWS is the *Regions*. AWS has regions all around the world (as we can see in the image above) and they have names like us-east-1, eu-west-3 … A region is a cluster of data centers located in different locations and at the time of this writing, AWS has launched [33 regions globally](https://aws.amazon.com/about-aws/global-infrastructure/). 
When we use AWS services, most services are region-scoped meaning that they are going to be linked and scoped to a specific region which means that if we use a service in one region and we try to use it in another region, it will be like a new time of using the service.

<u>**How to choose an AWS Region?**</u>
Assuming that you need to launch a new application, where should you do it?
Factors to consider:
1. Compliance with data governance and legal requirements - Data never leaves a region without your explicit permission.
2. Proximity to customers - "Where are most of your customers / the consumers of your product?" - Leads to reduced latency.
3. Available services within a Region - Not all regions have all services. New services and new features aren’t available in every Region hence when leveraging a service with your application, you need to make sure that the region you're deploying into is available and does have that service. [Learn more on the services offered by AWS per region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services).
4. Pricing - Pricing varies region to region and is transparent in the service pricing page.

- AWS Availability Zones

Each region has many availability zones (usually a min of 3 and a max of 6). Each availability zone (AZ) is one or more discrete data centers with redundant power, networking, and connectivity and they are separate from each other, so that they’re isolated from disasters.

E.g. AWS Region Sydney: ap-southeast-2 has 3 availability zones: ap-southeast-2a, ap-southeast-2b and ap-southeast-2c

Availability zones are connected with high bandwidth and ultra-low latency networking and when they are linked all together, they form a **Region**. At the time of this writing, AWS has 105 Availability Zones within 33 geographic regions, with announced plans for 18 more Availability Zones and six more AWS Regions.

- AWS Local Zones

AWS Local Zones allow you to use select AWS services, like compute and storage services, closer to more end-users, providing them very low latency access to the applications running locally. 
They are also connected to the parent region via Amazon’s very high bandwidth private network, giving applications running in AWS Local Zones fast, secure, and seamless access to the rest of AWS services.
AWS Local Zones have their own connection to the internet and support AWS Direct Connect, so resources created in the Local Zone can serve local end-users with very low latency communications.

- AWS Points of Presence (Edge Locations)

We will cover more details on the AWS Points of Presence (PoPs) but just to mention, AWS POPs are endpoints for AWS that are used for caching content and function as a Content Delivery Network (CDN) where requests are routed to the nearest edge location automatically, allowing for low latency no matter where the end user is located.

---

## AWS Console 

#### Creating an AWS Account
The first thing to do is to create an AWS Account by heading over to [aws.amazon.com](https://aws.amazon.com/) and clicking the "Sign In to the Console" button.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z3j2ht87v5utpbv8e95g.gif)

On getting to the AWS Sign in page, since we have no existing AWS account, we will click the "Create a new AWS account" button at the bottom of the screen.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgzyb34h61hgns55du8j.png)

Below is how the AWS Sign up page looks like:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/411mptd6877o3boq4nbg.png)

After successfully creating an AWS account following the instructions, you will be redirected to the console page where you can start working with the AWS services. The Console Home page will look like the image below but not exactly similar more so for them that will have created their AWS accounts for the first time.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nwdj1zjiou2suw3jmhnk.png)

---

#### Console and Services Tour
In the top right corner, we have the regions section with **US East (N. Virginia): us-east-1** region selected.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hih33fnkqvfm1hagq24r.gif)

As we mentioned previously, it is advisable to choose / select a region that is geographically closer to you to give you / your customers the lowest amount of latency.
On the Console Home we can also see a section with the "Recently visited" services and is empty for them that have created the account for the first time. On the Console Home, we also have other sections such as "AWS Health", "Cost and usage", "Build a solution" ...etc.
Next, on our top left corner, we have the "Services" button where on clicking the button, we get to see all the AWS services organized by category and also in alphabetical order.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0sorlnzvrr3dtzsxc6p8.gif)

At the top there is also a search bar where you can search for a service and get results for all the matches of the service or of your search including features where the searched term has been mentioned, in documentation, market place, Blogs etc.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/92em9lwj3x6ffprcgblb.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/88jdbfw8caes7k5skg9c.png)

It's also worth mentioning again that **not all regions have all services** and an addition to that, is that some services like the **Route 53** are global services hence one cannot select a specific region for them while others have specific regions where they are available.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3lco0t46winnyas2zys8.gif)

[Learn more on the services offered by AWS per region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services)

---

#### Shared Responsibility Model
As we wrap up the first article, I want to mention that Security and Compliance is a shared responsibility between AWS and the customer (cloud user). AWS responsibility is “Security of the Cloud” which means that AWS is responsible for protecting the infrastructure that runs all of the services offered in the AWS Cloud, while the Customer responsibility is “Security in the Cloud” which means that the customer's responsibility will be determined by the AWS Cloud services that they select. This determines the amount of configuration work the customer must perform as part of their security responsibilities.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/98pycoangl614v9be1l5.jpg)

[Learn more about the AWS Shared Responsibility Model](https://aws.amazon.com/compliance/shared-responsibility-model/)

---

That's it for the introduction to AWS - AWS 101: Your Easy Start to Amazon Web Services. 🥳
In this article, we have discussed what cloud computing is, a number of nitty gritty AWS concepts and terms, and how to get started with AWS by creating an account. We also had a sneak peak on the AWS Console Home and different sections on the console.
In the next article, we will kick off immediately with different AWS services and the first concept being understanding what **IAM (Identity and Access Management)** is and different IAM policies.

See you then. 🚀