Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MNIST Digit Recognition on AWS — End-to-End Cloud ML Pipeline

Handwritten digit recognition deployed as a cloud-native application on AWS: a trained neural network served through a web interface, with serverless inference, object storage, a NoSQL results store, and load-balanced traffic — achieving ~90% classification accuracy on MNIST digits.

M.Sc. Data Science coursework (Cloud Computing) — Hochschule Fulda.

🏗️ Architecture

flowchart LR
    U[User<br/>web interface] --> ELB[Elastic Load Balancer]
    ELB --> EC2[EC2 instances<br/>web app]
    EC2 --> L[AWS Lambda<br/>model inference]
    L --> S3[(S3<br/>images / model artifacts)]
    L --> DDB[(DynamoDB<br/>prediction results)]
Loading
Service Role in this project
EC2 Hosts the web application serving the digit-upload interface
Elastic Load Balancer Distributes incoming traffic across instances
Lambda Runs model inference serverlessly on submitted images
S3 Stores uploaded digit images and/or model artifacts
DynamoDB Persists prediction results / request records

🧠 Model

A neural network trained on the MNIST handwritten digit dataset (~90% test accuracy). Model artifacts (.h5, .pkl) are included in the repository.

🔄 Request flow

  1. User uploads / draws a digit image in the web interface
  2. The load balancer routes the request to an EC2-hosted app instance
  3. The image is passed to the inference function; preprocessing normalizes it to MNIST format (28×28 grayscale)
  4. The model returns the predicted digit; the result is stored in DynamoDB and returned to the user

💡 What this project demonstrates

  • Separation of concerns in the cloud: web serving, compute, storage, and persistence each on the appropriate managed service rather than a single monolithic server
  • Serverless inference: pay-per-request model execution without managing inference servers
  • Horizontal scalability: load balancing across instances from day one

🛠️ Tech stack

Python · AWS EC2 · AWS Lambda · S3 · DynamoDB · Elastic Load Balancer · HTML/CSS


Note: this project requires an AWS account to deploy; it is not runnable locally as-is. The repository documents the implementation.

About

Cloud-native handwritten digit recognition — MNIST model served on AWS with EC2, Lambda, S3, DynamoDB, and load balancing (~90% accuracy)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages