AWS Solutions Architect : Associate Level
Source: https://docs.aws.amazon.com/
Application and Serverless
Services in AWS
Learning Objectives
By the end of the lesson, you will be able to:
Explain the application services offered by AWS
Enable event notification for AWS resources using SNS
Demonstrate how SQS is used to control workflow among AWS
services
Explain the difference between SNS and SQS
Create a serverless webpage
Introduction to AWS Application Services
What Are AWS Application Services?
AWS Application services allow users to seamlessly integrate their on-premise and cloud
applications while building modern and distributed architectures for their applications.
AWS Application services
AWS Application Services
The following are the Application services offered by AWS:
AWS Application service Category Description
Queue service that sends, stores, and receives
Amazon Simple Queue Service (SQS) Messaging
messages between application components
Notification service that manages the delivery of
Amazon Simple Notification Service
Messaging messages to subscribed or published application
(SNS)
endpoint or clients
Simple Workflow service coordinates workflow
Amazon Simple Workflow Service Workflows
and tasks among various AWS services and
(SWF)
distributed application components
API Gateway service that creates, publishes,
Amazon API Gateway API Management maintains, and secures API at any scale for web
applications
Amazon Simple Queue Service (SQS)
What Is Amazon Simple Queue Service?
Amazon SQS is a fully managed queue service that receives, stores, and sends message
strings containing job descriptions across application components and AWS services. SQS
follows first-in-first-out (FIFO) standard for sending out messages.
User Message strings SQS Message strings
Workflow processes
Amazon SQS Features
The following are the key features of SQS:
01 Provides FIFO queues in all the regions
02 Delivers messages at least once
03 Decouples your infrastructure
Amazon SQS Workflow
SQS allows you to decouple the components of a cloud application, which is an important
concept of the AWS best practices in building architectures on the cloud.
A B
The component producing SQS The component receiving
and saving the data and processing the data
Amazon SQS Messages
SQS messages can contain up to 256 KB of text and are billed in chunks of 64 KB of data.
SQS SQS 256 KB of
messages text
Configuring Amazon SQS Using the AWS Console
Duration: 10 min.
Problem Statement:
Configure Amazon SQS using the AWS console
Assisted Practice: Guidelines to Configure Amazon SQS Using the AWS Console
Steps to perform:
1. Go to the AWS console
2. Open the Amazon SQS dashboard
3. Create a queue
4. Add a message in the queue using the Actions option
5. View and delete the message from the queue using the Actions option
Amazon Simple Notification Service (SNS)
What Is Amazon Simple Notification Service?
Amazon SNS is a fully managed publication-subscription based messaging service used to send
push notifications, emails, and SMS messages.
SNS Emails to users
Amazon SNS Features
01 Instantaneous push-based delivery
02 Multiple transfer protocol
03 Pay-as-you-go model
04 Simple web-based interface
05 Message durability
Amazon SNS Topic
An SNS topic is a communication channel that allows you to send messages and subscribe to notifications.
Lambda
SQS
Access Point
Publisher HTTP/S
SNS Topic
Email
SMS
Subscriber
Setting Up Amazon SNS Notifications
Duration: 10 min.
Problem Statement:
Set up Amazon SNS notifications with email endpoint
Assisted Practice: Guidelines to Set Up Amazon SNS Notifications
Steps to perform:
1. Go to the Amazon console
2. Create a topic
3. Create a subscription
4. Publish a message to the previously created topic
5. Verify the SNS email
Amazon SNS vs. Amazon SQS
Amazon SNS vs. Amazon SQS
The following is a comparison between Amazon SNS and Amazon SQS based on various
differential parameters:
Parameters Amazon SNS Amazon SQS
Entity type Topic is the key entity used in SNS Queue is the key entity used in SQS
Message consumption SNS uses push model as it pushes SQS uses pull model as consumers
model messages to consumers pull messages from SQS
All consumers are expected to be
All consumers are expected to process
Consumer type identical as the messages are
the messages in different ways
configured in the same way
Messages are lost if the consumer is Messages persist even if the
Persistence
unavailable consumer is unavailable
Push Model
In the push model, notifications are sent by Amazon SNS. They can be sent to various operating
systems running on mobile devices such as iOS, Android, Windows, and more, in the form of
emails and SMS messages.
SNS
Operating Alarms and Lambda and
systems notifications HTTP endpoints
Pull Model
In the pull model, the consumers poll or pull messages from Amazon SQS.
Message 1
Consumer
Message 2
Consumer
SQS Message Queue
Message 3
Consumer
Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service
Amazon SWF helps developers build, run, and scale background jobs that have parallel or
sequential steps. It is a fully-managed state tracker and task coordinator in the cloud.
Online orders
Customers
SWF
Example of Amazon SWF
Amazon.com uses SWF to manage their online orders. The following diagram depicts the
workflow that is used by Amazon SWF for order management:
Order placed Order received
(Start) (End)
Process Record
Verify Order Ship Order
Payment Completion
Order Verifiers Credit Card Warehouse Database
Processors Employees Recorders
SWF Actors
While performing operations, Amazon SWF interacts with various programmatic elements
called actors in SWF terminology. The following are the different types of SWF actors:
Workflow starters: Applications
1
that initiate or start a workflow
Deciders: Elements that control
the flow of activities in a 2
workflow
Workers: Elements that carry out
3
the activities in a workflow
Amazon SWF vs. Amazon SQS
The following is a comparison between Amazon SWF and Amazon SQS based on various
differential parameters:
Parameters SWF SQS
Message Retention
Up to 1 year Up to 14 days
Period
API Task-oriented Message-oriented
Task can be assigned only once Message can be delivered more
Delivery
and can never be duplicated than once
In-built tracking of all the tasks and Requires the creation of
Tracking
events is available application-level tracking system
Amazon API Gateway
What Is an API?
API stands for Application Programming Interface. It allows communication between two
applications and is created for apps to access data, logic, and more.
Application Programming Interface
Amazon API Gateway
Amazon API Gateway is a fully-managed, scalable API management service that allows you to
create, publish, maintain, monitor, and secure your API’s.
Amazon API Gateway
Features of API Gateway
01 Stores responses for most common HTTP requests
02 Scales automatically
03 Cheaper than other gateways
04 Throttles requests to prevent attacks
05 Enables CORS to serve HTTP requests from other domains
Setting Up API Methods to Access an Amazon S3 Bucket
Duration: 10 min.
Problem Statement:
Set up and test an API method using the API Gateway.
Assisted Practice: Guidelines to Set Up API Methods to Access an Amazon S3 Bucket
Steps to perform:
1. Go to the Amazon console
2. Navigate to the IAM dashboard
3. Set up IAM roles for the API
4. Go to the API Gateway dashboard
5. Create and expose a PUT method
6. Test the PUT method
Amazon Elastic Transcoder
Amazon Elastic Transcoder
Amazon Elastic Transcoder is a media transcoding service in the cloud. It enables users to convert
their media files stored in Amazon S3 into the format required by the consumer playback devices.
Media files Amazon Elastic Playback devices
Transcoder
Example of Elastic Transcoder
3GP
Media Company
AAC
AVI
MP4 Video S3 Bucket Users
Amazon Elastic
MPEG-2
Transcoder
FLV
S3 Bucket
Components of Amazon Elastic Transcoder
Jobs:
01 This component transcodes the media files. Each job can convert a
media file into up to 30 formats.
Pipelines:
02 This component is the queue that manages multiple jobs. If
the user creates a new job and the pipeline already contains
a job, then the Elastic Transcoder queues the newest job.
Presets:
03 This component is the template that contains most of the
settings used by the jobs to convert a media file from one
format to the other.
Notifications:
04 This component lets the users configure Elastic Transcoder with
Amazon SNS to keep track of the job status.
Amazon Kinesis
Amazon Kinesis
Amazon Kinesis is a fully managed and scalable service that allows real-time collection, processing,
and analysis of streaming data.
Amazon Kinesis
Amazon Kinesis Capabilities
Kinesis Data Streams: It allows you to build custom
applications to process data in real-time.
Kinesis Videos Streams : It allows you to securely stream
videos from connected devices to AWS for processing.
Kinesis Data Firehose: It allows you to capture, transform,
and load data into AWS data stores.
Kinesis Data Analytics: It runs queries against the data in
real-time.
Amazon Kinesis Data Streams
The following diagram shows the working of Amazon Kinesis Data Streams:
Step 1 Step 2 Step 3 Step 4
Source: aws.amazon.com
Amazon Kinesis Video Streams
The following diagram shows the working of Amazon Kinesis Video Streams:
Step 1 Step 2 Step 3
Source: aws.amazon.com
Amazon Kinesis Data Firehose
The following diagram shows the working of Amazon Kinesis Data Firehose:
Step 1 Step 2 Step 3 Step 4
Source: aws.amazon.com
Amazon Kinesis Data Analytics
The following diagram shows the working of Amazon Kinesis Data Analytics:
Step 1 Step 2 Step 3
Source: aws.amazon.com
Application Services Best Practices
SQS Best Practices
The following are the AWS recommended Application Services best practices:
• SQS helps the users to architect stateless applications and use
SQS
asynchronous integration.
• It creates a message queue so that resources can process a task and
SWF
send the information back to SQS.
• Asynchronous integration involves the use of an intermediate storage
SNS layer like SQS.
SWF Best Practices
The following are the AWS recommended Application Services best practices:
• SWF is used while coordinating and tracking tasks that have parallel
SQS
or sequential steps and involve more than just AWS resources.
• It is used to coordinate tasks without a given framework.
SWF
SNS
SNS Best Practices
The following are the AWS recommended Application Services best practices:
• SNS is used to keep you informed about any events occurring with
SQS
your AWS resources.
• It pushes notifications to Lambda to create distributed processes that
SWF
do not rely directly on each other.
SNS
Amazon WorkSpaces
Amazon WorkSpaces
Amazon WorkSpaces is a fully managed and secure Desktop-as-a-Service solution that runs on
AWS. It enables users to provision virtual and cloud-based Microsoft Windows or Amazon Linux
desktops known as WorkSpaces.
Amazon WorkSpaces
Amazon WorkSpaces
More about Amazon WorkSpaces:
01 Amazon WorkSpaces can run on Windows 7 and Windows 10.
02 Users can bring their own licenses or purchase them from AWS
Marketplace.
03 Users can use the same tools to manage WorkSpaces and on-premises
desktops.
04 Amazon WorkSpaces throttles requests to prevent attacks.
05 AWS offers monthly and hourly pricing for Amazon WorkSpaces.
Introduction to AWS Serverless Services
What Are AWS Serverless Services?
AWS serverless services help users to build and run applications without having to worry about
provisioning, maintaining, and managing the servers.
AWS serverless services
Why Use AWS Serverless Services
AWS serverless services eliminate the following infrastructure management tasks:
Server or cluster provisioning
Operating system maintenance
Software and hardware patching
Compute capacity provisioning
Benefits of AWS Serverless Services
The following are the benefits of AWS serverless services:
01 02 03 04
No Server Flexible High
Pay for Value
Management Scalability Availability
Users need not provide or maintain servers. There is no software or runtime that needs to be
installed, maintained, or administered from the user's end.
Benefits of AWS Serverless Services
The following are the benefits of AWS serverless services:
01 02 03 04
No Server Flexible High
Pay for Value
Management Scalability Availability
AWS serverless services allow the applications to be scaled up or down automatically.
Benefits of AWS Serverless Services
The following are the benefits of AWS serverless services:
01 02 03 04
No Server Flexible High
Pay for Value
Management Scalability Availability
Users are charged for the consistent throughput or execution duration of the services rather
than by server units.
Benefits of AWS Serverless Services
The following are the benefits of AWS serverless services:
01 02 03 04
No Server Flexible High
Pay for Value
Management Scalability Availability
AWS serverless services provide built-in availability and fault tolerance to the applications
running on them.
AWS Lambda
What Is AWS Lambda?
AWS Lambda is a serverless compute service that allows users to run code without provisioning or
managing servers. It executes the code only when needed and scales automatically, from a few
requests per day to thousands per second.
AWS Lambda
Terminologies in AWS Lambda
The following are the terminologies used in context with AWS Lambda:
01 02 03
Function Qualifier Runtime
A function is a resource that contains a code to process events and a runtime to pass
requests between Lambda and the function code.
Terminologies in AWS Lambda
The following are the terminologies used in context with AWS Lambda:
01 02 03
Function Qualifier Runtime
Qualifier is used to specify a version or an alias for a Lambda function.
Terminologies in AWS Lambda
The following are the terminologies used in context with AWS Lambda:
01 02 03
Function Qualifier Runtime
Runtimes allow function code written in different languages to run in the same base
execution environment. Users are required to choose a runtime that matches the
programming language of the code.
Terminologies in AWS Lambda
The following are the terminologies used in context with AWS Lambda:
04 05 06
Event Concurrency Trigger
An event is a JSON formatted document that contains data for a function to process. It is
converted to an object and passed to the function code.
Terminologies in AWS Lambda
The following are the terminologies used in context with AWS Lambda:
04 05 06
Event Concurrency Trigger
Concurrency is the number of requests that a function is serving at any given time. Users can
configure their functions to limit their concurrency.
Terminologies in AWS Lambda
The following are the terminologies used in context with AWS Lambda:
04 05 06
Event Concurrency Trigger
A trigger is a resource that invokes a Lambda function. It can be an AWS service, an
application, or an event.
Setting UP an API with Lambda Proxy Integration
Duration: 15 min.
Problem Statement:
Set up an API with Lambda Proxy Integration
Assisted Practice: Guidelines to Set Up an API with Lambda Proxy Integration
Steps to perform:
1. Go to your Amazon Console
2. Open the Lambda dashboard
3. Create a Lambda function
4. Fill in the details about the function
5. Skip to the review page and click on the Save function button
AWS Serverless Application Model
AWS Serverless Application Model
The AWS Serverless Application Model (AWS SAM) is an open-source framework that can be used to
build serverless applications on AWS.
AWS SAM consists of the following components:
01 AWS SAM template specification
02 AWS SAM command line interface
Components of AWS SAM
01 AWS SAM template specification
AWS SAM template specification is used to define the serverless application. It provides
simple syntax to describe the functions, APIs, permissions, configurations, and events
that make up a serverless application.
Components of AWS SAM
02 AWS SAM command line interface
AWS SAM CLI is used to build the serverless applications that are defined by AWS SAM
template specifications. It provides commands that users can use to verify the AWS
SAM templates, invoke Lambda functions, start local debugging, package and deploy
serverless applications on AWS cloud, and so on.
Benefits of Using AWS SAM
Single-deployment configuration
1
AWS SAM makes it is easy to organize all the related components and resources.
Built-in best practices
2
AWS SAM can be used to define and deploy infrastructure as config.
Local debugging and testing
3
AWS SAM CLI lets users locally build, test, and debug serverless applications that
are defined by AWS SAM templates.
Amazon Elastic Container Service
What Is a Container?
A container is a standardized unit of software development, containing everything that your
software application needs to run such as code, runtime, system tools, system libraries, and more.
More about containers:
01 Containers are created from a read-only template called an image.
02 Images are text files that specify all the components of a container.
Amazon Elastic Container Service
Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management
service that makes it easy to run, stop, and manage containers on a cluster. It enables users to
launch and stop container-based applications with simple API calls.
Amazon Elastic Container
Service
Amazon Elastic Container Service
More about Amazon Elastic Container Service:
01 Amazon ECS enables users to run containers on a cluster of Amazon EC2.
02 It scales, monitors, and manages the cluster of Amazon EC2 instances.
03 It can be used to manage the instances through both an API and the
Amazon Management Console.
04 It can be used to create a consistent deployment and build experience,
and manage Extract-Transform-Load (ETL) workloads.
Terminologies in Amazon ECS
The following are the terminologies used in context with Amazon ECS:
01 02 03 04
Container instance Task definition Task Service
Container instance is an EC2 instance that is part of an ECS cluster and is pre-installed with
Docker.
Terminologies in Amazon ECS
The following are the terminologies used in context with Amazon ECS :
01 02 03 04
Container instance Task definition Task Service
A task definition is a text file in JSON format that describes one or more containers that make
up an application.
Terminologies in Amazon ECS
The following are the terminologies used in context with Amazon ECS:
01 02 03 04
Container instance Task definition Task Service
A task is the instantiation of a task definition on a container instance within the cluster.
Terminologies in Amazon ECS
The following are the terminologies used in context with Amazon ECS:
01 02 03 04
Container instance Task definition Task Service
A service defines the maximum and minimum tasks from one task definition at any given
time.
Working of Amazon ECS
The following diagram shows the working of Amazon ECS:
ECS Cluster
{
"family": "webserver",
Container Instance "containerDefinitions": [
{
"name": "web",
"image": "nginx",
Service "memory": "100",
"cpu": "99"
},
],
Task Task "requiresCompatibilities": [
"FARGATE"
],
"networkMode": "awsvpc",
"memory": "512",
"cpu": "256",
}
Key Takeaways
Amazon SQS is a fast, reliable, scalable, and fully managed message
queuing service. It can be used to control workflow processes.
Amazon SNS is a fully managed publication-subscription based
messaging service used to send push notifications, emails, and
SMS messages.
Amazon SWF is a fully-managed task coordinator and tracker that
allows you to build, run, and scale background jobs that have
parallel or sequential steps.
Amazon Kinesis is a fully managed and scalable service that
allows real-time collection, processing, and analysis of
streaming data.
Key Takeaways
Amazon WorkSpaces is a fully managed and secure Desktop-as-a-
Service (DaaS) solution which runs on AWS.
AWS Lambda is a serverless compute service that allows the users
to run codes without provisioning or managing servers.
Amazon ECS is a highly scalable, high-performance container
management service that allows users to run distributed
application on a managed cluster of Amazon EC2 instances.
Build a Serverless Website in the AWS Cloud
Duration: 60 min.
Problem Statement:
You have been asked to build a serverless website in the AWS cloud.
Perform the following:
• Create a Lambda Blueprint
• Configure and create the Lambda function
• Invoke the Lambda function
• Verify the Lambda function results
• Monitor the metrics
• Delete the Lambda function