Description
Who should attend
This course is intended for:
- Developers who have some familiarity with serverless architecture and experience with development in the AWS Cloud.
Prerequisites
We recommend that attendees of this course have:
- Familiarity with the basics of AWS Cloud architecture
- An understanding of developing applications on AWS equivalent to completing the Developing on AWS (AWSD) classroom training
- Knowledge equivalent to completing the following serverless digital trainings: AWS Lambda Foundations and Amazon API Gateway for Serverless Applications
Course Objectives
In this course, you will learn to:
- Apply event-driven best practices to a serverless application design using appropriate AWS services
- Identify the challenges and trade-offs of transitioning to serverless development, and make recommendations that suit your development organization and environment
- Build serverless applications using patterns that connect AWS managed services together, and account for service characteristics, including service quotas, available integrations, invocation model, error handling, and event source payload
- Compare and contrast available options for writing infrastructure as code, including AWS CloudFormation, AWS Amplify, AWS Serverless Application Model (AWS SAM), and AWS Cloud Development Kit (AWS CDK)
- And much more
Outline: Developing Serverless Solutions on AWS (AWSDEVSS)
Day 1
Module 0: Introduction
- Introduction to the application you will build
- Access to course resources (Student Guide, Lab Guide, and Online Course Supplement)
Module 1: Thinking Serverless
- Best practices for building modern serverless applications
- Event-driven design
- AWS services that support event-driven serverless applications
Module 2: API-Driven Development and Synchronous Event Sources
- Characteristics of standard request/response API-based web applications
- How Amazon API Gateway fits into serverless applications
- Try-it-out exercise: Set up an HTTP API endpoint integrated with a Lambda function
- High-level comparison of API types (REST/HTTP, WebSocket, GraphQL)
Module 3: Introduction to Authentication, Authorization, and Access Control
- Authentication vs. Authorization
- Options for authenticating to APIs using API Gateway
- Amazon Cognito in serverless applications
- Amazon Cognito user pools vs. federated identities
Module 4: Serverless Deployment Frameworks
- Overview of imperative vs. declarative programming for infrastructure as code
- Comparison of CloudFormation, AWS CDK, Amplify, and AWS SAM frameworks
- Features of AWS SAM and the AWS SAM CLI for local emulation and testing
Module 5: Using Amazon EventBridge and Amazon SNS to Decouple Components
- Development considerations when using asynchronous event sources
- Features and use cases of Amazon EventBridge
- Try-it-out exercise: Build a custom EventBridge bus and rule
- Comparison of use cases for Amazon Simple Notification Service (Amazon SNS) vs. EventBridge
- Try-it-out exercise: Configure an Amazon SNS topic with filtering
Module 6: Event-Driven Development Using Queues and Streams
- Development considerations when using polling event sources to trigger Lambda functions
- Distinctions between queues and streams as event sources for Lambda
- Selecting appropriate configurations when using Amazon Simple Queue Service (Amazon SQS) or Amazon Kinesis Data Streams as an event source for Lambda
- Try-it-out exercise: Configure an Amazon SQS queue with a dead-letter queue as a Lambda event source
Hands-On Labs
- Hands-On Lab 1: Deploying a Simple Serverless Application
- Hands-On Lab 2: Message Fan-Out with Amazon EventBridge
Day 2
Module 7: Writing Good Lambda Functions
- How the Lambda lifecycle influences your function code
- Best practices for your Lambda functions
- Configuring a function
- Function code, versions and aliases
- Try-it-out exercise: Configure and test a Lambda function
- Lambda error handling
- Handling partial failures with queues and streams
Module 8: Step Functions for Orchestration
- AWS Step Functions in serverless architectures
- Try-it-out exercise: Step Functions states
- The callback pattern
- Standard vs. Express Workflows
- Step Functions direct integrations
- Try-it-out exercise: Troubleshooting a Standard Step Functions workflow
Module 9: Observability and Monitoring
- The three pillars of observability
- Amazon CloudWatch Logs and Logs Insights
- Writing effective log files
- Try-it-out exercise: Interpreting logs
- Using AWS X-Ray for observability
- Try-it-out exercise: Enable X-Ray and interpret X-Ray traces
- CloudWatch metrics and embedded metrics format
- Try-it-out exercise: Metrics and alarms
- Try-it-out exercise: ServiceLens
Hands-On Labs
- Hands-On Lab 3: Workflow Orchestration Using AWS Step Functions
- Hands-On Lab 4: Observability and Monitoring
Day 3
Module 10: Serverless Application Security
- Security best practices for serverless applications
- Applying security at all layers
- API Gateway and application security
- Lambda and application security
- Protecting data in your serverless data stores
- Auditing and traceability
Module 11: Handling Scale in Serverless Applications
- Scaling considerations for serverless applications
- Using API Gateway to manage scale
- Lambda concurrency scaling
- How different event sources scale with Lambda
Module 12: Automating the Deployment Pipeline
- The importance of CI/CD in serverless applications
- Tools in a serverless pipeline
- AWS SAM features for serverless deployments
- Best practices for automation
- Course wrap-up
Hands-On Labs
- Hands-On Lab 5: Securing Serverless Applications
- Hands-On Lab 6: Serverless CI/CD on AWS