Projects on AWS

Build a Modern Web Application

Deploy a web application, connect to a database, and analyze user behavior

Introduction: Build a Modern Web Application in Python

Follow step-by-step instructions to build your first modern application.

Overview

In this tutorial, you’ll build your first modern application on AWS. Modern applications isolate business logic, optimize reuse and iteration, and remove overhead everywhere possible. Modern apps are built using services that enable you to focus on writing code while automating infrastructure maintenance tasks.

You will build a sample website called Mythical Mysfits that enables visitors to adopt a fantasy creature (mysfit) as pet. You can see a working sample of this website at: www.mythicalmysfits.com

This version of the tutorial matches the Python language version of the tutorial. If you would like to try the tutorial in another language, please visit the main branch and select your preferred programming language from there (scroll to the bottom of the page).

What You Will Learn

This tutorial will walk you through the steps to create a well-architected sample web application discussed above. You will learn to host this web application on a front-end web server and connect it to a backend database. You’ll also learn to set up user authentication and will be able to collect and analyze user behavior.

The site provides basic functionality such as ability to “like” your favorite mysfit and reserve your chosen mysfit for adoption. It also allows you to gather insights about user behavior for future analysis.

Application Architecture

The application architecture diagrams provide a structural representation of the services that make up Mythical Mysfits and how these services interact with each other. Don’t worry if you aren’t completely familiar with the services and features mentioned below. As we work through the tutorial, we’ll discuss the services in detail and point to resources that will help you get up to speed with them.

overall application architecture

Modules

The application architecture diagrams provide a structural representation of the services that make up Mythical Mysfits and how these services interact with each other. Don’t worry if you aren’t completely familiar with the services and features mentioned below. As we work through the tutorial, we’ll discuss the services in detail and point to resources that will help you get up to speed with them.

You will implement Mythical Mysfits using these modules:

  1. Create Static Website Build a static website, using Amazon Simple Storage Service (S3) that serves static content (images, static text, etc.) for your website.
  2. Build Dynamic Website Host your application logic on a web server, using an API backend microservice deployed as a container through AWS Fargate.
  3. Store Mysfit Data Externalize all of the mysfit data and persist it with a managed NoSQL database provided by Amazon DynamoDB.
  4. Add User Registration Enable users to registration, authentication, and authorization so that Mythical Mysfits visitors can like and adopt myfits, enabled through AWS API Gateway and its integration with Amazon Cognito.
  5. Capture User Clicks Capture user behavior with a clickstream analysis microservice that will record and analyze clicks on the website using AWS Lambda and Amazon Kinesis Firehose. 

You will be creating and deploying changes to this application completely programmatically. You will use the AWS Command Line Interface to execute commands that create the required infrastructure components, which includes a fully managed CI/CD stack utilizing AWS CodeCommit, CodeBuild, and CodePipeline. Finally, you will complete the development tasks required all within your own browser using the cloud-based IDE, AWS Cloud9.

 AWS Experience

Beginner

 Time to Complete

2 - 3 hours

 Cost to Complete

Many of the services used are included in the AWS Free Tier. For those that are not, the sample application will cost, in total, less than $1/day.

 Tutorial Prereqs

To complete this learning path, you will need:
✓ An AWS Account and Administrator-level access to it**

 

*This estimate assumes you follow the recommended configurations throughout the tutorial and terminate all resources within 24 hours.

**Accounts that have been created within the last 24 hours might not yet have access to the resources required for this learning.

 Try on Github

Build a static website: Mythical Mysfits