Intro to AWS - The Most Important Services To Learn

Be A Better Dev
6 Jun 202250:07

Summary

TLDRThis video script serves as a comprehensive guide to navigating the vast array of AWS services. It breaks down complex AWS concepts by examining a standard three-tier application architecture, detailing services for DNS, load balancing, compute options, databases, user pools, API management, and more. The script also delves into deployment and monitoring tools, emphasizing the importance of security and the use of services like CloudWatch and CloudTrail. It highlights the serverless model, event coordination, and the role of Amazon S3 in object storage, concluding with a mention of Amazon VPC for network isolation, providing a solid foundation for anyone new to AWS.

Takeaways

  • 🌐 Understanding AWS can be challenging due to its vast number of services, but learning them is crucial for navigating the cloud computing landscape.
  • 🏗️ The video outlines a standard three-tier application architecture, including web backend, application, and database layers, along with additional components like deployment orchestration and monitoring.
  • 🔄 AWS services like Amazon Route 53 for DNS, Elastic Load Balancers, and various compute options (EC2, Lambda, ECS, EKS) are essential components of the web backend and application layers.
  • 🚀 Serverless computing with AWS Lambda allows for code deployment without managing infrastructure, scaling automatically based on the request load.
  • 🗃️ Data storage and caching are handled by services like Amazon RDS, DynamoDB, and Elastic Cache, catering to both relational and NoSQL database needs.
  • 🔧 AWS provides tools for deployment automation and continuous integration/continuous deployment (CI/CD) with services like CodeCommit, CodeBuild, CodeDeploy, and CodePipeline.
  • 👀 Monitoring the health and performance of AWS services is vital and can be achieved through Amazon CloudWatch and CloudTrail.
  • 🛡️ Security and access management in AWS are managed through Identity and Access Management (IAM), ensuring that only authorized users can interact with AWS resources.
  • 📊 Analytical processing and data warehousing are supported by services like Amazon EMR, Athena, and Redshift, allowing for big data processing and complex queries.
  • 📊 Amazon QuickSight is a dashboarding tool that enables users to create business-facing dashboards for data exploration and visualization.
  • 🏢 Amazon VPC (Virtual Private Cloud) provides a private networking space for resources, enhancing security by isolating them from other systems and the public internet.

Q & A

  • What is the primary purpose of Amazon Route 53?

    -Amazon Route 53 is primarily used for managing DNS configurations, including defining where internet traffic is routed from. It also supports health checks on endpoints and traffic shaping.

  • What are the two types of load balancers provided by AWS?

    -AWS provides two types of load balancers: Application Load Balancer, which operates at the L7 layer and is suitable for routing traffic based on HTTP headers, and Network Load Balancer, which operates at the L4 level and is more cost-effective with higher throughput limits.

  • How does AWS Lambda differ from Amazon EC2?

    -AWS Lambda is a serverless compute service where you define functions (snippets of code) and AWS manages the infrastructure. In contrast, Amazon EC2 involves renting virtual machines, giving you more control but also requiring more setup and configuration.

  • What additional functionality does API Gateway offer besides traffic distribution?

    -API Gateway offers features like API throttling, authorization, model validation, and integration with user pools for authentication, providing a more sophisticated level of control over APIs.

  • Amazon Cognito is used for creating user pools, allowing users to sign up for accounts directly within Cognito using a hosted UI, or integrating with third-party identity providers like Google, Facebook, and Amazon for user authentication.

    -Amazon Cognito facilitates user registration and authentication by creating user pools. It allows users to sign up directly or integrates with third-party identity providers.

  • What are the two main types of caching services provided by AWS?

    -AWS provides two caching services: ElastiCache, which can be based on either Memcached or Redis, and Amazon CloudFront, which is a content delivery network service for caching content close to end users to improve performance.

  • How does Amazon Aurora differ from Amazon RDS?

    -Amazon Aurora is a managed database service built by AWS that is compatible with MySQL and PostgreSQL, offering features like auto-scaling and a serverless compute model. Amazon RDS, on the other hand, supports a wider range of database engines like MySQL, PostgreSQL, Microsoft SQL Server, Oracle, and Cassandra, but with less hands-off features compared to Aurora.

  • What is the role of AWS Elastic Beanstalk in application deployment?

    -AWS Elastic Beanstalk is a service that simplifies the deployment and management of web applications, including load balancing, auto-scaling, and monitoring. It orchestrates the deployment of various components but allows for control through a single interface.

  • How does AWS CodePipeline help in the deployment process?

    -AWS CodePipeline is a deployment orchestration service that defines a workflow for the stages an application will go through, from source code to production deployment. It integrates with other AWS services to build a sophisticated CI/CD pipeline.

  • What are the key monitoring services provided by AWS?

    -The key monitoring services provided by AWS are Amazon CloudWatch, which monitors the state of applications and AWS resources, and AWS CloudTrail, which provides an audit trail of operations performed on the infrastructure.

