Outline of AWS Concepts

Tram Ho

Note: this article will be an introduction to highly simplified concepts with the aim of providing the reader with a reference framework for further study. This means that this article will not be your guide to using a particular AWS service and will not use any technical definitions or explanations.

Source: https://www.udemy.com/course/aws-concepts/


I. Introduction

This is the beginning of my AWS series. To be able to read this article, you will not need any knowledge of AWS, cloud computing or even IT. This means, this article is not only for Devs who want to upgrade their technical, but it is also for those who do not directly work in the IT field but want to grasp an overview of what Cloud and AWS are ( for example, those who belong to the business sector of IT companies or of the customer companies of IT companies).

In this article, I will focus on the most basic concepts of cloud computing that you need to grasp through AWS terminology. And this will help you get a foundation to continue to dig deeper and learn about more advanced concepts.

I will also use practical examples of large corporations using AWS as well as how they use some of the popular services that AWS offers to help you understand the benefits that AWS brings.


II. AWS & Cloud computing

2.1 Description

First let’s talk about “Cloud”, you think of it as a computer, tablet, or smartphone … in a place that is not in your place. And you can make use of it (in terms of capacity, handling capacity etc) somehow over the internet:

In fact, there is not only one computer, but also a data center, which is a place where there are a variety of computers that you can take advantage of:

Through the picture above you can see that, when using iCloud, DropBox, AWS … to store files, photos, documents … they are not sent to a cloud or a “magic” box. Somehow, they are actually stored in one of the servers (or “rack”) in a data center somewhere in the world as shown in the picture above.

Through the example of cloud above, you must have seen that AWS is a cloud service provider. Usually when talking about cloud service providers, people often think of the ability to store, process computers, databases. But actually AWS also provides many other things, such as: networking, analytics, developer tools, virtualization, security … you don’t need to know or understand all of these services. , I just want to show you that using iCloud or DropBox to save photos and files is just a very small part of Cloud computing.

2.2 Benefits

2.2.1 For individuals

You can save your photos, videos, and files on Cloud, and Cloud will allow you to “backup” and “share” your data.

For example, you want to save photos from your travels or documents, music, videos … but if you save it on your personal computer drive there is a risk that your drive might fail, Failure, then you can use iCloud or DropBox to back up and you will always have a copy of your data.

Cloud is also very good at “sharing”, and sharing here is not just sharing your files or photos with others, but it’s essentially sharing between devices for you to access. to the same files from your phone, company computer, personal computer … you can access them anywhere, as long as you have the device.

Through the above example, I want to introduce to you two terms in Cloud:

  • # 1 – ” High Availability “: if you upload a file to the Cloud, you can access it from any type of device as long as it has an internet connection.
  • # 2 – ” Fault Tolerant “: if you have a file on your home computer only and your home computer’s hard drive is damaged, the file will be lost forever. But if you store the file in the cloud and it is backed up on multiple services, even if the file is corrupted or the cloud server you are accessing the file on is corrupted, there will always be a different copy, meaning that even if the system is down If you fail, you will still be able to get the file back.

2.2.2 For enterprises

For example don’t use Cloud

We have an example of a software company. This company does not use any Cloud services, but uses the company’s on-premise servers to store data, code or when users use the company’s software, they access the software. software on the company’s server.

In 2016, the company had 1000 users and needed 3 physical servers to operate for these users

:

The company estimate that, in 2017, the number of users will increase to 5000. At this time, 3 servers will not be enough to handle the number of users and the company will need 3 more servers to bear the load.

However, to be able to add 3 more on-premises servers, the company must prepare:

  • space to put in 3 new servers.
  • Research to buy the right server in the market and spend a large amount of money to buy and wait for the server to be shipped (can take from 1 to several weeks).
  • setup server, test server, install and run the software (this can also take quite a while).

Then, assuming the company’s estimates are correct, that means the company has to perform well and the company continues to estimate that by 2018 the number of users will increase to 20,000. At this point, the company will need to have 12 more servers and the company must continue to prepare space to place more servers and continue to spend money to buy more servers and continue the process of ordering, waiting in line, and installing.

However, the big problem here is that, possibly up to now, the company has spent tens of thousands of dollars on these high-end computers. But if by 2018, the reality is different from the estimate of the company and the number of users only increases to 7000 users:

At this point, almost all of the servers that the company purchased for 2018 will not be used. It is an enormous waste of resources and money.

At this point they will have to sell those servers or just let the servers there wait until the number of users increases. But for businesses, especially growing ones, spending tens of thousands of dollars on servers can be a huge investment, if they can’t make the number of users grow to fill those That server will be a big loss for the company.

The above problem of on-premises data centers is exactly what Cloud services seek to solve.

Cloud usage example

We will continue to apply the same scenario as in the above example, but this time the company is using a cloud service of a provider, such as AWS.

In 2016, the company had 1000 users on 2 Cloud servers :

Then the company develops and in this example I will not set a timeline, because at this time the milestones are no longer meaningful because the company does not need to plan and estimate future growth. .

