This project covers the full lifecycle of deploying a containerized web application on AWS. It includes designing a custom VPC with subnets and routing, securing resources with Security Groups, launching and configuring an EC2 instance, installing Docker and Docker Compose, and deploying a Docker image from Docker Hub for a browser‑based application.
The solution consists of the following key elements:
- VPC & Networking: Dedicated VPC with a public subnet, Internet Gateway, and routing rules.
- Security: Security Group allowing SSH for administration and your chosen application traffic port.
- Compute: EC2 instance launched in the public subnet; Docker installed.
- Container Deployment: Running the
pengbai/docker-supermario:latestimage to serve the application.
-
Network Setup
Use the AWS Console to create the VPC, subnet, Internet Gateway, and route table. -
Security Group
Create a Security Group with rules for SSH and your chosen application port. -
Launch EC2
Select an AWS AMI, place it in the public subnet, and attach the Security Group. -
Instance Configuration
Install Docker — either automatically via EC2 User Data or manually through the terminal.
docker pull pengbai/docker-supermario:latest
docker run --rm -p 8600:8080 pengbai/docker-supermario:latestdocker pulldownloads the Super Mario emulator image from Docker Hub.--rmautomatically removes the container when it stops.-p 8600:8080maps a port on the host to the container’s internal port.- After running, open
http://localhost:8600orhttp://<IP_SERVER>:8600to verify the application. - Link to DockerHub image.
Congratulations on completing this project! You’ve successfully configured AWS networking and security, launched and prepared an EC2 instance, and deployed a containerized application from Docker Hub. These achievements lay the groundwork for more advanced cloud-native development and operations—keep exploring and building on these skills.