Outlines

00:00

🌐 Navigating AWS Services for Application Architecture

This paragraph introduces the complexity of AWS services and provides an overview of how to approach learning them. It emphasizes the vast number of services and the challenge in identifying the right tools for specific tasks. The video aims to help viewers understand AWS by examining a standard three-tier application architecture, which includes a web backend layer, an application layer, and a database layer. It also mentions additional components like deployment orchestration, monitoring, load balancing, and event coordination, setting the stage for a detailed exploration of AWS services in the subsequent paragraphs.

05:01

🔍 Exploring Compute Options and AWS Services

This paragraph delves into the various compute options available on AWS, such as Amazon EC2 for virtual machine rentals, AWS Lambda for serverless computing, and Amazon ECS for container management. It also introduces Amazon EKS, a service for managing Kubernetes clusters. The discussion highlights the flexibility of EC2, the hands-off nature of Lambda, and the middle ground offered by ECS and EKS. The paragraph further explains the use of Amazon API Gateway for creating and hosting REST APIs, emphasizing its additional features like throttling and authorization.

10:03

🗄️ Database and Caching Services in AWS

This paragraph focuses on the database and caching services provided by AWS. It starts with Amazon ElastiCache, a caching service that can be based on Memcached or Redis. The discussion then moves to relational databases, highlighting Amazon Aurora and Amazon RDS, which supports various database engines. For NoSQL databases, the paragraph covers Amazon DynamoDB and Amazon DocumentDB, a MongoDB-compatible service. It also touches on AWS OpenSearch, a powerful service for flexible querying at scale, and its integration with other AWS services.

15:03

🛠️ Packaged Infrastructure and Developer Tools

This paragraph discusses AWS services that simplify the development process by offering packaged infrastructure. It introduces Elastic Beanstalk, a service that automates the deployment of web applications, and AWS App Runner, a serverless service that abstracts away lower-level components. Amazon Lightsail is also mentioned as a simplified, beginner-friendly service for deploying various application stacks. The paragraph also highlights AWS AppSync for GraphQL users and Amazon CloudFront for caching and improving performance by distributing content globally.

20:04

🔧 Deployment Pipeline and Monitoring Services

This paragraph covers the AWS services involved in setting up a deployment pipeline. It starts with AWS CodeCommit for source code storage, AWS CodeBuild for creating artifacts and running tests, and AWS CodeDeploy for deploying the artifacts to compute infrastructure. AWS CodePipeline is introduced as an orchestration service that defines and automates the steps in the deployment process. The paragraph then shifts to monitoring, emphasizing the importance of Amazon CloudWatch for monitoring metrics and logs, and AWS CloudTrail for tracking operations and maintaining an audit trail. It also mentions AWS Identity and Access Management (IAM) as a crucial service for securing AWS resources.

25:04

🚀 Rapid Development and Infrastructure as Code

This paragraph discusses tools and services that accelerate development and infrastructure management. It introduces AWS CloudFormation, a service that allows infrastructure provisioning through JSON or YAML templates. The AWS CDK (Cloud Development Kit) is highlighted as a more developer-friendly alternative that lets you define infrastructure using code. The paragraph also mentions AWS Amplify, a CLI tool focused on rapid application development with less emphasis on underlying infrastructure. Finally, the Serverless Application Model (SAM) is introduced as a way to simplify common infrastructure setups and enable local testing of Lambda functions.

30:05

📢 Event Coordination and Pub/Sub Messaging

This paragraph explores AWS services for event coordination and pub/sub messaging. It begins with Amazon SNS (Simple Notification Service), a pub/sub service for publishing notifications to multiple subscribers. The paragraph then discusses Amazon SQS (Simple Queue Service), a message queue service for processing messages asynchronously. It also covers AWS EventBridge, a service that integrates with various AWS and third-party applications for event-driven architecture. The paragraph highlights the benefits of EventBridge, such as schema discovery and third-party integrations, which are not natively offered by SNS.