When the number of users increases, the Cloud service provider will automatically increase the server for the company. That means in just a few minutes, helping the company to do the process that used to take weeks to do when using the on-premises data center: estimate growth, prepare gaps in data centers, find out what kind of server it is. need to buy, order, wait for receiving goods, setup, install software, test, load the software on a new server.

Continuing with our example, let’s say the number of users in our company drops from 4000 to 3000:

You can see, as the number of users decreases, one server disappears as well. Because when you use Cloud services, especially when using the server, you will only use them when needed. So, as soon as the number of users drops to 3000, the same tier house simply needs to shut down a server and the company won’t be charged fees for using that server.

So unlike the on-premises server example, you have to buy physical servers and put them in the company, and if they’re not in use the company falls into a waste of resources. Using a Cloud service provider, you simply rent hardware on demand, meaning that as the number of users increases, the number of servers will increase, and when the number of users decreases, the number of servers will be cut and you will not have to pay for them as well.

Through the two above examples, we have two more terms Cloud, which are also two of the main reasons that businesses use Cloud:

  • # 3 – ” Scalability “: when the number of users increases, you can easily increase the number of servers quickly, or in other words you can scale very easily.
  • # 4 – ” Elasticity “: not only increase but you can also reduce the number of servers easily.

III. Introduce main AWS services

Or look at a simple diagram that describes the architecture of AWS below:

As we can see inside AWS we will have services, network architecture and much more, first we will learn about VPC.

1. VPC

VPC stands for “Virtual Private Cloud”. But what does VPC or Virtual Private Cloud mean? What does it mean to us? I will take Facebook to help you imagine what VPC is like, because there is a certain similarity between them.

As we can see, in Facebook there will be many different pages. Your Facebook page is a place where you can post your posts, photos, and videos. And if you want, you can put a layer of security on your site to decide who is allowed to see your post based on whether you allow that person to be friends with you.

So let’s say, your page is a private area of ​​your Facebook page where you can upload things that are important to you or things you want to share with others. But you also have a layer of security to decide who will be allowed access based on your friends list or even each of your friends list will have access to certain posts, photos, and videos. . And each Facebook page is a private area of ​​each person.

Similarly, AWS also has many VPCs (corresponding to Facebook pages), in each VPC we can set different resources such as EC2, RDS … (we will learn more about the concepts in detail. this concept later). And just like Facebook pages, your VPC is your private area in AWS, where you can put resources, files … things that you want to use over AWS. You can also put a layer of security on top of them so you can authorize / restrict others from using your database, EC2 server ….

2. EC2 (Part 1)

In this section, we will see how Netflix uses AWS resources such as EC2, RDS … in their system (in this section we will focus on EC2).

Introducing Netflix for you who do not know, Netflix is ​​probably the number one streaming video provider in the world and also the number one customer using AWS cloud resources.

So first of all, what is EC2? EC2 stands for “Elastic Cloud Compute” but you do not need to remember this very much, it is important to have a conceptual understanding of what EC2 is and what it does.

You can say EC2 is basically the equivalent of a computer like the one you are using right now:

A basic calculator will consist of the following components:

  • CPU: provides processing power
  • Operating System: Linux, Windows, MacOS …
  • Hard Drive: used in local storage
  • Network Card: used to access the internet
  • Firewall: security for the machine
  • RAM: Access and run programs

However, in AWS more precisely, we have to consider EC2 as equivalent to a server computer, because generally AWS is used by enterprises, and often they want to use power. handling of EC2 in server jobs.

And now we have another term in Cloud: # 5 – ” Instance “. Later you will see in AWS or at work, people often say EC2 instance instead of server EC2, eg grant an instance, turn an instance on / off …

Back to Netflix, how did they use EC2? If you go to www.netflix.com , you will see an image similar to the following:

In essence, here EC2 acts as a server or more precisely a web hosting server (web hosting server). When you visit www.netflix.com , you are essentially connecting to an EC2 instance that is active as a web hosting server. This instance of EC2 will contain all the files and code of this page:

That is one of the features and functions of an EC2 instance in Netflix in particular or the Internet in general: a web hosting server. It contains all of the files and code needed to display a web page to the user visiting that website.


3. RDS

Continuing to use Netflix as an example, we will find out what happens to the information you enter into the form after you log in and subscribe to Netflix.

This is where RDS will come into play. RDS is a database platform powered by AWS, and one of the most popular uses of database programs is to store user account information.

So when you go to the Netflix registration page hosted on EC2 and you enter your information, they will be sent to the RDS or if you login it will be checked to compare with the information in the database then returns EC2 and returns some of your calculations.

After you log into Netflix, there will be a list of shows or episodes that Netflix has. This is also a common application of RDS or database programs in general: storing lists.

 

Now let’s consider a scenario like this: let’s say Netflix has a few thousand users during the day, at 7pm everyone comes home from work and dinner and until 8:00 when it’s all over. want to watch TV a bit, so now there will be more people using Netflix, and then by 8:30 there will be more users, by 9am there will be more and by 10am the number of users will be 5 times more times compared to 7 o’clock.

