Serverless on AWS
Author: Tran Tuan Quy
Date: Aug 17, 2019
Updated: Feb 26, 2023
About Me
-
Full Stack JavaScript Developer
-
I have worked for Pyramid Consulting, NAU Studio
-
I have worked for Fram^
-
Now I am at Shopback
Contact Me
-
Twitter: #tuanquynet
-
Github: https://github.com/tuanquynet/
-
Gmail: tuanquynet
Infrastructure as a Service
(IaaS)



Platform as a Service
(PaaS)



Azure App Service


Container as a Services
(CaaS)



Azure Kubernetes Service
Function as a Service
(FaaS)



Software as a Service (SaaS)
-
gdrive, onedrive
-
github.com, gitlab.com, bitbucket.org
-
salesforce.com, bitrix24.com, zoho.com


Which Architecture?


Monolithic Architecture
Microservice Architecture

Serverless Architecture

Serverless App Architecture

serverless !== no server
Serverless Computing
Serverless computing (or serverless for short), is an execution model where the cloud provider (AWS, Azure, or Google Cloud) is responsible for executing a piece of code by dynamically allocating the resources. And only charging for the amount of resources used to run the code.
Serverless on AWS

Cold Start and Hot Start

Enhance Cold Start Using Provisioned Concurrency
Scale By Request
Lambda Instance
Event
Lambda Instance
Lambda Instance
Lambda Instance
Event
Event
Event
Charge by Execution Time
Lambda Instance
Event
Lambda Instance
Lambda Instance
Lambda Instance
Event
Event
Event
$
$
$
$
How to trigger lambda execution

How to log/monitor lambda?

CloudWatch Logs
CloudWatch Metric
CloudWatch Alarm
Reuse exist lambda using AWS Serverless Application Repository
Framework
Runtime on AWS

Configuring Memory & Timeout

Configuring Concurrency


Configuring Env Variables

Configuring Network & Security
Configuring Execution Role

Configuring Inline Policy

Pros and Cons
Pros:
-
Pay for execution time
-
Reduce cost of DevOps
-
Faster Release
-
Easy to scale
Cons
-
Reduce overall control
-
Testing locally is tricky
-
Interactive debug is difficult
-
Vendor lock-in
-
Security risk
Best Practices
-
Don't use to UI deployment
-
Handle timeout by ourselves -
Close DB connection whenever you no longer use
-
Apply VPC to protect lambda from outside access
-
Use inline policy with only mandatory permissions.
Questions
Demo
Bear in mind
Use the right tool for the right job
Reference Document
Questions
Thank You!
serverless-on-aws
By Quy Tran
serverless-on-aws
- 1,200