35:06

🔄 Workflow Automation and Object Storage

This paragraph focuses on AWS Step Functions, a service that allows the creation of complex workflows with multiple steps and conditional logic. It integrates with other AWS services and is serverless in nature. The discussion then moves to Amazon S3 (Simple Storage Service), a widely used object storage service for storing and serving large amounts of data. The paragraph also touches on the use of S3 for caching content through Amazon CloudFront and the potential for storing event data for further analysis. Finally, it mentions the importance of Amazon VPC (Virtual Private Cloud) for isolating resources within a private networking space.

40:06

📊 Analytical Processing and Data Warehousing

This paragraph discusses AWS services for analytical processing and data warehousing. It starts with Amazon EMR, a distributed data processing system supporting frameworks like Spark, Hive, and Presto. The paragraph then introduces Amazon Athena, a serverless big data processing service that queries data directly from S3 using SQL. For data warehousing, Amazon Redshift is highlighted as a columnar database suitable for large-scale OLAP queries, with both provisioned and serverless modes available. The paragraph also mentions the integration of Redshift with S3 for data loading and the use of QuickSight for creating business-facing dashboards for end-users.

Mindmap

Keywords

💡AWS Services

AWS (Amazon Web Services) is a comprehensive cloud computing platform provided by Amazon that offers a wide range of services such as computing power, database storage, content delivery, and other functionalities to help businesses scale and grow. In the video, various AWS services are discussed in the context of a standard three-tier application architecture, highlighting how each service can be utilized to build and manage different components of an application in the cloud.

💡Three-Tier Application Architecture

A three-tier application architecture is a software architecture where the different aspects of an application are organized into three distinct layers: the presentation layer (web frontend), the business logic layer (application layer), and the data storage layer (database layer). This separation of concerns allows for better scalability, maintainability, and security. In the video, the presenter uses this architecture to explain how AWS services can be mapped to each layer to support the application's needs.

💡Serverless Computing

Serverless computing is a cloud computing execution model in which the cloud provider dynamically manages the allocation and provisioning of servers. With serverless, developers can build and run applications without having to manage server infrastructure. In the context of the video, AWS Lambda is highlighted as a serverless compute service that allows users to run code without provisioning or managing servers, and the service automatically scales with the number of requests.

💡Amazon EC2

Amazon EC2, or Elastic Compute Cloud, is a web service that provides resizable compute capacity in the cloud. It allows users to launch and manage virtual servers in the AWS cloud. EC2 instances can be used for a variety of applications, from hosting websites to running complex applications. In the video, EC2 is presented as a flexible compute option where users rent virtual machines and can set them up to perform any task they require.

💡Amazon RDS

Amazon RDS, or Relational Database Service, is a managed database service provided by AWS. It supports multiple database engines such as MySQL, PostgreSQL, Oracle, and SQL Server. RDS makes it easier to set up, operate, and scale a relational database in the cloud, handling time-consuming database administration tasks such as hardware provisioning, database setup, patching, and backups. In the video, RDS is mentioned as a service for setting up and managing relational databases in a three-tier application architecture.

💡Amazon S3

Amazon S3, or Simple Storage Service, is an object storage service provided by AWS that offers industry-leading scalability, data availability, security, and performance. It allows users to store and retrieve any amount of data from anywhere on the web. S3 is designed to make web-scale computing easier for developers and IT professionals. In the video, S3 is discussed as a service for storing and serving static content like images, JavaScript, and CSS files, and also for storing data for analytical processing.

💡Elastic Load Balancing

Elastic Load Balancing is a service provided by AWS that automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances. It enables users to achieve even traffic distribution, improve application availability, and effectively handle traffic spikes by balancing the load. In the video, the service is explained as a critical component in a three-tier application architecture that helps distribute traffic and ensure high availability of applications.

💡Amazon DynamoDB

Amazon DynamoDB is a managed NoSQL database service provided by AWS that offers fast and predictable performance with seamless scalability. It is a fully managed, key-value and document database that provides single-digit millisecond latency at any scale. In the video, DynamoDB is presented as a popular NoSQL database option on AWS, optimized for key-value lookups and capable of handling large workloads with its serverless and auto-scaling features.

