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

AWS Cloud Technical Essentials (edX) EdX
AWS

AWS Cloud Technical Essentials (edX)

Kick off your cloud career by learning the fundamentals of AWS products, services, and solutions and basic concepts of database, storage, networking, security and cloud computing. Are you in a technical role and want to learn the fundamentals of AWS? Do you aspire to have a job or career as a cloud developer, architect, or in an operations role? If so, this course is an ideal way to start, as it requires no prior knowledge of cloud computing or AWS products and services.

Self Paced
Self-Paced
SQL for Data Science (edX) EdX
IBM

SQL for Data Science (edX)

Learn how to use and apply the powerful language of SQL to better communicate and extract data from databases - a must for anyone working in the data science field. Much of the world's data lives in databases. SQL (or Structured Query Language) is a powerful programming language that is used for communicating with and extracting various data types from databases.

Self Paced
Self-Paced
Probability and Statistics in Data Science using Python (edX) EdX
University of California, San Diego,UC San DiegoX

Probability and Statistics in Data Science using Python (edX)

Using Python, learn statistical and probabilistic approaches to understand and gain insights from data. The job of a data scientist is to glean knowledge from complex and noisy datasets. Reasoning about uncertainty is inherent in the analysis of noisy data. Probability and Statistics provide the mathematical foundation for such reasoning.

Self Paced
Self-Paced
Full Stack Application Development Project (edX) EdX
IBM

Full Stack Application Development Project (edX)

For this project you will apply your knowledge of front end and back end development gained from previous courses and build and deploy a full stack real-world web application on the cloud. Your project will showcase your understanding of the user experience and user interface design process, and your skills and technologies with Django, Python, Node.JS and Containers.

Self Paced
Self-Paced
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
Computing in Python II: Control Structures (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python II: Control Structures (edX)

Learn about control structures, one of the most powerful parts of programming. This course covers conditionals, loops, functions, and error handling, specifically in Python but with broader applicability to other languages as well. Building on your prior knowledge of variables and operators, this course gets into the meat of programming. Organized into five chapters, this course starts by covering the fundamentals of what control structures are and what they do, then moves on to four common control structures in Python.

Self Paced
Self-Paced
Python for Data Science (edX) EdX
University of California, San Diego,UC San DiegoX

Python for Data Science (edX)

Learn to use powerful, open-source, Python tools, including Pandas, Git and Matplotlib, to manipulate, analyze, and visualize complex datasets. In the information age, data is all around us. Within this data are answers to compelling questions across many societal domains (politics, business, science, etc.). But if you had access to a large dataset, would you be able to find the answers you seek?

Self Paced
Self-Paced
CS50's Introduction to Programming with Python (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Programming with Python (edX)

An introduction to programming using Python, a popular language for general-purpose programming, data science, web programming, and more. An introduction to programming using a language called Python. Learn how to read and write code as well as how to test and "debug" it. Designed for students with and without prior programming experience who'd like to learn Python specifically.

Self Paced
Self-Paced
Python Basics for Data Science (edX) EdX
IBM

Python Basics for Data Science (edX)

This Python course provides a beginner-friendly introduction to Python for Data Science. Practice through lab exercises, and you'll be ready to create your first Python scripts on your own! Kickstart your learning of Python for data science, as well as programming in general with this introduction to Python course. This beginner-friendly Python course will quickly take you from zero to programming in Python in a matter of hours and give you a taste of how to start working with data in Python.

Self Paced
Self-Paced
Introducción al desarrollo de aplicaciones web (edX) EdX
Universidad Autonoma de Madrid

Introducción al desarrollo de aplicaciones web (edX)

Aprende a desarrollar una aplicación web desde cero con diferentes tecnologías como HTML, CSS, Python, JSON, JavaScript y Ajax. Hoy en día utilizamos la web para todo tipo de tareas: buscar un vuelo, comprar entradas, ver el pronóstico meteorológico, leer noticias, etc. Todo esto es posible gracias a las aplicaciones web creadas para darnos estos servicios.

Self Paced
Self-Paced