Wiki do projeto Visual Interactive Reading para a ages de 2024/2
## Getting started
# VIR Infrastructure
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
This document describes the infrastructure for the VIR project, as depicted in the attached diagram.
Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
## Overview
## Add your files

-[ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-[ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
The VIR infrastructure utilizes Amazon Web Services (AWS) to host its application and database. It consists of the following components:
-[ ] [Set up project integrations](https://tools.ages.pucrs.br/VIR/vir-wiki/-/settings/integrations)
***Client:** Users interact with the application through a web browser or a mobile application.
***EC2-WebServer:** An Amazon Elastic Compute Cloud (EC2) instance running a web server (NGINX or Apache) to handle incoming client requests and serve static content.
***EC2-Backend:** An EC2 instance responsible for application logic and API endpoints, using Flask framework as API, swagger for API documentation, Gunicorn as WSGI and NGINX as Webserver and postgresql as database.
***S3 Storage:** Amazon Simple Storage Service (S3) is used for storing files and other data.
## Collaborate with your team
-[ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-[ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-[ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-[ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
## Network Configuration
***Virtual Private Cloud (VPC):** All components should reside within a VPC for security and isolation.
***Subnets:** Divide the VPC into public and private subnets. Place the WebServer in the public subnet and the Backend and Database in the private subnet.
***Route Tables:** Configure route tables to direct traffic appropriately. The public subnet's route table should have an internet gateway for outbound internet access.
## Security Considerations
Security best practices should be implemented throughout the infrastructure:
***Security Groups:**
***WebServer:**
* Allow inbound traffic on ports 80 (HTTP) and 443 (HTTPS) from the internet.
* Allow inbound traffic from the load balancer if applicable.
* Allow all outbound traffic to the backend instance on the application's port.
***Backend:**
* Allow all outbound traffic to API endpoints.
* Allow inbound traffic on the database port (e.g., 5432 for PgSQL) from the backend instance only.
## Pricing and Cost Considerations


## Operational Considerations
***Monitoring:** Implement monitoring tools like Amazon CloudWatch to track resource utilization, application performance, and identify potential issues.
***Logging:** Centralize logs from all components to facilitate troubleshooting and security analysis. Consider using Amazon CloudWatch Logs or a dedicated logging service.
***Backups:** Implement regular backups for the database and important data stored in S3. Utilize automated backup features provided by AWS services.
This README provides a basic understanding of the VIR infrastructure. Further documentation and diagrams may be necessary to detail specific configurations, security measures, and operational procedures.