uprm-inso4101-2024-2025-s1 / semester-project-regiupr

semester-project-regiupr created by GitHub Classroom
7 stars 1 forks source link

Research AWS Database Solutions for Python Integration #20

Closed carlospepin23 closed 1 month ago

carlospepin23 commented 1 month ago

Objective:

Description:

Requirements:

Time Constraints:

Completion Criteria:

Difficulty: 3

Priority: 8

carlospepin23 commented 1 month ago

Report on AWS Database Solutions for Python Integration

Objective: To evaluate and select the best option for hosting a MySQL database for the ongoing project and to establish an effective connection using Python scripts.

AWS Service Selection: (Amazon EC2)

After researching and evaluating the various options provided by Amazon Web Services for hosting MySQL databases, it was determined that Amazon EC2 (Amazon Elastic Compute Cloud) is the most suitable choice for our needs.

Justification:

Our database is relational, which makes options like Amazon DynamoDB impractical, as it is designed for non-relational databases. Although Amazon RDS offers a more streamlined solution, we will incur into costs when assigning a public IPV4 address for remote usage. This makes Amazon EC2 the preffered solution, since, with an Elastic IP address attached(included in the AWS Free tier), we can access the instance from anywhere remotely.

Benefits of Using Amazon EC2 for Hosting MySQL Databases:

Cost-Free Option: Amazon EC2's free tier includes 750 hours of usage per month for a t2.micro or t3.micro instance. This offer allows us to perform testing and development without the additional costs associated with public IP addresses on Amazon RDS, making it ideal for the scope of our project.

Flexibility and Control: With EC2, we have full control over the MySQL installation, configuration, and management. This flexibility is crucial for adapting to the changing demands of the project

Security: Security groups and other network settings can be configured to secure the database against unauthorized access. While the data handled for this project does not pose significant risks, these features would be essential for maintaining security and reliability if the project were implemented on a larger scale.

Database Connection:

To connect our Python application with the MySQL database hosted on Amazon EC2, I found that using mysql-connector-python would be advantageous. This official Oracle library enables interaction with MySQL databases from Python. Its benefits include:

Official Library: As an official Oracle library, it ensures compatibility and ongoing support for current and future MySQL versions.

Connectivity: It facilitates essential operations, such as creating connections, executing queries, and handling results effectively.

Error Handling: It provides robust mechanisms for managing errors and exceptions, ensuring that operations are conducted safely and reliably.

Conclusion:

The combination of Amazon EC2 for MySQL and mysql-connector-python offers a robust and cost-effective solution for managing and implementing our database in the project.

Sources:

Amazon EC2 MySQL Connector/Python Documentation

nelson-escalona commented 1 month ago

LGTM.

nelson-escalona commented 1 month ago

Completion date was changed to Tuesday, Sept 10 since the service selection changed and research summary has to be updated.

nelson-escalona commented 1 month ago

LGTM