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.
In this tutorial, you’ll build your first modern application on AWS. Modern applications are resilient, scalable collections of independent services that abstract away the underlying infrastructure. Modern application development leverages agile development practices, immutable deployments, and programmable infrastructure to continuously release new features to the business and end users.
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 tutorial is also hosted on GitHub, so you will be able to submit an issue if you have recommendations. You’ll also be able to initialize GitHub pull request if you want to collaborate on improving the code.
What You Will Learn
This tutorial will walk you through the steps to create a 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.
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.
(click to zoom)
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.
This tutorial is a great resource to get started building on AWS. To learn more about building on AWS, visit the AWS Developer Center.