EdX

Building Modern Python Applications on AWS (edX)

Offered by AWS,
Building Modern Python Applications on AWS (edX)

In this course, we will be covering how to build a modern, greenfield serverless backend on AWS. 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.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

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.

What you'll learn

  • How to build a modern, greenfield serverless backend on AWS
  • How to build an API driven application using Amazon API Gateway for serverless API hosting
  • How to build an API driven application using AWS Lambda for serverless compute
  • How to build an API driven application using Amazon Cognito for serverless authentication

Prerequisites:
We expect that you have basic knowledge of AWS already. Some examples of concepts you should be familiar with are: you should know the basics of the AWS Global infrastructure, like what regions and availability zones are. You also should know the at a high-level AWS Identity and Access Management, or IAM, and how it is used to control access to AWS resources. You should also understand what an Amazon EC2 instance is, what Amazon S3 is, what a VPC is, as well as other basic AWS terminology.

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

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Data Science and Machine Learning Capstone Project (edX) EdX
IBM

Data Science and Machine Learning Capstone Project (edX)

Create a project that you can use to showcase your Data Science skills to prospective employers. Apply various data science and machine learning techniques to analyze and visualize a data set involving a real life business scenario and build a predictive model. Now that you've taken several courses on data science and machine learning, it’s time to put your learning to work on a data problem involving a real life scenario. Employers really care about how well you can apply your knowledge and skills to solve real world problems, and the work you do in this capstone project will make you stand out in the job market.

Self Paced
Self-Paced
Migrating to the AWS Cloud (edX) EdX
AWS

Migrating to the AWS Cloud (edX)

Learn how to migrate your on-premises applications and workloads to the AWS Cloud. This four week course focuses on migrating workloads to AWS. We will focus on analyzing your current environment, planning your migration, and discussing the actual migration steps. We will also survey AWS tools and services that will accelerate your migration to AWS.

Self Paced
Self-Paced
Advanced Algorithmics and Graph Theory with Python (edX) EdX
Institut Mines-Telecom,IMTx

Advanced Algorithmics and Graph Theory with Python (edX)

Strengthen your skills in algorithmics and graph theory, and gain experience in programming in Python along the way. Algorithmics and programming are fundamental skills for engineering students, data scientists and analysts, computer hobbyists or developers. Learning how to program algorithms can be tedious if you aren’t given an opportunity to immediately practice what you learn. In this course, you won't just focus on theory or study a simple catalog of methods, procedures, and concepts. Instead, you’ll be given a challenge wherein you'll be asked to beat an algorithm we’ve written for you by coming up with your own clever solution.

Sep 4th 2023
5-12 Weeks
Text Analytics 1: Introduction to Natural Language Processing (edX) EdX
University of Canterbury,UCx

Text Analytics 1: Introduction to Natural Language Processing (edX)

Learn the core techniques of text analytics alongside the cognitive science that makes it all possible. Introduction to Text Analytics with Python is part one of the Text Analytics with Python professional certificate. This first course introduces the core techniques of natural language processing (NLP). But we introduce these techniques from data science alongside the cognitive science that makes them possible.

Self Paced
Self-Paced
Computing for Data Analysis (edX) EdX
Georgia Institute of Technology,GTx

Computing for Data Analysis (edX)

A hands-on introduction to basic programming principles and practice relevant to modern data analysis, data mining, and machine learning. The modern data analysis pipeline involves collection, preprocessing, storage, analysis, and interactive visualization of data. In the course, you’ll see how computing and mathematics come together.

Aug 19th 2024
13-24 Weeks
Python Data Structures (edX) EdX
University of Michigan,MichiganX

Python Data Structures (edX)

The second course in Python for Everybody explores variables that contain collections of data like string, lists, dictionaries, and tuples. Learning how to store and represent and manipulate data collections while a program is running is an important part of learning how to program.

Self Paced
Self-Paced
Computing in Python IV: Objects & Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python IV: Objects & Algorithms (edX)

Learn about recursion, search and sort algorithms, and object-oriented programming in Python. Complete your introductory knowledge of computer science with this final course on objects and algorithms. Now that you've learned about complex control structures and data structures, learn to develop programs that more intuitively leverage your natural understanding of problems through object-oriented programming. Then, learn to analyze the complexity and efficiency of these programs through algorithms. In addition, certify your broader knowledge of Introduction to Computing with a comprehensive exam.

Self Paced
Self-Paced
Using Python for Research (edX) EdX
HarvardX,Harvard University

Using Python for Research (edX)

Take your introductory knowledge of Python programming to the next level and learn how to use Python 3 for your research. This course bridges the gap between introductory and advanced courses in Python. While there are many excellent introductory Python courses available, most typically do not go deep enough for you to apply your Python skills to research projects.

Self Paced
Self-Paced
HTML5 Apps and Games (edX) EdX
World Wide Web Consortium - W3C,W3Cx

HTML5 Apps and Games (edX)

Today, developers are increasingly moving from native to HTML5-based apps. Increase your ability to design and deliver innovative services on the Web! Want to learn advanced HTML5 tips and techniques? This is the course for you! Find out more about the powerful Web features that will help you create great content and apps.

Self Paced
Self-Paced