💡Amazon CloudFront

Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency and high transfer speeds. It is built on AWS's globally distributed network of edge locations. In the video, CloudFront is mentioned as a service to deploy distributions that replicate content to regional nodes worldwide, thereby improving the performance of serving cached content to end-users.

💡Amazon VPC

Amazon VPC, or Virtual Private Cloud, is a service that allows users to launch AWS resources into a virtual network that they define. VPCs enable the creation of an isolated section of the AWS Cloud where users can launch AWS resources in a logically-isolated virtual network. In the video, VPC is discussed as a way to create a secure and isolated network boundary for resources, allowing for the definition of network settings, and the ability to connect to the public internet or other networks securely.

💡Amazon Athena

Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. It is a serverless and highly scalable service that requires no database administration or setup. In the video, Athena is presented as a big data processing service that allows users to perform analytics on data stored in S3 without having to move data into a different database, making it a cost-effective and convenient option for large-scale data analysis.

Highlights

Learning AWS can be intimidating due to its hundreds of services.

This video aims to help navigate the complex world of AWS services.

A standard three-tier application architecture is discussed for understanding AWS services.

Amazon Route 53 is the AWS service for DNS configuration.

Elastic Load Balancer service is categorized into Application Load Balancer and Network Load Balancer.

Amazon EC2 provides virtual machines with flexible usage options.

AWS Lambda is a serverless compute infrastructure option.

Amazon ECS and EKS manage containers and offer a balance between EC2 and Lambda.

API Gateway offers additional features like API throttling and authorization.

Amazon Cognito facilitates user pool creation and authentication.

Elastic Cache provides caching services with Memcache and Redis options.

Amazon Aurora and RDS are popular relational database services on AWS.

DynamoDB is a powerful NoSQL database optimized for key-value lookups.

AWS offers packaged infrastructure services like Elastic Beanstalk, App Runner, and Lightsail.

AWS AppSync is a fully managed GraphQL as a service.

Amazon CloudFront is used for caching and delivering content close to end-users for better performance.

Deployment and monitoring services like AWS Code services and Amazon CloudWatch are crucial for application management.

AWS Identity and Access Management (IAM) is essential for security and access control.

Infrastructure as Code (IaC) is preferred for managing AWS resources, with services like AWS CloudFormation and CDK.

AWS Amplify focuses on rapid application development with a toolkit approach.

Serverless Application Model (SAM) provides shorthands for common infrastructure setups.

Amazon SNS and SQS are used for event coordination and pub/sub messaging.

Amazon EventBridge offers event-driven capabilities with third-party integrations.

AWS Step Functions is an orchestration service for defining complex workflows.

Amazon S3 is a scalable and affordable object storage service.

Amazon EMR is a large-scale distributed data processing system.

Amazon Athena is a serverless big data processing service that queries data stored in S3 with SQL.

Amazon Redshift is a columnar data warehouse service for large-scale queries and business intelligence.

AWS QuickSight is used for creating business-facing dashboards for end-users.

Amazon VPC allows for the creation of isolated networking spaces for AWS resources.

Transcripts

00:00

learning aws can be pretty intimidating

00:03

there's hundreds of services and it can

00:04

be difficult to understand which one is

00:06

the right tool for what you're trying to

00:08

accomplish this video is going to help

00:10

you navigate the complex world of aws

00:13

services we're going to approach this by

00:15

examining a standard three-tier

00:17

application architecture like you can

00:19

see here so let's take a look at this

00:21

architecture now before peeling back the

00:23

layers and revealing the aws services

00:26

behind the scenes so what do we have

00:28

here in this application architecture we

00:30

have a pretty standard three-tier

00:32

architecture here with a web backend

00:34

layer we have our application layer here

00:36

which is kind of if you're in an

00:38

organization with a service-oriented

00:40

architecture this will be pretty

00:41

familiar this is where all your backend

00:43

services will be and then you have your

00:45

third tier here which is your database

00:47

layer this includes uh can be relational

00:49

could be a nosql database you can also

00:51

have some caching in there as well and

00:53

then we have a bunch of other components

00:55

related to this so we have deployment

00:57

orchestration to hold on to our source

00:59

code and then facilitate deployment we

01:01

also have a monitoring component here

01:02

for monitoring the state of the system

01:04

uh we have a load balancer here with a

01:07

dns pointing to that load balancer to

01:08

distribute traffic and then we have some

01:10

other toolkits here on the right for

01:12

event coordination say for instance um

01:15

this application did some kind of

