Build a Modern Web App
Build a Modern Web Application
Deploy a web application, connect to a database, and analyze user behavior
INTRODUCTION
CREATE STATIC WEBSITE
BUILD DYNAMIC WEBSITE
STORE MYSFIT DATA
REGISTER USERS
CAPTURE USER CLICKS
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.
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:
- Create Static Website Build a static website, using Amazon Simple Storage Service (S3) that serves static content (images, static text, etc.) for your website.
- Build Dynamic Website Host your application logic on a web server, using an API backend microservice deployed as a container through AWS Fargate.
- Store Mysfit Data Externalize all of the mysfit data and persist it with a managed NoSQL database provided by Amazon DynamoDB.
- 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.
- 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.