Home | Sprints | Requisitos | Arquitetura | Configuração | Mockups | Banco de Dados | Instalação | Gerência de Projeto | Git | Boas Práticas | Merge Request Template |
---|
Instalação da aplicação
O projeto Radar do Investidor teve como objetivo desenvolver uma aplicação web para coparação de fundos de investimento. A aplicação compara dois ou mais fundos, também apresentando um gráfico para auxiliar o usuário na comparação.
A aplicação foi implantada utilizando os serviços AWS. Como cada parte do serviço foi implantada usando diferentes serviços, iremos explicar com detalhes o processo.
Instruções de instalação
Antes de implantar a aplicação, precisamos de uma conta AWS - Amazon Web Service. O ideal é uma conta com privilégios administrativos, ou com pelo menos permissão para editar as proprias IAM Roles, que é como uma regra que permite ao seu usuário usar serviços específicos da AWS.
Além disso, para a realização de alguns passos, será necessario que a ACCESS KEY e a SECRET ACCESS KEY sejam configuradas.
Tenha em mente que alguns dos serviços usados nessa aplicação são pagos, e o padão de moeda da AWS é o dolar.
Além dos recursos da AWS será necessário um Docker, para a criação de uma imagens com todos os recursos necessários para a aplicação, os Dockerfiles com as dependencias estão nos seus respectivos repositórios.
VPC e Subnets
Primeiramente, devemos configurar a rede onde a aplicação vai ficar. Para isso utilizamos a Amazon Virtual Private Cloud (Amazon VPC) que é um serviço que permite iniciar recursos da AWS em uma rede virtual isolada. Para detalhes sobre a criação de uma VPC na AWS visite a documentação oficial aqui.
Depois de criar a VPC, precisamos criar algumas subnets privadas, para manter o nosso serviço seguro. Criamos duas subnetes privadas e uma publica. Para entender mais sobre subnetes visite a documentação da AWS.
Frontend
Na implantação do Frontend utilizamos o ECR (Elastic Container Registry) ECS (Elastic Container Service) junto com o AWS Fargate.
Para que utilizassemos a imagem docker na AWS primeiro criamos um repositorio de containers, usando o ECR - Elastic Container Registry, para isso seguimos esse tutorial, e para dar push em imagens seguimos essa parte da documentação da AWS.
Após isso, precisamos gerenciar a imagem, para isso usamos o ECS - Elastic Container Service, que gerencia o container com a imagem Docker. Usamo o ECS juntamente com o Fargate, que é uma maneira Serveless de gerenciar os recursos. Para a criação de um ECS com Fargate veja esse passo a passo.
Depois de criar o cluster, basta criar uma task para o serviço, seguindo este tutorial.
Backend
No deploy do Backend utilizamos o Code Builder para a criação de uma imagem, similar as imagens geradas pelo Docker, e usamos o ECS juntamente com o AWS Fargate. Para a criação de um ECS com Fargate veja esse passo a passo.
Banco de dados
Para o deploy do Banco de Dados utilizamos o RDS. Para a criação da instância do banco de dados, siga o passo a passo dessa documentação. Para conectar o banco de dados com o Backend é necessario ao criar a task editar as variaveis de ambiente passando o link do banco de dados, ou atualizar indo na task e atualizando as váriaveis de ambiente, pode seguir esse guia.
Scrapper
No deploy do Scrapper foi utilizado o AWS Lambda com containers. Para isso usamos o ECR e o AWS Lambda.
Para que utilizassemos a imagem docker na AWS primeiro criamos um repositorio de containers, usando o ECR - Elastic Container Registry, para isso seguimos esse tutorial, e para dar push em imagens seguimos essa parte da documentação da AWS.
Para criar uma função lambda baseado na imagem do ECR, deve seguir esse tutorial, no tópico "Criar uma função definida como uma imagem de contêiner".