The Phonebook Application aims to create a phonebook application in Python and deployed as a web application with Flask on AWS Application Load Balancer with Auto Scaling Group of Elastic Compute Cloud (EC2) Instances and Relational Database Service (RDS) using Terraform.
This project involves creating a phonebook web application using Python Flask and deploying it on AWS using Terraform. The application allows users to manage contacts in a phonebook, stored in a MySQL database on AWS RDS. The deployment includes an AWS Application Load Balancer, Auto Scaling Group of EC2 Instances, and a relational database service.
phonebook
|-- main.tf
|-- phonebook-app.py
|-- templates
|
|
|
|-- tf-phonebook.png
|-- search-snapshot.png
|-- readme.md
-
Phonebook Operations: Users can search, add, update, and delete records in the phonebook.
-
Input Validation: The application validates user inputs, ensuring proper name and numeric phone number formats.
-
Web Application: The code transforms into a web application using Flask and three HTML templates.
-
AWS Deployment: Terraform deploys the application on AWS, utilizing Application Load Balancer, EC2 Instances, and RDS.
-
Security Measures: Security groups are configured to control traffic, and instances are launched in an Auto Scaling Group.
-
Clone the Repository:
git clone [repository-url]
-
Install Dependencies: Ensure you have Python, Flask, and Terraform installed.
-
Configure AWS CLI: Set up AWS CLI with necessary credentials.
-
Run Terraform Commands:
terraform init terraform apply
-
Access the Web Application: Visit the provided URL after Terraform completes the deployment.
- Valid Name: "John Doe"
- Invalid Name: "12345" (Warning: Name should be text)
- Valid Number: "1234567890"
- Invalid Number: "thousand" (Warning: Number should be in numeric format)
- Name: Adnan Turgay Aydin
- Email: taydinadnan@gmail.com