Recall from the previous section that I talked about the difference between the on-premises server and the server cloud in terms of Scalability and Elasticity , that is, if more users are using your system or software, you will need multiple servers. than.

Going back to our example, if the server that Netflix uses is an on-premises server, they won’t be able to add more servers immediately when needed. At this time, all users who access Netflix at 9am, 10am … will access the same server and each server can only handle a certain amount of traffic, if there is too much access, the server will be too download, then no one will be able to access Netflix.

Now consider the above example with cloud. When more users access at 8am, AWS will automatically increase an EC2 instance to handle these users, then at 9am, 10am … the number of users accessing increases two or three times, AWS will continue. continue to increase the instances in the VPC and all of these instances can communicate with the database. Then all users access an EC2 instance that is not overloaded and these instances all communicate with the database so everyone can log in to their account to watch movies.

So Scalability has been shown. What about Elasticity ? Assuming 11am, 12am, 1am, the number of users will decrease. Now that no one is using instance # 4 and # 5 anymore, AWS simply excludes them from the VPC and Netflix account, meaning that Netflix won’t have to pay for these instances anymore.

In addition, the above example also demonstrates other features of cloud such as High availability – when more users are accessing it, the number of instances will increase, meaning that Netflix is ​​always available.

Assuming instance # 3 for some reason “crashes”, now all users accessing this instance will be redirected to instance # 2 (normally each instance can handle twice as much as the normal user it does. handle) and AWS will remove instance # 3 and immediately launch another instance to replace it. Once the new instance has finished launching, AWS will redirect the users back to this instance again. This is a Fault tolerant calculation.

4. S3

Continuing with Netflix, in this section we will learn how Netflix stores tens, hundreds of thousands of video files. What they use is S3.

S3 stands for Simple Storage Service, which is a storage platform of AWS. It is basically an infinite “bucket”. Actually speaking infinitely is a bit hard to believe, of course it will also have a limit, but its limit is too high and no individual or business can use it near the threshold of the limit. S3 both.

S3 is perfect for storing any document, movie, music, photo or application you have. When you put them in S3, it will be stored there forever for as long as you want. Not only that, the files you put there will have a lot of backups ie the availability of the files you store in S3 is very high.

You’ve probably heard of the DropBox service or even used it. DropBox is actually just a user-friendly interface, behind it is S3 storage. When you upload a file to DropBox you actually upload your file to an S3 bucket.

Some of the most popular uses for S3 are bulk storage and long-term storage. In the previous section about EC2, I said that an EC2 instance is equivalent to a normal computer and it has a hard drive for local storage.

In AWS this local storage is not permanent, or to be more precise, you will not want to have long-term storage on the EC2 hard drive because as in the previous section I have to grant the instances will be normal. truncation in the VPC, so any information you store on local storage can be lost.

Later, learn more about EC2, you will see a number of ways to solve this problem. However, to be sure, S3 is the perfect choice when you want long-term storage as it will give you lots of backups and virtually unlimited storage capacity.

5. EC2 (Part 2)

After we press the play button of a certain video on Netflix, what happens? Again, basically, EC2 takes over at this step.

As I said, EC2 is equivalent to a regular computer, so it will have the processor and processing power. And this is also EC2’s main job, it will be used for any job that requires computer processing.

When an episode on Netflix is ​​pressed play, the Netflix code lines will go to S3 and find the correct episode and pull the video file to EC2 and EC2 will encode or transcode the file or data so that it can be sent over the Internet. to the user’s device and the user can view it. Video encoding or transcoding is a very processing-intensive process so something like EC2 is needed to do this job.

IV. AWS global infrastructure

Here is the official AWS infrastructure diagram: https://aws.amazon.com/about-aws/global-infrastructure/

The above map shows the locations of all AWS regions. So what is the AWS region? Each region is a geographic area that is a set of availability zones and data centers of AWS. Do you wonder why there are so many regions around the world?

For example, if a business in Tokyo is using AWS and they want to run an EC2 instance then this instance will need to be run on a physical server in a data center in Tokyo, because they will want the physical server to live. In order to minimize the latency of data transmission instead of running an EC2 instance at the North Virginia data center, all data transmitted or received would then have to travel halfway around the world to EC2 and then move again. moved on. Therefore, in order to support customers around the world with the best performance, AWS has established a wide range of regions around the globe.

Now, try zooming into a region:

We can see a region that includes availability zones. Each region can have a different number of availability zones. So what is availability zone?

The Availability zone is a geographic location that contains a data center. Availability zones are geographically separated from each other within a region. So why is there such a split? This is again an example of a High availability and Fault tolerant profile of AWS.

Assuming a natural disaster such as an earthquake, storm … or a power failure or something collapsing a availability zone, since there are already data backup between all availability zones in a region. As long as the entire region is free of problems, you will still be able to fully access the AWS resources and any data you upload to AWS. So when you create an S3 bucket or run an EC2 instance, you are always asked to choose which region and availability zone you want.

Now, zooming into a availability zone we will see a physical data center with physical equipment and hardware that contains all the resources or information and data that the user has put into the AWS.


Over

Share the news now

Source : Viblo