Serverless
info
These were the topics I created flashcards for (Remnote) and would revise them using spaced repetition. The formatting is an export from Remnote.
- serverless doesn't mean servers don't exist, it means you don't \{\{provision\}\}or\{\{manage\}\}servers.
- AWS Lambda
- lambda is a virtual \{\{function\}\}.
- lambdas provide two main functions... ↓
- transformations
- job scheduling (cron)
 
- lambdas are great because they... (hint: runtime, provision, grow)― ↓
- short execution
- on-demand
- scale automatically
 
- lambda pricing is per \{\{request\}\}plus\{\{compute or execution\}\}time.
- compute time is \{\{GB\}\}per second of\{\{execution\}\}time.
- a good rule of thumb is if the process takes longer than \{\{15\}\}mins, don't use lambda.- why? because lambda's maximum execution time is \{\{15\}\}mins.
 
- why? because lambda's maximum execution time is 
- programming languages supported? (hint: N P J C G C R c)― ↓
- node.js
- python
- java
- C# (.NET)
- Golang
- C# (powershell)
- Ruby
- Custom Runtime API
 
- Lambda Container Image
- use, only if "\{\{lambda runtime\}\}API" is enabled or installed.
- otherwise, use \{\{ECS\}\}or\{\{Fargate\}\}.
 
- use, only if "
- Limits
- Lambda limits apply per \{\{Region\}\}.
- Execution limit
- RAM limit?―128MB to 10GB
- Execution time limit?―900s or 15 mins
- Environment Variable size?―4KB
- Disk (i.e. functions container)?―512MB to 10GB
 
- Deployment limit
- lambda deployment size (zip format)?―50MB
- uncompressed size limit?―250MB
- what directory can be used to load other things at start up?―/tmp directory
- Environment variable size?―4KB
 
 
- Lambda limits apply per 
- Customisation at the Edge
- customisation i.e. transformation
- what are the TWO options for customisation at the Edge? ↓
- Lambda @ Edge
- CloudFront Functions
 
- Which option can handle more requests?―Cloudfront Functions
- Why?―Only deals with viewer request and response.
- roughly how many requests can CloudFront Functions handle?―1M+
- what kind of execution time per request?―less than 1ms
 
- Use CloudFront Functions when you want....
- high performance
- high scale
- only dealing with the viewer request and response.
 
- what kind of latency per request can you get from CloudFront Functions?―less than 1ms
- what kind of latency per request can you get from Lambda at Edge?―5-10ms
- When is it appropriate to use L@E? (hint: 3rd ext body)― ↓
- if you have 3rd party code dependencies
- if you need to access external services
- if you need to access a filesystem or HTTP body of a request
 
 
- Lambda & the Network
- by default Lambda is deployed \{\{outside\}\}of a (your) VPC.
- to deploy a Lambda inside your VPC you need to define the following: ↓
- VPC ID
- Subnets
- Security Groups
 
- what does Lambda create to access your subnets?―ENI (Elastic Network Interface)
- RDS Proxy
- what is the risk of having Lambda functions access your DB directly?―open too many connections during peak load
- what can you use to improve scalability and preserve DB connections?―use RDS Proxy between Lambda and DB
- what are the main benefits of RDS Proxy? ↓
- reduce load (calls) on the DB
- manage client connections (pooling and sharing)
- enable request AuthN (IAM + secrets manager)
 
- RDS Proxy is sometimes publicly accessible. True of False?―False. RDS Proxy is never publicly accessible.
- Will your Lambda be able to access RDS Proxy from outside your VPC?―No. Lambda must be deployed inside your VPC.
 
 
- by default Lambda is deployed 
 
- lambda is a virtual 
- Amazon DynamoDB
- Fully \{\{managed\}\}, highly\{\{available\}\}with\{\{replication\}\}across multiple\{\{AZs\}\}.
- DynamoDB is a NoSQL or Relational Database?―NoSQL.
- can handle 100's? 1000's or millions of requests per second?―Millions.
- always \{\{available\}\}, no\{\{maintenance\}\}or patching.
- uses \{\{Standard\}\}and\{\{Infrequent\}\}-Access Table Class.
- with DynamoDB you get \{\{single\}\}digit\{\{ms\}\}performance.
- Tables
- DynamoDB is made up of \{\{Tables\}\}.
- Each table is made up of the following:― ↓
- Primary Key
- Items (aka rows)
 
- An item is also known as a \{\{row\}\}.
- An item has \{\{attributes\}\}and you can have\{\{infinite\}\}number of items.
- Max size of an item?―400KB
- Supported Data Types? (hint: S D S)― ↓
- Scalar (string, number, bool, null)
- Document (list, map)
- Set (string set, number set, binary set)
 
- If you need to \{\{rapidly\}\}evolve schemas, use\{\{DynamoDB\}\}.
 
