Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sezzgi/scalable-phonebook-application
https://github.com/sezzgi/scalable-phonebook-application
aws mysql phonebook python scalable-applications terraform
Last synced: 9 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/sezzgi/scalable-phonebook-application
- Owner: sezzgi
- Created: 2024-12-27T05:56:08.000Z (13 days ago)
- Default Branch: main
- Last Pushed: 2024-12-31T10:03:05.000Z (9 days ago)
- Last Synced: 2024-12-31T11:18:09.966Z (9 days ago)
- Topics: aws, mysql, phonebook, python, scalable-applications, terraform
- Language: Python
- Homepage:
- Size: 896 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: Security-Groups.png
Awesome Lists containing this project
README
# Scalable Phonebook Application
A highly available phonebook web application deployed on AWS with auto-scaling capabilities, built using Python Flask, MySQL RDS, and Infrastructure as Code with Terraform.
## Overview
This project demonstrates enterprise-level cloud architecture by implementing a scalable phonebook application. It showcases:
- High Availability using AWS Application Load Balancer
- Auto-scaling EC2 instances
- Managed MySQL database with AWS RDS
- Infrastructure as Code using Terraform
- CI/CD best practices## Features
- **Search**: Find contacts quickly with case-insensitive search
- **Add/Update**: Create and modify contact information
- **Delete**: Remove outdated contacts
- **Data Validation**: Smart input validation for names and phone numbers
- **Auto-scaling**: Handles traffic spikes automatically
- **High Availability**: Runs across multiple availability zones## Architecture
- Application Load Balancer with auto-scaling EC2 instances
- MySQL RDS for persistent storage
- Multiple security groups for enhanced security
- Distributed across availability zones## Technologies
- **Backend**: Python Flask
- **Database**: AWS RDS (MySQL 8.0)
- **Infrastructure**:
- AWS (ALB, EC2, Auto Scaling, RDS)
- Terraform for IaC
- **Security**: Custom security groups, isolated database tier## Quick Start
1. **Prerequisites**
- AWS Account
- Terraform installed
- AWS CLI configured2. **Deployment**
```bash
# Clone repository
git clone [repository-url]# Initialize Terraform
terraform init# Deploy infrastructure
terraform apply# Access application (URL in Terraform output)
```## Infrastructure Details
- Load balanced across availability zones
- Auto-scales between 1-3 instances
- t2.micro EC2 instances with custom launch template
- Private subnet RDS instance
- Automated deployment with Terraform