Getting Started with AWS Lambda and the Serverless Cloud

1,420 views

Published on

With AWS Lambda, you can easily build scalable microservices for mobile, web, and IoT applications or respond to events from other AWS services without managing infrastructure. In this session, you’ll see demonstrations and hear more about newly launched features. We’ll show you how to use Lambda to build web, mobile, or IoT backends and voice-enabled apps, and we'll show you how to extend both AWS and third party services by triggering Lambda functions. We’ll also provide productivity and performance tips for getting the most out of your Lambda functions and show how cloud native architectures use Lambda to eliminate “cold servers” and excess capacity without sacrificing scalability or responsiveness.

Published in: Technology

Getting Started with AWS Lambda and the Serverless Cloud

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dr. Tim Wagner General Manager, AWS Lambda and Amazon API Gateway AWS New York Summit, August 11, 2016 Getting Started with AWS Lambda, Amazon API Gateway, and the Serverless Cloud
  2. 2. Democratized Scale The cloud is a supercomputer. Serverless lets us program it.
  3. 3. What is serverless computing? • VMs • Machine as the unit of scale • Abstracts the hardware • Containers • Application as the unit of scale • Abstracts the OS • Serverless • Functions as the unit of scale • Abstracts the language runtime Amazon ECS Amazon EC2 AWS Lambda
  4. 4. How do I choose? • VMs • “I want to configure machines, storage, networking, and my OS” • Containers • “I want to run servers, configure applications, and control scaling” • Serverless • “Run my code when it’s needed” ECS EC2 Lambda
  5. 5. Microservices AWS Lambda + Amazon API Gateway is the easiest way to create microservices • Event handlers one function per event type • Serverless backends one function per API / path • Data processing one function per data type
  6. 6. Agenda Overview of AWS Lambda and Amazon API Gateway New and recent launches Serverless use cases and best practices
  7. 7. AWS Lambda: Serverless computing Run code without servers. Pay only for the compute time you consume. Triggered by events or called from APIs: • PUT to an Amazon S3 bucket • Updates to Amazon DynamoDB table • Call to an Amazon API Gateway endpoint • Mobile app back-end call • And many more… Makes it easy to: • Perform real-time data processing • Build scalable back-end services • Glue and choreograph systems
  8. 8. Continuous scaling No servers to manage Never pay for idle – no cold servers (only happy accountants) Benefits of AWS Lambda
  9. 9. AWS Lambda Programming Model Bring your own code • Node.js, Java, Python • Bring your own libraries (even native ones) Simple resource model • Select power rating from 128 MB to 1.5 GB • CPU and network allocated proportionately • Reports actual usage Programming model • AWS SDK built in (Python and Node.js) • Lambda is the “webserver” • Use processes, threads, /tmp, sockets normally Stateless • Persist data using Amazon DynamoDB, S3, or Amazon ElastiCache • No affinity to infrastructure (can’t “log in to the box”)
  10. 10. Using AWS Lambda 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 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
  11. 11. AWS Lambda Pricing • 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, every customer
  12. 12. Imagine your business with no cold servers. No underutilized hardware. No containers waiting for work. …and no one being paid to worry about problems that no longer exist. • Buy compute time in 100 ms increments • Low request charge • No hourly, daily, or monthly minimums • No per-device fees Never pay for idle!
  13. 13. Amazon API Gateway: Serverless APIs Internet Mobile apps Websites Partner Services AWS Lambda functions API Gateway response cache Endpoints on Amazon EC2 Any publicly accessible endpoint Amazon CloudWatch Amazon CloudFront API Gateway
  14. 14. Benefits of Amazon API Gateway Create a unified API front end for multiple microservices DDoS protection and throttling for back-end systems Authenticate and authorize requests
  15. 15. API Authorization: 3 Options
  16. 16. Auth option #1: SigV4 / IAM Internet Mobile apps Partner Services AWS Lambda functions Endpoints on Amazon EC2 Amazon CloudFront API Gateway Amazon Cognito AWS Identity & Access Management (IAM) IAM user / role acquisition SigV4 credentials
  17. 17. Auth option #2: Custom Lambda authorizer Internet Mobile apps Websites Partner Services AWS Lambda functions Policy cache Endpoints on Amazon EC2 Any publicly accessible endpoint Amazon CloudFront API Gateway Lambda custom Auth function OAuth provider 403
  18. 18. Auth option #3: Amazon Cognito User Pools Internet Mobile apps Partner Services AWS Lambda functions Endpoints on Amazon EC2 Amazon CloudFront API Gateway Amazon Cognito Websites User login Built-in auth check OIDC token OIDC token Any publicly accessible endpoint
  19. 19. More new and recent launches
  20. 20. Recent region launches: Singapore, Sydney Available regions (7)
  21. 21. Launch: Amazon API Gateway usage plans New API Management features: • Define groups of consumers (partners, apps) • Set throttles and quotas for each group • Track each group’s usage Helps you: • Manage and monetize your APIs • Apply business policies across your consumers
  22. 22. Throttle Usage plans: Throttle specific consumers Internet Mobile apps Websites Partner Services AWS Lambda functions API Gateway response cache Endpoints on Amazon EC2 Any publicly accessible endpoint Amazon CloudWatch Amazon CloudFront API Gateway
  23. 23. Usage Plans: Throttling • Prevents one customer from consuming all your backend system’s capacity • Let’s you decide how to allocate capacity among your API consumers. Sample plan: • Professional plan users: 10 TPS • Premium plan users: 100 TPS • Enterprise plan users: 500 TPS
  24. 24. Set daily quota Usage plans: Enforce per-consumer quotas Internet Mobile apps Websites Partner Services AWS Lambda functions API Gateway response cache Endpoints on Amazon EC2 Any publicly accessible endpoint Amazon CloudWatch Amazon CloudFront API Gateway
  25. 25. Usage Plans: Quotas • Allows you to define and enforce usage limits by API consumer (or groups of consumers) • Sample plan: • Professional plan: up to 100 calls / day • Premium plan: up to 1000 calls / day • Enterprise plan: no limit on calls
  26. 26. Track usage Usage plans: Track API usage Internet Mobile apps Websites Partner Services AWS Lambda functions API Gateway response cache Endpoints on Amazon EC2 Any publicly accessible endpoint Amazon CloudWatch Amazon CloudFront API Gateway
  27. 27. Usage Plans: Usage reporting • Allows you to export usage reports by consumer (per API key) • Facilitates billing, analytics, and monitoring
  28. 28. API Management Demo (and a bonus demo)
  29. 29. Use cases
  30. 30. Use cases Serverless app ecosystems Data processing Back ends
  31. 31. Use case: Serverless data processing Example: Amazon S3 bucket triggers Amazon S3 bucket events Original object Compressed object 1 2 3 AWS Lambda
  32. 32. Use case: Serverless web apps 1. Amazon S3 for serving static content 2. AWS Lambda for dynamic content 3. Amazon API Gateway for https access 4. Amazon DynamoDB for NoSQL data storage Dynamic content in AWS Lambda Data stored in Amazon DynamoDB API Gateway Static content in Amazon S3 Browser
  33. 33. Serverless Python Web Framework Easy way to create serverless web apps in Python Flask-like, easy command routing CLI deployment and setup for both APIs and functions Intelligent policy generator
  34. 34. Use case: Serverless mobile and IoT apps 1. Pick one: a. Mobile apps: AWS Mobile SDK + Amazon Cognito (authorization) b. IoT devices: AWS IoT 2. AWS Lambda’s “Mobile Backend” blueprint 3. Amazon DynamoDB for data storage AWS Lambda Amazon DynamoDB
  35. 35. Use case: Serverless app ecosystems Alexa, tell Slack to send, “I’m giving the demo now.” Message retrieval through scheduled polling Kevin says, “Break a leg!” Message upload (via Slack API) Team (channel users) Slack
  36. 36. Growing Serverless Ecosystem Logging and Monitoring Applications and Deployment Build and CI/CD
  37. 37. Tips and best practices
  38. 38. AWS Lambda VPC: Best practices VPC is optional – don’t turn in on unless you need it. Functions configured for VPC access lose internet access… • Unless you have managed NAT or a NAT instance in the VPC The ENIs used by Lambda’s VPC feature count against your quota. Ensure you have enough to match your peak concurrency levels (we’ll consolidate where we can). DO NOT delete or rename these ENIs! Ensure your subnets have enough IPs for those ENIs. Specify at least one subnet in each Availability Zone Otherwise, Lambda will obey, but can’t be as fault-tolerant.
  39. 39. Function Scheduling: Tips How can I keep a function warm (no cold starts)? Schedule [multiple copies of] it. How can I poll a queue (like Amazon SQS)? Schedule a function to read the queue. How can I get more timers? Have one scheduled function async invoke other functions. How can I get granularity finer than 1 minute? Run a background timer in your scheduled function.
  40. 40. Stage Variables in API Gateway: Basics • Stage variables act like environment variables • Use stage variables to store configuration values • Stage variables are available in the $context object • Values are accessible from most fields in API Gateway • Lambda function ARN • HTTP endpoint • Custom authorizer function name • Parameter mappings
  41. 41. Stage variables: Best practices Using Stage Variables in API Gateway together with Lambda function aliases: MyLambdaFunction 1 2 3 = prod 4 5 6 = beta 7 8 = dev MyAPI Stage variable = lambdaAlias Prod lambdaAlias = prod Beta lambdaAlias = beta Dev lambdaAlias = dev
  42. 42. Managing Microservices
  43. 43. Serverless app model A single function is easy to deploy and manage:
  44. 44. Serverless app model But what happens when you have an entire app made up of many functions?
  45. 45. Serverless app model And then many different apps?
  46. 46. Serverless app model Project Flourish provides an application model for serverless apps. • Organize related functions • Retain ability to deploy and manage them individually
  47. 47. Project Flourish Demo
  48. 48. AWS Serverless Chatbot Competition • Create a bot for Slack that runs on AWS Lambda and Amazon API Gateway • Sponsored by AWS and Slack • Win tickets to AWS re:Invent and more • Winners receive mentions in the Serverless Keynote during re:Invent • Submissions due by September 29 • Get started: awschatbot.devpost.com
  49. 49. Join the serverless revolution today!
  50. 50. Go to the AWS Lambda console, create a function, and run it. (The first million invokes are on us!)
  51. 51. Go to the Amazon API Gateway console and create a PetStore API.
  52. 52. Hook up your API to your Lambda function and set some usage plans on it.
  53. 53. Remember to complete your evaluations in the Guidebook mobile app.
  54. 54. AWS Lambda and Amazon API Gateway links: aws.amazon.com/blogs/compute aws.amazon.com/lambda AWS Lambda forum me: @timallenwagner

×