01:16

something like google where you have

01:18

search query submission and like every

01:20

time that gets saved to a database you

01:21

want to trigger some kind of event in

01:23

this layer over here we have storage for

01:26

that event we have some analytical

01:27

processing a data warehouse and finally

01:30

some dashboarding for end users to

01:32

examine that content we also have some

01:34

toolkits for rapid development to deploy

01:37

a little bit faster as well and over

01:39

here finally on the left hand side these

01:42

two elements so for user pools to define

01:44

different users that are going to be

01:45

interacting with your application and

01:47

then of course to serve cache content so

01:49

this is our pretty standard application

01:51

here let's take a look now at some of

01:53

the aws services behind the scenes that

01:56

replace each of these different elements

01:58

so the first one is for dns so what is

02:00

the service that we want to use for dns

02:03

and aws

02:04

so for aws that's going to be amazon

02:06

route 53 and row 53 is the service where

02:09

you define all your dns configuration

02:12

including you know where you're going to

02:13

route traffic to from the internet also

02:15

supports other things like you know

02:17

health checks on your endpoints and any

02:19

traffic shaping that you want to do

02:22

that's going to all be done in your

02:23

rel53 service so it's great to be

02:26

familiar with rel53 you're probably

02:28

going to be using it all the time if you

02:29

were defining kind of externally facing

02:31

apis or endpoints

02:33

now from there your dns will typically

02:35

point to an endpoint for a load balancer

02:38

so for aws there's a couple options for

02:41

load balancers but the kind of top level

02:44

category here

02:45

is something called the elastic load

02:47

balancer service and there's two

02:48

variations for elastic load balancer

02:51

there's what's called the application

02:53

load balancer which operates at the l7

02:56

layer and that's more applicable for

02:57

those you that want to use content from

03:00

your http headers to route your traffic

03:02

and for those of you that are looking

03:04

for something a little bit more lower

03:05

level aws also offers a network load

03:08

balancer which operates at the l4 level

03:11

which is a little bit

03:12

more cost effective and supports higher

03:15

throughput limits as well so that's an

03:17

elastic load balancer and some of the

03:18

different options that you may want to

03:20

use now in terms of your web backend

03:22

layer over here this is going to be the

03:23

first kind of

03:25

time that a request from the front end

03:27

touches the back end now with compute

03:30

there's a couple different options that

03:31

you can decide to leverage and those

03:33

compute options it doesn't really matter

03:35

if it's your web backend layer or your

03:37

application layer the compute options

03:39

that you select for either of these two

03:40

things will be the same so what are the

03:43

options that are available to us so the

03:45

first option is amazon ec2 ec2 stands

03:48

for elastic compute cloud very very old

03:51

service and the basic gist of this

03:53

service is that you rent

03:55

virtual machines that you pay for by the

03:57

hour and they're really convenient

04:00

because with ec2 machines you can set

04:02

them up to do whatever you please you

04:04

can use them to host

04:05

back-end databases if you want you can

04:08

host a wordpress blog on it you can

04:10

create and deploy your application for a

04:12

rest api so it's a really flexible

04:15

service that allows you to do whatever

04:17

you want but some of the drawbacks with

04:18

ec2 can include just the all the setup

04:21

and configuration that you're going to

04:22

have to go through to use it so some

04:24

folks shy away from ec2 in favor of

04:26

something a little bit more hands-off

04:28

and for those of you that are interested

04:29

in serverless that's where our next

04:31

point comes in and that's aws lambda so

04:34

aws lambda is a serverless compute

04:38

infrastructure option and what that

04:40

basically means is that you define what

04:42

are called functions and these functions

04:44

are just snippets of code they can be

04:46

small or large pieces of code and aws

04:49

does not require you to have to worry

04:51

about any of the infrastructure as you

04:53

had to do with ec2 you just basically

04:55

write and deploy your functions and aws

04:58

worries about deploying your application

05:00

onto a container and then scaling that

05:03

application whenever the number of

05:04

requests to your lambda function

05:06

increase

05:07

so this is a really really attractive

05:09

model because

05:10

lambda is paper invocation so it's

05:13

really cost effective for application

05:15

workloads that have bursty traffic

05:17

patterns

05:18

or for applications that have traffic

05:20

during the day and then it kind of

05:22

recedes down to nothing in the evening

05:24

so lambda is a really really popular

05:26

service it's getting more and more

05:28

