getting started with aws lambda and the serverless cloud
TRANSCRIPT
Getting started with AWS Lambda & the Serverless Cloud
Ian Massingham Chief Evangelist (EMEA), AWS [email protected] @IanMmmm
AWS Compute offerings
AWSLambdaServerlesscomputeplatformforstatelesscodeexecution
inresponsetoevents
AmazonECSContainermanagement
serviceforrunningDockeronamanagedclusterofEC2
AmazonEC2Virtualserversin
theCloud
Continuousscaling
Noserverstomanage
Neverpayforidle–nocoldservers
Benefits of AWS Lambda
Pay-per request
• Buy compute time in 100 ms increments
• Low request charge • No hourly, daily, or
monthly minimums • No per-device fees
Never pay for idle!
Free Tier
1 million requests and 400,000 GBs of compute every month, for every customer
Using AWS Lambda
Bring your own code • Node.js, Java, Python, C# • Bring your own libraries
(even native ones)
Simple resource model
• Select power rating from 128 MB to 1.5 GB
• CPU & network allocated proportionately
• Metrics provide actual usage
Flexible authorization • Securely grant access to
resources, including VPCs
• Fine-grained control over who can call your functions
Flexible use • Call or send events • Integrated with other AWS
services • Build whole serverless
ecosystems
Using AWS LambdaProgramming model • AWS SDK built in • Lambda is the front end • Use processes, threads, /
tmp, sockets normally
Stateless • Persist data using Amazon
S3, ElastiCache, RDS or non-relational databases
• No affinity to infrastructure (can’t “log in to the box”)
Authoring functions • Author directly using the
console WYSIWYG editor • Package code as a .zip and
upload to Lambda or S3 • Plugins for Eclipse and
Visual Studio • Command line tools
Monitoring and logging • Built-in metrics for requests,
errors, latency, and throttles • Built-in logs in Amazon
CloudWatch Logs
Key usage scenarios
Data Triggers Customise behaviour on data updates in S3,
SNS & more
Control systems Customize responses and
response workflows to state changes within AWS
Serverless backends Execute server side
backend logic in a cross platform fashion
Big data Realtime processing
of streaming data updates using Kinesis
Lambda + S3
Dynamic data ingestion using S3+Lambda
Amazon S3 AWS Lambda processes the
object
Amazon S3
New object uploaded
NoSQL DB
Stores
processed
object to S3
Updates file metadata to NoSQL DB
Demo:
Amazon S3 + Lambda + MongoDB
Customers running S3+Lambda pipelines
AWS Lambda
Indexing tables or
notifications
Apply custom logic to process content being uploaded into Amazon S3 • Watermarking / thumbnail creation • Transcoding • Indexing and de-duplication • Aggregation and filtering • Pre processing • Content validation • WAF updates
Amazon S3 Bucket Events
Processed files
Lambda + Kinesis
Real time stream processing with Kinesis+Lambda
Amazon Kinesis
AWS Lambda processes the
stream
Amazon CloudWatch Logs
Amazon SNS
Compress
data & dump
to CW-Logs
Filter data and alert SNS on match
New data available
Customers using real-time processing pipelines
AWS Lambda
Aggregate statistics
Real-time analytics
Kinesis Stream
Apply custom logic to process data being uploaded through Kinesis stream • Client activity tracking • Metrics generation • Data cleansing • Log filtering • Indexing and searching • Log routing • Live alarms and notifications
Lambda Powered APIs
An API Call Flow
Internet
Mobile Apps
Websites
Services
AWS Lambda functions
AWS
API Gateway Cache
Endpoints on Amazon EC2
Any other publicly accessible endpointAmazon CloudWatch
Monitoring
Amazon CloudFront Amazon
API Gateway
Lambda + Cognito & Mobile Apps
Building Mobile Backends with Lambda
• Lambda as the backend logic for mobile applications.
• Easy Personalization – … for devices – … for end users
Other Use Cases
Scheduled Event (CRON)
• Dev/QA Environments: Stop running instances at 19:00 h and Start it again at 8:00 between Monday to Friday.
• Log cleanup • Batching up statistics • Alarm clock • Infrastructure automation • Backup scheduler
Backup and Disaster Recovery
• Cross-region replication to multiple regions. • Off-site backups. • Validation of those backups is difficult to scale. • Set rules on Lambda that defines what needs to be backup and
checks • Validates and raise alarms in case of failure.
Thank You. Got questions?
Ian Massingham Chief Evangelist (EMEA), AWS [email protected] @IanMmmm
Appendix
Reference architecture: IoT back end using AWS Lambda and Amazon Kinesis
https://s3.amazonaws.com/awslambda-reference-architectures/iot-backend/lambda-refarch-iotbackend.pdfhttps://github.com/awslabs/lambda-refarch-iotbackend
Reference architecture: Mobile back end using AWS Lambda and Amazon API Gateway
https://s3.amazonaws.com/awslambda-reference-architectures/mobile-backend/lambda-refarch-mobilebackend.pdfhttps://github.com/awslabs/lambda-refarch-mobilebackend
Reference architecture: Web applications with AWS Lambda
https://s3.amazonaws.com/awslambda-reference-architectures/web-app/lambda-refarch-webapp.pdfhttps://github.com/awslabs/lambda-refarch-webapp
Reference architecture: Real-time file processing using AWS Lambda
https://s3.amazonaws.com/awslambda-reference-architectures/file-processing/lambda-refarch-fileprocessing.pdfhttps://github.com/awslabs/lambda-refarch-fileprocessing
Reference architecture: Real-time stream processing using AWS Lambda and Amazon Kinesis
https://s3.amazonaws.com/awslambda-reference-architectures/stream-processing/lambda-refarch-streamprocessing.pdfhttps://github.com/awslabs/lambda-refarch-streamprocessing