Building Modern Python Applications on AWS
Offered By: Amazon Web Services via edX
Course Description
Overview
In modern cloud native application development, it’s often times the goal to build out serverless architectures that are scalable, are highly available, and are fully managed. This mean, less operational overhead for you and your business, and more focusing on the applications and business specific projects that differentiate you in your marketplace. In this course, we will be covering how to build a modern, greenfield serverless backend on AWS.
Building brand new applications on AWS is a different task than lifting and shifting existing applications into AWS. When you have an existing application that you need to move to AWS, you might first look to using Amazon EC2 as your virtual machines, or maybe you might look into using docker containers and container hosting services like Amazon Elastic Container Service or Amazon Elastic Kubernetes Service. Those are all great application hosting options, but in most cases, they still require you to have some kind of pulse on the underlying infrastructure hosting your application.
In this class, we will explore how to build an API driven application using Amazon API Gateway for serverless API hosting, AWS Lambda for serverless compute, and Amazon Cognito for serverless authentication. We will follow an API driven development process and first mock up what the API will look like. We will cover all the ins and outs of the service Amazon API Gateway, and as you’ll learn- it does a lot more than just hosting an API.
Then we will add authentication to the API using Amazon Cognito. You’ll learn about how the authorization flow works with cognito, and how to build it into your APIs. From there, we will add a Lambda backend that will be triggered by API Gateway. The lambda functions will be using the AWS SDKs to perform various data processing tasks. You’ll learn about the different configurations that exist for Lambda, and we will show you how to create and manage lambda functions. Some of the features of our API will require multiple lambda functions to execute in a specific order, like a workflow, and we will use AWS Step Functions to create a serverless workflow. Finally, we will talk about how to optimize your APIs at every layer using AWS features.
Syllabus
Week 1
- Architecting for the Cloud
- What we are building
- Introduction to AWS Cloud9
- AWS Command Line Interface (CLI) and Application Programming Interfaces (APIs)
- AWS APIs
- AWS CLI
- Section Reading
- AWS SDK Exploration (Python)
- AWS Credentials in Cloud9
- Introduction to the Serverless Application Model (SAM)
- AWS Toolkit for (Cloud9/IntelliJ/PyCharm)
- Section Reading
- Quiz
- Lab 1: Create a static website in Amazon S3
Week 2
- Introduction to API Driven Design
- API driven development
- What is Amazon API Gateway
- Amazon API Gateway terminology
- Section Readings
- Models and Mapping
- Creating an API with Mock integration
- Using Mappings
- Using Models
- Section Readings
- Publish API
- Using Postman to create requests
- Section Readings
- Lab 2: API
- API Authentication
- Introduction to Amazon API Gateway authentication
- Amazon API Gateway access controls
- Amazon API Gateway authentication and authorization mechanisms
- Amazon Cognito
- Introduction to Amazon Cognito
- Using Amazon Cognito to sign in and call Amazon API Gateway
- Section Readings
- Quiz
- Lab 3 Cognito
Week 3
- Serverless Computing and AWS Lambda
- Introduction to AWS Lambda
- AWS Lambda Execution
- AWS Lambda permisions
- Section Readings
- Triggers, Push, Pull model
- AWS Lambda execution context and reuse
- AWS Lambda Compliance
- Asynchronous vs Synchronous Responses
- Section Readings
- Versions and Aliases
- Creating a lambda function using the AWS CLI
- Creating and Debugging a AWS Lambda Function using the AWS Toolkit
- Section Readings
- Lab 4: AWS Lambda
- Quiz
Week 4
- Orchestration
- Creating a serverless workflow
- Introduction to AWS Step Functions
- Step Functions API exploration
- Step Function State types
- Section Readings
- Step Function Service Integrations
- Amazon API Gateway and Step function Integration
- Callback patterns
- Step Function Activities
- Standard vs Express Step functions
- Section Readings
- Other Orchestration and messaging Services
- Event Driven Architectures
- SQS, SNS, EventBridge
- Section Reading
- Lab 5: Process
- Quiz
Week 5
- Observability
- Introduction to Observability
- Introduction to Amazon X-Ray
- X-Ray, API Gateway, and Lambda
- Using the AWS X-Ray SDK with Python
- Section Readings
- API Gateway and Lambda Logs
- Amazon CloudWatch Logs integration with API Gateway, Step Functions, and Lambda
- Configuring CloudWatch Logs in API Gateway, Step Functions, and Lambda
- Section Readings
- Quiz
Week 6
- Optimization
- Introduction to edge-optimized endpoints
- API Gateway Response caching
- Lambda at the Edge
- Section Readings
- Lambda Performance
- Lambda Layers
- Lambda best practices
- Section Readings
- API Gateway optimization
- API Gateway Proxy for AWS APIs
- API Gateway HTTP APIs
- Section Readings
- Lab 6: Optimizing
- Quiz
- Course Wrap-up
- Final Readings
- Final Assessment
Taught by
Morgan Willis, Rick Hurst, Seph Robinson and Jonathan Dion
Tags
Related Courses
Amazon API Gateway for Serverless ApplicationsAmazon Web Services via AWS Skill Builder Amazon API Gateway for Serverless Applications (French)
Amazon Web Services via AWS Skill Builder Amazon API Gateway for Serverless Applications (German)
Amazon Web Services via AWS Skill Builder Amazon API Gateway for Serverless Applications (Indonesian)
Amazon Web Services via AWS Skill Builder Amazon API Gateway for Serverless Applications (Japanese)
Amazon Web Services via AWS Skill Builder