popular by the day and it's definitely

05:29

one to consider if you want to learn

05:31

more about aws lambda you should check

05:33

out my brand new udemy course in the top

05:36

right of this video now if you're not

05:38

into kind of deploying your

05:40

infrastructure onto machines directly

05:42

and you're not into using this

05:43

serverless model there is a third option

05:45

for those you that are more kind of

05:47

docker folks or docker fans

05:50

and that third option is amazon ecs so

05:53

ecs stands for elastic container service

05:56

and there's also a variation of ecs

05:58

called eks or elastic kubernetes service

06:02

and essentially ecs is just a service to

06:05

help you manage your containers helps

06:07

you set up servers with integrated load

06:09

balancing and auto scaling helps you

06:12

facilitate your deployments to those

06:14

containers so it's kind of like

06:15

something in the middle between ec2 and

06:17

lambda and if you're interested in

06:19

learning more about like these three

06:20

services and different compute options

06:22

that are available to you i have a video

06:23

where i compare these three things i'll

06:25

put that in the comments or the

06:27

description section below

06:28

so like i was kind of saying uh the

06:30

application layer doesn't really change

06:32

in terms of the compute options you have

06:34

the same kind of fundamental building

06:36

blocks that are available to you

06:38

regardless of if it's your web backend

06:40

layer or your kind of business logic

06:42

heavy heavy application layer here now

06:45

another service that helps kind of

06:47

facilitate the creation of your rest

06:49

apis and hosting those apis is one

06:52

that's called api gateway over here an

06:54

api gateway is a super super powerful

06:56

service because it offers additional

06:59

functionality on top of just kind of

07:01

using a load balancer to distribute your

07:03

traffic to different nodes here and the

07:05

types of uh kind of features that api

07:07

gateway offers are things like api

07:09

throttling or authorization on an api

07:12

say for example you you're building kind

07:14

of a private api that you only want to

07:16

be accessible from users in a user pool

07:19

which we're going to talk about next

07:21

year

07:22

you can set up your api gateway to

07:23

validate that you know a token is valid

07:25

uh by integrating with the user pool

07:27

service or you can define your own also

07:30

offers other features such as model

07:33

validation so you can define what types

07:34

of models your api supports and then

07:37

have that validation performed before

07:39

the request actually gets to your

07:41

backend layer here

07:43

so you can do like a bunch of different

07:44

combinations here you can do your dns

07:46

pointing to your api gateway which

07:48

points to your load balancer which

07:50

points to your infrastructure layer and

07:51

that is if you want to take advantage of

07:53

some of those features that i just

07:55

described so speaking of user pools we

07:57

just kind of touched on that we might as

07:58

well reveal the service here and that's

08:01

one called amazon cognito so amazon

08:04

cognito is kind of a very very powerful

08:07

but underrated service and what it

08:09

allows you to do is to create user pools

08:13

and these user pools kind of similar to

08:14

what you'd have on any kind of login and

08:16

registration website you know you create

08:18

a user they provide a login a username a

08:21

phone number a recovery option all that

08:22

kind of stuff and so with cognito you

08:25

can

08:26

have users sign up for accounts directly

08:28

within cognito using the hosted ui

08:31

or you can integrate with other

08:33

third-party identity providers such as

08:36

google facebook amazon so anytime you've

08:39

seen like login with amazon or log in

08:41

with google or facebook or any other

08:43

identity provider

08:45

that could be integrated with cognito as

08:47

well so very very useful for

08:49

applications that require user

08:51

registration and if you combine that

08:53

with api gateway you can do things like

08:55

ensuring that a user is part of a

08:58

certain user group before the request

09:00

can be validated and that flows through

09:02

to your backend layer here so that's a

09:03

little bit about cognito let's kind of

09:05

finish this three-tier architecture

09:07

discussion and talk a little bit about

09:09

the database layers now or the storage

09:11

slash persistence layer

09:14

so a lot of applications have caching

09:16

enabled on them just to increase

09:18

performance on some

09:19

lookups of items that are quite common

09:22

or maybe you just want increased

09:23

performance so what's the aws service

09:25

that allows that to happen so that

09:27

service is called elastic cache and

09:30

elastic cache kind of comes in two

09:32

different flavors you can either go with

09:34

the flavor that

09:36

is memcache based or you can choose

09:39

redis now redis is probably the most

09:41

popular one people when people think

09:43