- DynamoDB is made up of 
- Read+Write Capacity Modes
- what are the two modes available for DynamoDB read & write capacity? ↓
- Provisioned Mode (default)
- On-Demand Mode
 
- if your capacity needs are unpredictable and you need to scale suddenly, use \{\{On-demand\}\}mode.
- if your capacity needs are predictable use \{\{Provisioned\}\}mode.
- what does RCU and WCU stand for?―Read Capacity Units, Write Capacity Units
- Can you scale RCU without scaling WCU?―Yes. RCU and WCU are separate so can scale independently.
 
- what are the two modes available for DynamoDB read & write capacity? ↓
- Advanced Features
- DAX (DynamoDB Accelerator)
- DAX is an in-memory cache cluster for DynamoDB
- DAX has \{\{ms\}\}latency for cached data.
- DAX is good when you have \{\{read\}\}congestion issues.
- DAX default cache TTL?―5 minutes.
- DAX vs Elasticache
- What should you use when you need individual objects caching or query and scan cache needs?―DAX
- What should you use when you're dealing with aggregate result sets?―Elasticache.
 
 
- Stream Processing
- DDB has TWO options for processing data streams ↓
- DynamoDB Streams
- data retention?―24 hours.
- \{\{limited\}\}number of consumers.
 
- Kinesis Data Streams
- data retention?―365 days.
- \{\{high\}\}number of consumers.
 
 
- DynamoDB Streams
 
- DDB has TWO options for processing data streams ↓
- Global Table
- basically a DDB table that spans multiple \{\{Regions\}\}.
- uses \{\{active\}\}-\{\{active\}\}replication.
- applications can \{\{read\}\}and\{\{write\}\}from\{\{any\}\}Region.
- what must you enable before you can use Global Tables?―DDB Streams.
 
- basically a DDB table that spans multiple 
- TTL
- like any TTL, set \{\{expiry\}\}, data gets\{\{deleted\}\}.
- use cases? ↓
- keep items current
- regulatory needs
- session management
 
 
- like any TTL, set 
- Backups for DR
- DDB has two backup options available, they are: ↓
- Continuous using PITR
- On-Demand
- long-term retention, when does it delete?―explicitly requested.
 
 
- Both backup options will create \{\{new\}\}tables during the\{\{recovery\}\}process.
 
- DDB has two backup options available, they are: ↓
 
- DAX (DynamoDB Accelerator)
- Amazon S3 Integration
- Export to S3 requires \{\{PITR\}\}(continuous backup option).
- Export formats? ↓
- DDB JSON
- ION
 
- Import to S3, acceptable formats? ↓
- CSV
- DDB JSON
- ION
 
- Import errors logged in \{\{CloudWatch\}\}.
- will an import from S3 create a new table in DDB?―Yes.
 
- Export to S3 requires 
 
- Fully 
- AWS API Gateway
- AWS Lambda + API Gateway is a completely \{\{serverless\}\}solution.
- API Gateway can manage these API operations (hint: env, sec, keys, rates, x & v, save)― ↓
- Environment Routing (dev, test, prod)
- Security (AuthN, AuthZ)
- create API Keys
- Request throttling
- Transform & Validate Requests
- Cache API responses.
 
- API Gateway can provide the following API features (hint: v, generate..., import...)― ↓
- API Versioning
- Generate SDK and API specs
- import via Swagger or Open API to quickly define APIs
 
- Integrations
- API Gateway integrates with the following THREE destinations (hint: L HT.. expose...)― ↓
- Lambda Function
- HTTP Endpoint
- AWS Service (expose any AWS API via GW)
- A good way to "wrap" a backend API in the API GW features like AuthN and AuthZ, throttling etc.
- Also a good way to make a backend API publicly available safely.
 
 
 
- API Gateway integrates with the following THREE destinations (hint: L HT.. expose...)― ↓
- Deployment Types
- what are the three TYPES of API GW deployments? (hint: E R P)― ↓
- Edge-optimised (default) i.e. routed through \{\{CloudFront\}\}\{\{Edge\}\}locations.
- Regional for clients same Region.
- Private limited to your VPC using VPC endpoints (ENI)
 
- Edge-optimised (default) i.e. routed through 
- no matter which type of Deployment is used, API Gateway still lives in \{\{ONE\}\}Region.
 
- what are the three TYPES of API GW deployments? (hint: E R P)― ↓
- Security
- API Gateway can do AuthN via? (hint: I C C)― ↓
- IAM Roles
- Cognito
- Custom Authenticators (write your own)
 
- What does API Gateway use to implement HTTPS on custom domain names?―AWS Certificate Manager (ACM)
 
- API Gateway can do AuthN via? (hint: I C C)― ↓
 
- AWS Lambda + API Gateway is a completely 
- AWS Step Functions
- give you "\{\{serverless\}\}visual\{\{workflows\}\}to\{\{orchestrate\}\}your Lambda functions"
- if you need a "human approval" step in an automation process, use \{\{step functions\}\}.
 
- give you "