|
|
|[Home](home)|[Sprints](sprints)|[Requisitos](requisitos)|[Arquitetura](arquitetura)|[Configuração](configuracao)|[Mockups](mockups)|[Banco de Dados](Banco Dados)|[Instalação](instalacao)|[Gerência de Projeto](Gerenciamento do Projeto)|[Horários Disponiveis](horarios)| [Git](git)
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
# Configuração do Projeto
|
|
|
|
|
|
Na arquitetura da nuvem do nosso projeto, faremos uso principal do serviço ECS (Elastic Container Service) da AWS. O ECS é um serviço totalmente gerenciado de orquestração de contêineres, projetado para facilitar a implantação, o gerenciamento e a escalabilidade de aplicações baseadas em contêineres. Ele nos oferece recursos robustos para execução, monitoramento e escalonamento de aplicações, garantindo uma infraestrutura confiável e segura para nossa aplicação.
|
|
|
|
|
|
![Product-Page-Diagram_Amazon-Elastic-Container-Service_2x_march_2023.8447640b2f8c4ab0a9b935c7724cd32cfe4e6d33](uploads/2cfe230bbf7d8ee2babd4ba2a48d1d48/Product-Page-Diagram_Amazon-Elastic-Container-Service_2x_march_2023.8447640b2f8c4ab0a9b935c7724cd32cfe4e6d33.png)
|
|
|
|
|
|
Fonte: https://aws.amazon.com/pt/ecs/
|
|
|
|
|
|
O diagrama ilustra como o Amazon ECS executa, monitora e escala aplicações em opções flexíveis de computação, com integrações automáticas com outros serviços da AWS. Desenvolvedores descrevem suas aplicações e recursos, enquanto o ECS cuida do restante. Operadores realizam operações do sistema, criam regras de escalabilidade e capacidade, e consultam logs e telemetria. O ECS é representado por um ícone na segunda seção, com setas indicando configuração e implantação/escalabilidade. A terceira seção mostra integrações automatizadas com serviços como Elastic Load Balancing, AWS Secrets Manager e Amazon Elastic File System. Também exibe opções flexíveis de computação, como AWS Fargate, Amazon EC2 Graviton, Amazon ECS Anywhere, AWS Outposts, zonas locais da AWS e AWS Wavelength. O Amazon Elastic Container Registry é mencionado como local para criar e armazenar imagens de contêineres.
|
|
|
|
|
|
## AWS Fargate
|
|
|
|
|
|
Dentro do ECS, utilizaremos o AWS Fargate, que é um mecanismo de computação sem servidor e com pagamento conforme o uso. O Fargate permite que nos concentremos exclusivamente na construção da aplicação, sem a necessidade de provisionar ou gerenciar servidores subjacentes. Ele fornece um ambiente de execução isolado para os contêineres, garantindo a segurança e o isolamento dos recursos. Com o Fargate, podemos escalar automaticamente nossa aplicação com base na demanda, sem se preocupar com a infraestrutura subjacente.
|
|
|
|
|
|
![Product-Page-Diagram_Fargate_2x.a20fb2b15c2aebeda3a44dbbb0b10b82fb89aa6a](uploads/e1da4cadc5d2b092a5fa0c2e58eebe8a/Product-Page-Diagram_Fargate_2x.a20fb2b15c2aebeda3a44dbbb0b10b82fb89aa6a.png)
|
|
|
|
|
|
_Fonte: https://aws.amazon.com/pt/fargate/_
|
|
|
|
|
|
## AWS Elastic Container Registry (ECR)
|
|
|
|
|
|
Para o processo de deploy da nossa aplicação, utilizaremos o AWS Elastic Container Registry (ECR). O ECR é um serviço totalmente gerenciado de registro de contêineres, projetado para fornecer uma hospedagem de alto desempenho para imagens de contêineres. Com o ECR, podemos armazenar, gerenciar e distribuir nossas imagens de contêineres de forma confiável e segura. Ele garante a disponibilidade e a replicação das imagens em diferentes regiões, permitindo implantar nossas aplicações em qualquer lugar.
|
|
|
|
|
|
![Product-Page-Diagram_Amazon-ECR.2f9e7f26ef78f4dc6f058f7eeb07cf696f6951c1](uploads/01a700534ea8463074cbff29f8ac9fda/Product-Page-Diagram_Amazon-ECR.2f9e7f26ef78f4dc6f058f7eeb07cf696f6951c1.png)
|
|
|
|
|
|
_Fonte: https://aws.amazon.com/pt/ecr/_
|
|
|
|
|
|
## Fluxo do Deploy
|
|
|
|
|
|
O fluxo do nosso processo de deploy seguirá as seguintes etapas:
|
|
|
|
|
|
1. **Envio das Imagens para o ECR**: Inicialmente, enviaremos as imagens conteinerizadas da nossa aplicação para o ECR. Teremos três imagens no total: uma para o frontend, uma para o backend e uma para o banco de dados. O ECR garantirá que essas imagens sejam armazenadas de forma segura e prontas para serem implantadas no ambiente do ECS.
|
|
|
|
|
|
2. **Configuração do ECS**: Com as imagens armazenadas no ECR, passaremos para a configuração do ECS. No ECS, criaremos uma *task definition* (definição de tarefa) que define como nossa aplicação será executada em contêineres. Nessa definição, especificaremos as imagens a serem utilizadas, a configuração de recursos, as variáveis de ambiente, as portas de comunicação e outros detalhes necessários para a execução correta da aplicação.
|
|
|
|
|
|
3. **Criação do Serviço com o Fargate**: Com a *task definition* configurada, iremos criar um serviço no ECS utilizando o AWS Fargate. Esse serviço representará a instância em execução da nossa aplicação, garantindo que ela esteja sempre disponível e escalável. O Fargate cuidará do provisionamento dos recursos necessários, como capacidade de computação e memória, conforme a demanda da aplicação.
|
|
|
|
|
|
Ao seguir esse fluxo de deploy, garantiremos a implantação automatizada, segura e escalável da nossa aplicação |