Home | Escopo | Gerência | Processo | Mockups | Configuração | Arquitetura | DataBase | Infra | Estudos |
---|
Infraestrutura do Sistema
Aqui serão descritas todas as informações referentes à infraestrutura do projeto.
Infraestrutura:
- Foi utilizado o provedor de infraestrutura na nuvem AWS.
Recursos de Rede:
-
Foi criada uma rede virtual privada, VPC na AWS, para alocar subredes e provisionar os recursos de infraestrutura e aplicações.
-
Foram utilizados Firewalls virtuais, Security Groups na AWS, como um recurso de segurança de rede.
-
Foi utilizado um serviço de entrega de conteúdo (CDN), CloudFront na AWS, para melhorar a performance de entrega de arquivos estáticos.
Recursos de Computação:
- Foi criada uma instância de máquina virtual, EC2 na AWS, para hospedar os componentes de software.
Recursos de Armazenamento:
-
Foi utilizado um serviço armazenamento de arquivos estáticos, S3 na AWS.
-
Foi utilizado um volume de armazenamento, EBS na AWS, para a persistência dos dados independente da instância computacional que opera sobre ele.
IaC:
- Para o provisionamento de infraestrutura no provedor AWS, foi utilizada uma ferramenta de infraestrutura como código (IaC), o Terraform.
Resumo:
Componentes de Infraestrutura:
-
VPC e Subnets: alocar os componentes de infra.
-
Instância EC2: hospedagem de três containers (API REST Backend, Banco de dados, GitLab Runner).
-
Volume EBS: persistência dos dados do banco de dados.
-
Repositório ECR: registro das imagens da aplicação backend.
-
Buckets S3: armazenamento/provisionamento dos arquivos da aplicação frontend e conteúdos (PDFs, Videos, Imagens).
-
Distribuições CloudFront: cache dos arquivos dos buckets S3.
Funcionamento:
-
O usuário através do seu navegador vai acessar o sistema com o nome de domínio. O navegador faz uma requisição DNS e descobre o endereço IP da aplicação. O IP aponta para algum dos servidores da AWS do serviço Amazon CloudFront, chamados Edge Servers. Estes servidores, gerenciados pela AWS, possuem cache dos arquivos que estão armazenados no Bucket S3 e são servidos para os clientes. Os arquivos que estão armazenados no Bucket S3 são o próprio código fonte da aplicação frontend (HTML, JS e CSS), que roda no navegador do cliente.
-
A aplicação frontend realiza requisições para o servidor Backend que consta com uma API para operar sobre os dados do banco.