AWS & Cloud Computing for beginners | 50 Services in 50 Minutes
Summary
TLDRIn this informative video, Ranga Karnam, a 10x certified cloud expert, guides viewers through the complexities of AWS, offering insights into various services for deploying cloud applications. From EC2 instances and Elastic Beanstalk for compute needs, to RDS and DynamoDB for databases, and S3 coupled with CloudFront for static content delivery, the video simplifies the AWS landscape. It also touches on security, networking with VPCs, and the importance of DevOps practices in the cloud, making it an invaluable resource for beginners looking to understand or attain cloud certifications.
Takeaways
- 🚀 Rangana Karnam is a 10x certified expert in AWS, Azure, and Google Cloud, offering courses to help thousands of learners achieve cloud certifications.
- 🛠️ The video aims to provide an understanding of AWS services using a simple application example involving a front-end, REST API, and database.
- 📚 AWS offers over 50 different services, which can be explored through practical examples to understand their applications better.
- 💻 For deploying a REST API, AWS suggests using EC2 (Elastic Compute Cloud) for compute, ELB (Elastic Load Balancer) for load balancing, and ASG (Auto Scaling Group) for scaling EC2 instances.
- 🌐 To ensure high availability, AWS leverages Regions and Availability Zones, which distribute resources geographically to prevent downtime.
- 📈 Managed services like Elastic Beanstalk simplify the deployment process by handling the operational details, allowing users to focus on code deployment.
- 🐳 The shift towards Docker containers has led to the popularity of container orchestration services like EKS (Elastic Kubernetes Service) and ECS (Elastic Container Service) in AWS.
- 🎯 AWS Lambda is a serverless computing service that runs code without managing servers, scaling automatically and charging based on request volume.
- 🔍 Choosing between SQL (relational) and NoSQL (non-relational) databases depends on the application's need for structure, scalability, and transaction management.
- 📊 AWS provides managed database services like RDS (Relational Database Service) for SQL databases, Aurora for high scalability, and DynamoDB for NoSQL needs.
- 📈 For analytical processing, AWS Redshift is recommended, allowing for high-performance queries on large data volumes.
- 🌍 To serve front-end applications, AWS S3 (Simple Storage Service) can be used for static website hosting, combined with Route 53 for domain management and CloudFront for content distribution.
Q & A
What is the primary focus of the video script?
-The video script focuses on providing an overview of various AWS services and how they can be used to deploy and manage applications in the cloud.
What does Ranga Karnam claim to be certified in?
-Ranga Karnam claims to be 10x certified in AWS, Azure, and Google Cloud.
What is the example application scenario discussed in the script?
-The example scenario is a simple full-stack application with a front-end application communicating with a REST API, which in turn fetches data from a database, along with a reporting workflow.
What AWS service is used for compute services?
-AWS EC2 (Elastic Compute Cloud) is used for compute services in AWS.
What is the purpose of an Elastic Load Balancer in AWS?
-An Elastic Load Balancer in AWS is used to distribute incoming application traffic across multiple EC2 instances.
What is an Auto Scaling Group in AWS and why is it used?
-An Auto Scaling Group in AWS is used to automatically scale the number of EC2 instances up or down according to demand, ensuring application availability and managing costs.
What does the script suggest for deploying a REST API in AWS?
-The script suggests using services like EC2, Elastic Load Balancer, Auto Scaling Group, Elastic Beanstalk, or even serverless options like AWS Lambda for deploying a REST API in AWS.
What are the main differences between using EC2 and Elastic Beanstalk for deploying applications?
-EC2 requires manual setup of instances, load balancing, and scaling, whereas Elastic Beanstalk is a managed service that automatically handles the deployment, scaling, and management of the application.
What service in AWS is recommended for deploying Docker container images?
-AWS Elastic Beanstalk is recommended for deploying Docker container images in AWS, as it supports container images and manages the deployment process.
What does the script mention about AWS Lambda in the context of serverless computing?
-The script mentions that AWS Lambda is a popular service for serverless computing, where you only need to provide the code, and AWS handles the infrastructure, scaling, and execution based on the number of requests.
What AWS services are discussed in the script for managing relational and NoSQL databases?
-The script discusses AWS RDS (Relational Database Service) for managing relational databases, Amazon Aurora for regional and global relational databases, and Amazon DynamoDB for NoSQL databases.
What is the role of AWS Redshift in the context of databases?
-AWS Redshift is an analytical database service designed for running complex queries and processing large volumes of data with high performance.
How does AWS Data Pipeline fit into the data management scenario described in the script?
-AWS Data Pipeline is used for creating data pipelines that can move data from transactional databases to analytical databases like Redshift, facilitating data integration and business intelligence processes.
What AWS service is used for object storage and can also serve static websites?
-Amazon S3 (Simple Storage Service) is used for object storage in AWS and can also be used to serve static websites by hosting the website's files in an S3 bucket.
What is the significance of a Virtual Private Cloud (VPC) in AWS?
-A Virtual Private Cloud (VPC) in AWS is significant for security purposes, allowing users to isolate their resources and control the traffic flowing into and out of their applications and databases within the AWS cloud.
What AWS services are mentioned in the script for DevOps practices?
-The script mentions AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy, AWS OpsWorks, AWS CloudFormation, Terraform, AWS CDK, and AWS CloudWatch for DevOps practices, including CI/CD, infrastructure as code, and observability.
What service in AWS is used for sending notifications and handling pub/sub messaging?
-Amazon SNS (Simple Notification Service) is used for sending notifications, and Amazon SQS (Simple Queue Service) is used for handling pub/sub messaging and queuing services in AWS.
What does the script suggest for someone who wants to get cloud certified?
-The script suggests checking out beginner-level cloud certification courses such as AWS Cloud Practitioner, Azure Fundamentals (AZ-900), or Google Cloud Digital Leader for those who want to get cloud certified.
Outlines
🚀 Introduction to AWS Cloud Services
Ranga Karnam introduces himself as a 10x certified expert in cloud technologies, including AWS, Azure, and Google Cloud. He outlines the goal of the video: to provide an educational journey through AWS services using a simple application example. The example involves a front-end application, a REST API, and a database, which are typical components of a full-stack application. The video promises an exploration of over 50 different AWS services, starting with the deployment of a REST API using EC2 for compute, Elastic Load Balancer for traffic distribution, and Auto Scaling Groups for instance management. The importance of high availability through regions and zones in AWS is also mentioned.
🛠 Compute Services and Managed Options in AWS
This paragraph delves into the complexities of setting up a REST API on AWS, including the use of EC2 instances, Auto Scaling Groups, and Elastic Load Balancers. It discusses the challenges of managing infrastructure and introduces managed services like Elastic Beanstalk, which simplifies deployment by handling scaling and load balancing. The paragraph also touches on the evolution to containerization with Docker and the use of Elastic Beanstalk for deploying container images, as well as the options for microservices architectures with Elastic Kubernetes Service (EKS) and Elastic Container Service (ECS). It contrasts these with serverless deployment using AWS Fargate, which eliminates the need for cluster management.
📚 AWS Database Services: RDS, Aurora, and DynamoDB
The script shifts focus to database services in AWS, explaining the distinction between SQL (relational) and NoSQL (non-relational) databases. It highlights Amazon RDS for relational databases, supporting engines like MySQL, Oracle, and SQL Server, and Amazon Aurora for global databases that require high scalability and availability. For NoSQL use cases, Amazon DynamoDB is presented as a document database suitable for applications requiring high transaction rates and scalability. The importance of choosing the right database service based on the application's needs is emphasized.
📊 Analytical Databases and Business Intelligence with AWS
The paragraph discusses analytical databases for handling large-scale data queries and business intelligence tasks. It mentions AWS Redshift as a popular solution for analytical databases, capable of managing petabytes of data with high performance. The use of AWS Data Pipeline for transferring data from transactional databases to analytical databases is highlighted, along with business intelligence tools like AWS QuickSight for querying and gaining insights from analytical data.
🌐 Front-End Hosting and Storage Services in AWS
The focus moves to front-end web applications and the various ways they can be hosted on AWS, including using EC2 instances or object storage like Amazon S3. The paragraph explains the use of Elastic Block Store for VM storage, Elastic File Store for shared file systems, and object storage for storing and serving static website content. It also introduces AWS services like Route 53 for domain management and CloudFront for content distribution and caching.
🔒 Networking and Security in AWS Cloud
Networking and security are the central themes of this paragraph. It discusses the importance of Virtual Private Cloud (VPC) in creating a secure and isolated network environment within the AWS cloud. The use of subnets for organizing resources into public and private sections is explained, along with the use of VPN and Direct Connect for establishing secure connections between on-premises data centers and AWS VPCs.
🔁 DevOps Practices and Services in AWS
The script covers DevOps practices in AWS, emphasizing the importance of automation in infrastructure provisioning, application deployment, and observability. It introduces AWS CodePipeline, CodeBuild, and CodeDeploy for CI/CD processes. The paragraph also discusses Infrastructure as Code using AWS CloudFormation, Terraform, and AWS CDK, as well as configuration management with AWS OpsWorks. The importance of monitoring and observability is highlighted with AWS CloudWatch for metrics and logs, and AWS X-Ray for tracing.
📬 Messaging and Notification Services in AWS
This paragraph introduces messaging and notification services in AWS, such as Amazon SQS for queueing services and SNS for simple notification services. It explains how these services facilitate asynchronous communication between applications and components within the AWS ecosystem.
🎓 Conclusion and Cloud Certification Courses
In the concluding paragraph, Ranga summarizes the video's goal of providing a high-level overview of AWS services and encourages viewers to pursue cloud certifications through courses offered for AWS, Azure, and Google Cloud. He expresses confidence in the ease of learning cloud technologies and invites viewers to engage with the content by liking, sharing, and subscribing. Ranga also invites feedback on difficult cloud topics, promising to address them in future videos.
Mindmap
Keywords
💡AWS
💡EC2 (Elastic Compute Cloud)
💡Elastic Load Balancer (ELB)
💡Auto Scaling Group
💡Regions and Zones
💡Elastic Beanstalk
💡Containers
💡EKS (Elastic Kubernetes Service)
💡Serverless
💡RDS (Relational Database Service)
💡DynamoDB
Highlights
Introduction to AWS services through a simple application example.
Explanation of Full Stack Application components in AWS.
Deployment of REST API using EC2, Elastic Load Balancer, and Auto Scaling Group.
Concept of Regions and Zones for high availability in AWS.
Introduction to Managed Services like Elastic Beanstalk for simplified deployment.
Evolution to Docker Containers and AWS services supporting them.
Elastic Kubernetes Service (EKS) and Elastic Container Service (ECS) for container orchestration.
Serverless architecture with AWS Lambda for code execution without server management.
Decision-making between SQL and NoSQL databases in AWS.
AWS RDS and Aurora for relational databases, and DynamoDB for NoSQL databases.
AWS Redshift for analytical databases and data warehousing.
AWS Data Pipeline for moving data from transactional to analytical databases.
Serving front-end applications using EC2 instances or S3 for static websites.
Elastic Block Store (EBS) and Elastic File Store (EFS) for VM storage solutions.
S3 as an object storage service for files and static website hosting.
Use of Route 53 for domain naming and CloudFront for content distribution.
Importance of security and networking in AWS with Virtual Private Cloud (VPC).
DevOps practices in AWS with services like CodePipeline, CodeBuild, and CodeDeploy.
Infrastructure as Code with AWS CloudFormation, Terraform, and CDK.
Observability in AWS using CloudWatch for metrics and logs, and X-Ray for tracing.
AWS services for asynchronous communication: SQS and SNS.
Encouragement for viewers to pursue cloud certifications and the presenter's confidence in their ability to succeed.
Transcripts
i'm ranga karnam i'm 10x certified in
aws azure and google cloud as well
our courses are helping thousands of
learners do their cloud certifications
in aws azure and google cloud
in this video let's learn aws we will
take a simple example and understand all
the different services which are present
in aws we'll be exploring more than 50
different aws services with this
specific example
are you ready to get on a ride to learn
aws let's get started the example we are
going to use is a very very simple
application right you have a front-end
application which is talking to a rest
api which is fetching the data from a
typical database and you also have a
reporting workflow let's not really
worry about the reporting workflow right
now let's start with thinking about how
we can
actually implement this specific
front-end application talking to a rest
api talking to a database this is
typically called a full stack
application right so how do we implement
this in aws that's the first thing that
we would start with right now now let's
start with focusing on the rest api part
of it right you'd want to deploy a rest
api
to aws let's say this is a java
application or a python application or a
node.js application which is
part of your rest api what do you need
to run your specific rest api
let's say you are running it in your
data center typically what you need is
something called a virtual machine you
need some kind of compute to be able to
run your application this is what is
called a virtual machine will just one
virtual machine be sufficient
what if this virtual machine goes down
your application will go down and that's
why
in the cloud typically you will not just
have one virtual machine what you'll
have is a group of virtual machines so
you'll have a group of virtual machines
where you would deploy your application
to and when you have a group of virtual
machines what do you need you need to be
able to load balance between them so you
need to set up a load balancer to load
balance the requests between all these
things so you need to have something on
top of this this is nothing but a load
balancer so all the requests from the
user would go to the load balancers
and then from the load balancer they
would flow down to your vms all the
virtual machines
on this virtual machine is where you can
deploy your application maybe if it's a
python application you would install
python and then deploy it in there this
is kind of a simple architecture you can
get started with and if you're
implementing this kind of an
architecture in aws what you can make
use of is something called ec2 elastic
compute cloud elastic compute cloud is
the compute service in aws and
if you'd want to do load balancing what
you would need to do is to use something
called elastic load balancer elastic
load balancer will help you to load
balance between different ec2 instances
one of the things that we have seen in
here is the fact that we want to create
a group of ec2 instances we want to
create a group of virtual machines how
can you do that to be able to create a
group of virtual machines what you need
to do is you would need to actually make
use of
a
concept in aws called auto scaling group
typically when i just need to create one
virtual machine ec2 is sufficient
elastic compute cloud is sufficient
however if i would want to increase the
number of ec2 instances if i would want
to create a group of ec2 instances
that's when i would go for an auto
scaling group
and you'd use an elastic load balancer
to
distribute the load among different ec2
instances which are part of an auto
scaling group so that's how you can
deploy your rest api to aws
one of the things that you can do is you
would want to increase the availability
of your application right what if this
specific vm goes down if this specific
vm goes down your
application also goes down and you don't
want your applications to be down your
application should always be available
to your users how can you ensure that
your applications your vms which are
deployed don't go together down right
they should not go down
both of them together all of them
together right so that's the reason
aws provides you with concepts called
regions and zones what are regions and
zones
let's write them down
regions
and zones what's the concept behind
regions regions and zones typically
whenever you have an enterprise maybe
they have just one data center if you
deploy all your vms to this data center
if this data center goes down your
application goes down completely and
that's the reason why you don't want to
deploy your vms to just one data center
you might want to deploy your vms to
multiple data centers and you don't want
to deploy two data centers in a single
region right this might be let's say in
london you don't want to deploy just to
london
if you want your applications to be
highly available you want to be able to
geographically distribute them as well
maybe you'd want to set up something
similar in new york as well so you'd
want to have something in london
something in new york something in
sydney something in mumbai
and you'd want to create your vms in
there so
this is just the concept of regions and
zones
in aws each of these london for example
new york for example maybe there are
multiple other regions as well aws
offers around 26 different regions
around the world
what these regions allow you to do is to
deploy these vms in different parts of
the world thereby your applications
don't go down
even if the entire geographic location
is going down even if your data center
completely goes down your applications
are still available
so what a asg allows you to do is to
distribute your ec2 instances across
multiple zones so in a single region you
can deploy your ec2 instances across
multiple zones now one of the things
that you would have been seeing until
now is the fact that there is a lot of
complexity that is associated with
setting up a simple thing all that i am
doing in here is i want to set up a rest
api for a python application and already
we are talking about a lot of different
concepts related to aws we are talking
about ec2 instances asg we are talking
about elbs we are talking about region
zones
you might be wondering why do i need to
worry about all this do cloud providers
make it simple for me
yep the cloud providers do make it
simple for you and that's where you can
go for some of the managed services
which are present in the cloud platforms
instead of creating ec2 instances
manually instead of creating auto
scaling groups instead of creating
elastic load balancers you can tell aws
hey aws this is the code i would want to
deploy
if the number of requests come in if a
high load of requests come in then
increase the number of instances if low
if there are less requests coming in
then decrease the number of instances
can you do that automatically for me i
don't want to worry about installing
python i don't want to worry about
installing my application on each of
these vms that's a lot of work for me i
don't want to worry about those
operational details i'll just give you
something like a jar or a war file or a
python deployable unit or a container
image and can you deploy that for me
automatically and can you manage
everything for me that's where main age
services come into picture the main
services which are present for compute
in aws if you just want to set up a
simple setup like this if you want to
like create a load balancer distribute
the load between multiple ec2 instances
in those kind of situations you can go
for this specific service in abs called
elastic bean stock
with elastic bean stock all that you
need to specify
is hey aws can you take this piece of
code and can you deploy this in such a
way that
this is deployed to these many instances
you can also configure auto scaling
basically you can say increase the
number of instances based below based on
the load and decrease the number of
instances based on the load as well so
that's elastic beam stock for you it's a
managed service for compute in aws you
don't really need to worry about load
balance setting up the load balancer
setting up the auto scaling groups
setting up the metrics for it setting up
the ec2 instances you don't need to
worry about what run time what runtime
needs to be available on the ec2
instances you don't need to
worry about that all that you need to do
is to go to elastic bin stock and say i
would want to deploy a java application
here is the jar or a var here is the
container image for it and elastic bean
stock would run it for you so if you
have a simple application simple java
based python based node.js based or any
other language based application you can
use elastic bean stock to deploy to aws
without worrying about managing it you
don't need to worry about availability
scalability you don't need to worry
about increasing the number of instances
and things like that elastic bean stock
takes care of everything for you
one of the other important evolutions in
the last few years is the evolution to
docker containers right instead of
actually trying to create a vm with
multiple layers right so whenever we are
trying to set up an application in the
vm there are a lot of things that you
need to set up first is the underlying
infrastructure of the vm let's not
really worry about it on top of it is
where your os is on top of it is where
your application run time if i would
want to have java application then i
would need to create a java runtime
and on top of it is the code you'd also
need to be able to uh
deep like configure enronment variables
and things like that
right so deploying an application
typically involves a lot of different
steps so if i want to deploy something
to a vm there are a lot of manual steps
involved and to avoid that
we started going towards containers so
we started going towards a container
image so instead of
instead of doing this on the vm what we
can do is we can create a container
image and the container image contains
the os it contains the runtime it
contains the configuration you need and
it also contains the deployable unit or
the code which you would want to be able
to run and once you have a container
image you can go ahead and run this
anywhere you can run it on your local
machine you can run it in the cloud you
can run it on the data center
that's
the concept of containers and docker is
one of the most popular container
runtimes right so docker specifies a
format where
how it specifies how your container
image should be structured and also it
specifies the standards for the
container runtime so it tells this is
how your container run time should be as
well and in aws if you have docker
images you can use elastic bean stock to
run them as well so elastic bean stock
not only supports jars bars python
applications and things like that you
can also give it a container image and
it would ensure that it is deployed in
the right way in an efficient way and it
also enables auto scaling it enables
easy operations and all that stuff
however let's say you have a micro
services architecture where you have a
number of small micro services which are
talking to each other some enterprises
have 10 micro services some enterprises
have 100 micro services some enterprises
have thousands of micro services right
in that kind of a scenario what you can
do is you can go for something
more than just a simple manage service
when you have just one application to
manage elastic bean stock is a really
good thing to go for however when you
would ne when you have multiple
applications multiple micro services to
manage that's when you would need
something complex maybe your rest api is
not just one rest api you have a number
of rest apis which are being exposed in
that kind of situations you can go for
container orchestration solutions which
are present in the cloud if you look at
container orchestration one of the most
popular container orchestration tools do
you want to guess that
yup it is kubernetes right so kubernetes
is the most popular container
orchestration tool today and in aws if
you want to run kubernetes you can say
you can make use of elastic kubernetes
service
and
aws also provides its own container
orchestration service it's called
elastic container service
actually elastic container service is
something which came in even before
kubernetes
so
a lot of customers are making use of ecs
especially aws customers are making use
of ecs
and some of them are actually shifting
towards kubernetes as well so aws offers
both these options elastic container
service and elastic kubernetes service
in elastic kubernetes service and
elastic container service what you need
to do is you need to first create a
cluster
and in the cluster there are multiple
nodes
and to this cluster you can deploy your
applications that's basically the
concept of container orchestration you
create a cluster and you can tell the
cluster i would want this many instances
of this specific container microservice
one five instances microservice two six
instances microservice three ten
instances so on and so forth
in eks and ecs you need to manage the
cluster so you need to take care of
adding nodes to the cluster removing
nodes from the cluster all that would
become your responsibility however if
you want to be able to run something
like this in a serverless way you don't
need to worry about managing the cluster
at all in those kind of situations you
can go for far gate
aws target is a serverless version of
ecs
so you can run ecs in a serverless way
you can run a container in a serverless
way by going for far gate
so until now to run your rest api we
talked about multiple options the first
one which which we talked about is to
create an elastic load balancer create
elastic compute
instances ec2 instances and
use a
asg to create a group of ec2 instances
and use elb to distribute load between
them that's the first option however it
involves a lot of maintenance lot of
headache for you
instead of that you can go for elastic
bean stock
if you have a lot of applications that
you would want to manage maybe you want
to go for container orchestration
solutions that's when you would go for
eks and bcs
in the last couple of decades there is
one more approach which is becoming
popular whenever we talk about
applications we talk about how to deploy
them
how to create the cluster
how to create a load balancer how to
create multiple instances how to install
applications on the server how to
install a runtime how to
deploy the application there and all
those kind of things what if you don't
need to worry about servers so do not
worry
about
servers
that concept is what is called
serverless in serverless you don't worry
about your servers
all that you do is you would give a
piece of code so you give a piece of
code and you tell aws hey aws this is a
piece of code i might get 10 requests i
might get 10 000 requests handle it for
me i don't really want to worry about it
that approach is what is called
serverless approach
and in aws the most popular service to
be able to do that is aws lambda
if you look at the serverless world i
would say
in the serverless functions world aws
lambda is the number one service
i would say almost 80 percent of the
customers who are making use of
serverless functions are running them
using aws lambda
as we talked about earlier when you're
going for aws lambda you don't need to
worry about servers all that you need to
give aws is this is the code this is the
runtime i would want to make use of and
you'll be able to
scale it to whatever limits do you want
aws lambda can't handle that for you if
there are 10 requests it can handle that
for you if there are 10 000 requests it
will handle that for you and the other
important thing is you'll pay by volume
of your request let's say there are 10
000 requests that's what you would pay
for let's say there are zero requests
coming in you don't need to pay anything
at all so if you want to be able to run
your rest api in a serverless way that's
when you would go for aws
lambda
so until now we looked at some of the
main aid services for hosting your
compute related things for hosting your
web application for hosting your rest
api and things like that the options
which we looked at are ec2 elastic load
balancer
we also looked at elastic bean stock you
can go for container orchestration with
eks ecs or you can go for serverless
container option which is target or you
can go for the serverless function
option which is aws lambda i hope this
was very very useful for you let's now
go in into the other world let's go into
the database world right even running
databases is not easy a lot of people
think databases are easy to run however
databases are very very difficult as
well let's say i would want to install a
database on a specific vm i need to
first set up a os i would need to set up
the database runtime oracle or whatever
then i would need to create my database
and then create my data right so
managing a database is also not easy and
doing operations for databases also is
very very tough if you want to take a
backup of this if you want to ensure
point in time recovery right let's say
some problem happened and i would want
to be able to recover to a state my
database was in yesterday that is what
is called point in time recovery your
databases typically you need point in
time recovery and you don't want to lose
data so you want high durability for
your databases and in addition you would
want high availability there might be a
lot of applications which are talking to
your database and your database should
be highly available setting up high
availability setting up scalability
setting up
operations everything for your database
is very very complex and that's the
reason why you don't want to create an
ec2 instance and set up a database on it
if you create a ec2 instance install
database set it up you need to also take
care of availability you might want to
create another database another copy of
it in maybe another zone
or another region and those kind of
things become really really complex you
don't really want to be doing that when
you go to the cloud that's where you
would go for managed database services
so just like there are managed compute
services there are managed database
services also present in the cloud these
manage database services help you to
easily create databases and
run them in the cloud
whenever you want to create a database
the first option that you need to think
about is do i want to create a sql
database or do i want to create a nosql
database right
i'm using sql as an abbreviation for
relational databases
right so you might want to create a
relational database tables relationships
foreign keys primary keys and all that
fun stuff or you want flexibility i
would want huge scalability right that's
when you go for nosql databases when you
go to relational databases there is
perfect structure so there is a
structure in which you need to
create your data
there are proper relationships
it is not really flexible and
relational databases typically can scale
only to a limited extent however nosql
databases don't have any structure
typically they are very very flexible
with this structure but they provide you
with high scale
so depending on your specific use case
you would want to go for a relational
database or a nosql database if you have
a banking application and you are
managing banking transactions in those
kind of situations transaction
management is very very important in
those kind of situations you would go
for relational databases let's say i
have a social media application or
like let's say i have linkedin or
twitter or facebook in this kind of
situations
transactions might not be so important
little bit of cons inconsistency in the
data might be okay if i'm posting a
tweet it might not go at the same time
to all the people that's okay
in those kind of situations we would go
for nosql databases when we go for nosql
databases we need high scale we would
want millions of transactions per second
right so that's the situations in which
you go for nosql databases in aws the
most popular relational database is rds
relational database service if you want
to run mysql or oracle or sql server
that's where you'd go for rds there is
another option which is very very
popular in aws which is called aurora
it's also called amazon aurora
so if you want a regional database and
if you want to scale only to a certain
extent maybe the maximum typically
allowed is 64 terabytes so if your data
fits in with these requirements and if
you just want a regional database then
you can go for rds with mysql or rds
with postgresql
or rds with sql server or oracle but if
you want a global relational database in
those kind of situations you can go for
aurora this provides you with
99.9 percent availability which is
considered to be really really really
high
it provides transactions it provides
high scalability and all the things that
you typically need from a relational
database
so that's one of the options for your
database so depending on the type of
application you are creating you might
choose between relational database or
nosql databases if you go for relational
databases in aws you have the option to
go to aws ids or you can go for rora
now let's say you want to go for a nosql
database for your transactional
application let's say you are creating a
social media application for you
consistency is not so important but
scale is very very important you would
want to be able to scale it to millions
of transactions per second in those kind
of situations you would go for nosql
databases and typically the database you
would go for in aws is dynamo db
dynamodb is the most popular nosql
service in aws this is something called
a document database you would store your
data as json documents and
you can actually create indexes on
specific elements of your documents and
you also have a lot of flexibility a
specific document might have certain
details a specific another document in
the same table might not really have the
same amount of details
so these are some of the important
database options when it comes to
transactional applications right
transactional applications make small
changes like small updates small deletes
ads and things like that these are
typically online applications a web
application is typically a transactional
application right a shopping application
or a banking application these are all
transactional applications
now are there just transactional
applications
no you might have some reporting
applications some business intelligence
relation related applications as well
that's when you would go for analytical
databases
for example one of the most popular
analytical solutions is something called
hadoop right you can run hadoop in aws
as well and aws provides its own
solutions as well in aws if you want to
run analytical database one of the
recommended options is to go for
redshift
aws redshift is one of the popular ones
you can actually have petabytes huge
volumes of data and you can actually run
compute or queries against this huge
volume of data with very very high
performance
right whenever we talk about a
relational database or actually a
transactional database versus analytical
database the difference is
in terms of the operations which are
performed in the case of a transactional
database there would be a small amount
of
large number of transactions right so
what we are talking about in here is
there would be small updates maybe one
row is updated or three rows are updated
ten rows are updated or five rows are
inserted four rows are basically deleted
so these kind of these are the kind of
operations which are performed on
transactional databases however when we
are talking about analytical databases
typically you load the data in bulk you
will take all the data from a
transaction database and load it in bulk
into the analytical database but what
you would be doing from here is running
a lot of queries lot of very very
complex queries you'd want to get
intelligence so when when it comes to
analytical databases you have one-time
loads maybe once a day or once a week or
things like that and you have huge
volumes of reads you have queries which
are running which are very very complex
and that's the reason why analytical
databases are optimized for reads huge
volumes of reads across huge volumes of
data and in aws the recommended option
is redshift you'd go for this when you
have analytical workloads that you'd
want to run in aws
now how do you get the data from your
relational database or from your
transactional database into your
analytical database that's when
you can go for a data pipeline so aws
provides
a
service called aws data pipeline
aws data pipeline can create data from
your database
from your transaction database and load
it into an analytical database as well
and aws also provides business
intelligence solutions so you can use
something like aws quick site or
something of that kind to read from your
analytical database and get intelligence
to be able to run queries and all that
stuff around this
right so
after focusing on the compute part this
is basically rest api is in the compute
part
we shifted our attention to the database
part we talked about how you can run
databases in aws we talked about
relational databases
rds aurora and we talked about nosql
databases one of the most popular ones
is dynamodb and we also talked about
analytical databases redshift you can
also run hadoop using a managed service
in aws as well and we also talked about
business intelligence
for example something like aws quick
site
now let's shift our attention to the
front end right until now this is the
part which we did not really talk about
so let's say we have
a web application that we want to serve
a react application or a angular
application that's what we would want to
serve
in the front end one of the options you
have is to use ec2 instances as well so
over here you can create an ec2 instance
you can put the web application there
and you can also set up load balances to
serve this static application which is
deployed onto ec2 instance or you can
actually set up a web server on the ec2
instance and serve it from your elastic
load balancer so that's one of the
options you always have when you want to
serve a front-end application but it
again is a lot of operational details
and that's where aws provides another
service which is actually not related to
running applications at all but it also
helps you to
expose a static website now before we
get there let's talk a little bit more
about storage services which are present
in aws why do we need storage
let's say i have a virtual machine right
i have a virtual machine
i would want to attach a hard disk with
it i would want to attach a simple hard
disk with it what is the service you can
make use of in aws
in aws to create virtual machines you
can make use of ec2 and when you are
creating a virtual machine with ec2 what
happens is a hard disk is automatically
created for you
and the service which is used to create
this hard disk for you is called elastic
block store
so elastic block store is the service
which is used to create a hard disk and
attach to it with your vm
you can also create file shares so if i
want to create a file share and share it
between multiple ec2 instances multiple
maybe instance from my data center in
those kind of situations i can go for
something called efs
elastic file store
so what we are talking about over here
are storage devices which are attached
to your vms so there are a number of
storage devices you have and you can
attach it with multiple vms whenever we
talk about elastic block store we are
talking about something like a hard disk
a hard disk at a particular point in
time can only be attached to a single vm
however whenever we're talking about
elastic file store what we are talking
about is something which can be shared
so this one if you are creating using
efs can be shared between multiple
devices
now this is one kind of a use case where
you want to attach storage with your
virtual machines
let's talk about a few other use cases
related to storage let's say you have
users who are uploading files to a
website and you would want to store all
those files in a particular place you
can use a database but databases are not
optimized for storing files let's say
these are large video files or large
audio files are large images things like
that so these are all objects you'd want
to be able to store this with a key
value pair so the value is the
file itself and the key is a unique
thing you give to identify a specific
thing
right so when you want to go do some
things like that that's when you go for
something called object storage
so in object storage you can create
buckets and you can store value store
objects using key value pairs so you can
say this is the key this is the value
and you can store text files you can
store images you can store
video files audio files any kind of
files can be stored in object storage
using a simple rest api so this provides
you with a rest api and you can use the
rest api to upload objects to retrieve
objects using their keys and values
and object storage also provides a lot
of other use cases you can store archive
files in here if you are migrating data
from let's say an on-premise to the
cloud you can use object storage as a
temporary store you can first load the
data into
create an archive for your database put
it into object store and from there you
can load it into your specific database
in the cloud so there are a lot of
purposes which an object storage can be
used for
one of the other purposes which it can
be used for is to create a static
website if you upload all your static
files your css files images your html
content all of them if you create it if
you create a bucket and upload it into
an object storage you can expose it from
your
object storage as a website so once the
content is there in an object storage
you can even expose a static website and
when it comes to aws this is the most
preferred way of
exposing a static website what you can
do is you can make use of s3 so you can
use the s3 which is the object storage
service it's also called simple storage
service s3 is one of the actually most
popular aws services because it's one of
the first aws services as well
so you can use s3 and you can actually
deploy
your front end into a bucket in s3 and
you can serve it from there and if you
want to actually give a name let's say
you want to expose it at a website so i
would want to expose it at
www.in28
minutes.com
then i can even
you i can make use of some a service in
aws called route 53 so route 53 is the
domain naming service in aws and let's
say i would want to cache the content
this is static content which can be
cached
in those kind of situations i can make
use of cloud front cloudfront
can be used
to cache and distribute your content to
around the world right the content in s3
you'd want it to be available for users
across the globe
from different continents what you can
do to make latency lower is to
distribute it across the world and
that's what cloudfront can do for you so
you can use cloudfront as a distribution
mechanism for your static content to
distribute it around the world you can
use route53 to name your website
until now we talked about a varied range
of services which are present in aws we
talked about rest api which is your
compute we talked about different
compute services we talked about
different
relational database services which are
typically used for transactional
applications we talked about analytical
databases as well
and we talked about business
intelligence as well and right now in
the last few minutes we were talking
about the front-end application which is
typically deployed to object storage
in aws which is s3 and we also talked
about
how you can actually give it a name
www.inqtmintz.com you can do that in
route53 you can buy a domain name you
can associate it with your
content which is present in s3
and we also talked about cloud front
which is used to distribute your static
content across the world so that users
get
low latency so that kind of at a high
level
some of the important services we wanted
to touch upon
one thing which we did not really talk
about at all is security right security
is very very important one of the most
important things that you need to
realize is the fact that
aws is a shared cloud platform whenever
you make use of infrastructure in aws
that infrastructure is shared between
multiple enterprises so if you are
creating a vm it might be on the same
hardware as we have as some other
customers so security is very very
important you want to be able to
separate the traffic which is going into
your application from other applications
which belong to other enterprises let's
say
i have a simple
application
which is talking to a database
the traffic which is going on between
them will not be visible to outside
world if you are running it within a
data center but over here in the cloud
we are running it in a cloud
and there might be other applications
which might be deployed over here and
that's where you want to separate the
traffic out you want to control the
entire traffic which is going into your
devices
and to your databases how can you do
that that's where you can go for a
concept called vpc
so what we can do is we can create a vpc
virtual private cloud networking is a
concept which a lot of us as a
programmer might not be familiar with
please bear with me understanding
networking is very very important when
you go to the cloud because
we don't understand networking as well
right when you go to the cloud security
becomes really really important inside
the data center all the applications are
belonging to one enterprise so security
might not be so important but once you
go into the cloud security becomes
really really important because we are
making use of shared infrastructure and
the way you can actually implement
security the way you can actually
control traffic which is going into your
applications is through these concepts
called vpcs and subnets
so
if you create a vpc you can control all
the traffic which is going inside the
vpc and all traffic which is going
outside the vpc you can set up rules
saying this traffic is allowed this kind
of traffic is not allowed
right so basically
a vpc
has rules
route tables where you can define the
different rules and also there might be
different kinds of applications which
are present in a vpc let's say this is a
web application and i would want to be
able to access this from the internet so
there'd be users could be accessing it
over internet however this database i
don't want it to be accessed from the
internet i only want it to be accessed
from other applications or from other
devices which are part of this network
only
so there are different use cases for
different kinds of resources you create
in a specific vpc and that's where we
can go for subnets subnets allow you to
configure different rules
for different things so you anything
that you create within a private subnet
so
let's call this a private subnet
and let's call this a public subnet
anything you can you create in the
public subnet
can be accessed from the outside world
directly anything you create in a
private subnet cannot be out access from
outside world you should either con talk
to them from another resource which is
present in the private subnet or you can
talk to it from
the public subnet and you can configure
rules to allow what is allow actually to
you can configure rules to decide what
is allowed and what is not allowed as
well so
you can separate resources which are
present into vpc in the vpc into
different groups by using subnets you
would put all the things which you want
to allow access from internet in a
public subnet you'd want you would put
all things which you don't want to allow
access from the internet in a private
subnet
so typically a web application something
you'd want to be allowing access from
internet will be going into a public
subnet and
in the private subnet is where you put
all the things like a database for
example or any storage devices you don't
want to allow access from outside so all
those things would be put inside a vpc
now you might be creating a number of
resources in the cloud right
you might also have your own data center
so you might have your own data center
which is being made use of by your
corporate and you want to establish
connection between different resources
so you would want to be able to have
your resources which are near data
center talk to resources which are
present inside your vpc how can you do
that
that's where we go for a concept called
vpn vpn is over internet so you
establish a connection between your
cloud
between your vpc which is present in the
cloud and your data center by making use
of managed vpn in aws
however one thing to remember is that
this traffic goes over internet and
that's why the traffic is encrypted
using ipsec protocol
however you might be thinking hey i
don't want to i love traffic over
internet i would want to create a
dedicated connection
in those kind of situations you can also
create a dedicated connection this is
called direct connect so you can
establish a direct connect from
your data center
to
the aws cloud to the specific region
where your vpc is present in
until now we touched upon some of the
important aspects related to aws we
talked about a lot of aws services now
before we conclude i'll talk about a
couple of more aws services which might
be interesting for you let's say this
rest api wants to talk to a queue so you
might have other applications which are
listening on this queue and they are
consuming the messages which are coming
in here the popup queueing service in
aws is sqs amazon sqs is a queuing
service typically whenever we talk about
applications you would want to prefer
asynchronous communication so sqs
provides you asynchronous communication
sometimes let's say a object is uploaded
on s3
you want to get an email or you'd want
to like receive a notification in those
kind of situations you can go for sns
sns is simple notification service
so what we are talking about are high
level some of the important services
which are related to setting up your
applications
one aspect which we did not talk about
until now is
the devops aspect right so whenever we
talk about
uh applications and whenever we talk
about deploying them to the cloud devops
becomes really really important you
would want to automate everything
related to provisioning of your
infrastructure deploying your
application and all the things related
to that and that's what is typically
called devops whenever we talk about
devops we talk about a lot of things
right we talk about continuous
integration continuous deployment we
talk about infrastructure as code how do
you automate the creation of your
infrastructure how do you automate the
provision configuration of your virtual
servers which are created in the cloud
and we also talk about observability we
would want to be able to see what's
happening in your infrastructure you
want to be able to get metrics logs
traces and all those kind of things
right let's quickly look at all the
services which are related to that if
you want to do ci cd if you want to do
devops in aws the service is aws
pipeline you can use aws pipeline to
create
pipelines there is also a service called
code build
and we have a service called code deploy
so if you want to build a docker image
or a jar file or a wire file you can
make use of aws code build and if you
want to deploy it to elastic bean stock
or if you want to deploy it to any other
maintenance service which is present in
aws or if you want to deploy to a ec2
instances you can make use of code
deploy so you can make use of these two
as part of your pipelines to deploy your
applications in aws
now infrastructure as code typically has
two parts one is provisioning the
infrastructure so let's say earlier we
talked about
creating a vpc creating subnets
creating an application maybe a ec2
instance or elastic beam stock and maybe
creating a database and then
allowing them to talk to each other
configuring the rules related to that
right so you need to create the
infrastructure
you don't want to do that manually
because in typically there are multiple
environments they have qa stage
production
the moment you do it manually the chance
that you make mistakes are very very
high you don't want that to happen and
that's where you want to automate the
provisioning of infrastructure
if you want to automate the provisioning
of infrastructure there are three
different options
one is cloud formation cloud formation
is one of the
first
infrastructure provisioning tools which
was provided by aws basically you write
a lot of complex scripts to provision
the infrastructure typically these
scripts even for simple applications can
be running into thousands of lines and
that's where a cloud neutral solution
called terraform became really really
popular with terraform you can write
simple scripts
to provision your infrastructure and an
alternative which aws provides now is
something called cdk in cdk you can
write java programs python programs or c
programs to provision your
infrastructure
the other option you can also make use
of
in infrastructure as code is
configuration management what is
configuration management let's say i
have 100 vms i would want to install a
security patch on them or let's say i
have a lot of vms on which i would want
to update the application software in
those kind of situations we make use of
configuration management if you look at
if you look at the open source world
some of the popular ones are ansible
chef
and puppet
and in aws the main service is aws ops
works
so you can manage multiple vms you can
install software do a lot of things
around that using your aws ops works so
these are the things which are related
to infrastructure as code now when it
comes to observability typically we talk
about a lot of different things right so
we have
tracing
we have logs
and we have metrics
cpu consumption or cpu utilization on
specific em that's a metric
logs which are coming from your
applications logs which are coming from
your managed services logs which are
coming from your load balancers these
are all logs
your applications might be going across
multiple microservices right so your
request sorry your request can be going
across multiple micro services and
that's where you would want to trace the
request across multiple micro services
just having a piece of log might not be
sufficient what i would want to be able
to do is to use that piece of log and to
be able to trace the request across
multiple micro services that's where
tracing becomes really really important
in aws the services for the service for
metrics and logs is aws cloud watch
so aws cloudwatch is for metrics aws
cloudwatch logs is for logs so this is a
centralized place where you can send all
the logs from your applications from all
the managed services in
aws as well and metrics all the metrics
around your cpu utilization your
application related metrics all of them
can be sent to airbus cloudwatch and for
tracing
you can send all your tracing
information to aws x-ray this is the
tracing service in aws okay those are
some of the important aspects related to
devops in aws the idea of this specific
video was to give you a high level
overview around aws typically we are
used to deploying applications in our
data centers i just wanted to take one
of such examples and give you a high
level overview of how you can do things
uh with aws in uh
in a lot of high level detail right it's
not really detailed i mean we did not
really set up anything manually we did
not create anything in aws but the idea
was to give you a 10 000 feet overview
of everything in aws i hope this was
really really useful if you are able to
make sense of at least 50 to 60 of this
video i think that's good success for me
and if you actually made uh like if 50
to 60 of this video made sense then i
think you are ready to go for a cloud
certification i would recommend you to
check out any of our aws azure or google
cloud certification courses at least the
beginner ones may be something like
azure fundamentals az 900 or even
something like uh cloud practitioner aws
cloud practitioner might be a good place
to start
if you're going for google cloud google
cloud digital leader might be a good
place to start typically if you are able
to understand some of the stuff which is
present in here about 50 to 60 of this
stuff which is present in this specific
video i think you can complete the cloud
certifications in about two to four
weeks
uh i i was so confident that somebody
can
clear cloud certifications easily that i
call my az900 certification as az 900 in
a weekend so i call it azure
fundamentals in a weekend that's how
confident i am that learning the cloud
is very very easy so hopefully
i made them as simple as possible the
goal was to just uh come up come on like
draw a picture kind of make it easy for
you to understand aws because once you
understand the big picture once you
understand things at the high level you
can dig in and find out things in a much
much easier way and
over the last few years i've been
working with aws a lot i thought
it would be great if somebody can create
something like this which would be
useful for beginners especially if you
are really really beginner to the cloud
to get the high level landscape of the
cloud so that's the goal of this
specific video i hope you liked it
i'm sure you had a great time watching
this video
do not keep it to yourself tell your
friends and tell youtube as well how do
you do that
like share and subscribe if you are
looking to get cloud certified check out
our cloud certification courses in aws
azure and google cloud and do not forget
to check out the other videos in this
series of videos on cloud fundamentals
if there is a cloud topic that you are
feeling it very very difficult to
understand do post it in the comments
and we will make it simple for you i am
sure you had a great time watching this
video and i'll see you again very very
soon until then here's bye from ranga at
in 28 minutes see you soon
Ver Más Videos Relacionados
AWS Cloud Resume Challenge - Setting up S3 bucket and CloudFront | Part 2
The only Cloud services you actually need to know
Top 50+ AWS Services Explained in 10 Minutes
Cloud Networking Overview (Using AWS as reference)
Implementing Infrastructure as Code with Terraform | AWS Cloud Resume Challenge - Part 6
24 MOST Popular AWS Services - Explained in 13 mins (2024)
5.0 / 5 (0 votes)