about caches i think redis comes to mind

09:45

almost immediately but regardless of

09:47

what you choose when using elastic cache

09:50

it is a caching service so it's going to

09:52

be based on key value lookups and you

09:55

are going to have to worry about hosting

09:57

that infrastructure essentially you kind

10:00

of own a cluster of nodes and

10:03

these are memory optimized nodes where

10:05

they have plenty of memory to facilitate

10:06

your application's needs um but you

10:09

still have to worry about the

10:10

maintenance of that cluster you know and

10:11

node replacement hardware failures

10:13

things like that it's a relatively

10:15

hands-off service but there are some

10:16

nuances that you may need to know about

10:18

in terms of maintenance and alarming and

10:19

all that now in terms of what should we

10:22

store our database in should we store it

10:24

in a relational database or a nosql

10:26

database so there's a bunch of different

10:28

options here that you can choose from so

10:30

the one that aws likes to push a lot is

10:33

a relatively popular one called amazon

10:35

aurora now amazon aurora is a in-house

10:38

built amazon database that is compatible

10:41

with both my sequel and postgres i

10:44

believe postgres is still in preview

10:46

mode now so it's a fully managed rds

10:48

database that kind of makes your life

10:50

easier in terms of worrying about things

10:53

like administration monitoring

10:55

auto scaling storage auto scaling and

10:58

compute auto scaling also offers

11:00

something called the data api that you

11:02

can use to

11:04

call your rds database using a rest api

11:07

as opposed to a traditional kind of

11:08

database connection so there's a lot of

11:11

features that are coming with aurora and

11:13

you may really want to consider it if

11:14

you're thinking about using a relational

11:16

database now a relatively similar

11:18

service to that is amazon rds or

11:21

relational database service and where

11:23

these two are different is that rds is a

11:25

database service that allows you to

11:27

select which database configuration that

11:29

you would like so you get to pick from

11:31

common database uh platforms such as

11:34

mysql postgres microsoft sql server

11:37

oracle cassandra and probably a couple

11:39

other ones that i'm missing as well so

11:41

rds is probably what i would think most

11:43

people are familiar with but a lot of

11:44

customers are deciding to go with aurora

11:46

just because it's more of a hands-off

11:49

option and just makes life easier one

11:51

other thing about aurora is that it does

11:53

offer a serverless compute model as well

11:56

where you don't need to worry about

11:57

provisioning any type of hardware behind

11:59

the scenes as you would with an rds

12:02

database you can use the serverless

12:04

model and it's kind of like an auto

12:05

scaling type of database thing similar

12:08

to what lambda did for ec2 aurora server

12:11

list is doing for rds so it's it

12:14

provisions your infrastructure whenever

12:15

the request rate requires it so if you

12:17

have a bursty workload it'll add more

12:19

nodes and scale you up so that your

12:21

database can handle more volume

12:23

so that's a little bit for rds here

12:26

let's talk about nosql database options

12:28

now now definitely the most popular

12:30

nosql database that you're going to hear

12:32

about a lot is dynamodb now dynamodb is

12:36

a nosql database that is optimized for

12:39

key value lookups it is a fully managed

12:42

database service so that means that you

12:44

don't worry about anything with regards

12:46

to infrastructure or hardware all you

12:48

really worry about is your scaling

12:50

configuration and dynamodb handles the

12:53

auto scaling for you behind the scenes

12:55

and so it's a really really powerful

12:58

nosql database and it's kind of used as

13:00

the building block for much of the

13:02

internet really if you take a look at

13:04

one of the aws white papers where

13:06

dynamodb unfortunately went down one day

13:09

it brought down with it a large part of

13:11

the internet including common

13:13

services that we all love like netflix

13:15

and other websites as well

13:17

so dynamodb is a super super powerful

13:19

and popular nosql database on aws and

13:23

really this is this service is kind of

13:25

at the heart of many other aws services

13:28

as well like behind the scenes

13:30

so yeah that's it for dynamodb now if

13:33

you're a mongodb type of person and

13:35

you're coming to aws you don't want to

13:36

learn dynamodb

13:38

there is a service option for you so aws

13:42

also offers what's called documentdb

13:44

like you see here and documentdb similar

13:46

to dynamo is a fully managed service but

13:49

this time it is compatible with mongodb

13:52

so that you can you know use mongodb as

13:54

you normally would in a fully managed

13:56

way so that should satisfy any mongodb