Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjetoECS

CI

Projeto com ECS

Objetivo do projeto

Criar uma solucação em ECS para rodar um container com uma aplicação web com os sequintes recursos

  • Cluster ECS rodando em Fargate
  • Build e Push de uma imagem docker para o docker registry
  • Task para criar o serviço rodando o container que foi criado
  • IAM roles para que a task seja executada com as permissoes necessarias
  • VPC na AWS com 2 subnetes em 2 AZ diferentes para alta disponibilidade
  • Application Loadbalancer para roteador o trafego externo para os endereços internos
  • Um apontamento do Route 53 com o Application Loadbalancer para o host app.labdev.cloud para ter um nome de fácil acesso
  • Certificado validado e assinado para prover criptografia e cumprir os requisitos de segurança
  • Um dashboard básico do CloudWatch para monitorar memória e CPU
  • Um budget mensal para monitorar o custo com alerta de e-mail caso consuma 80% do que foi definido
  • Scan de segurança da imagem docker com o Trivy
  • Assinatura da Imagem com o Cosing

Tecnologias utilizadas no projeto

Instruções para executar

A pipeline para criação do projeto com a imagem docker, um cluster ECS e uma task provisionado com terraform.

Configurações

Variáveis armazendas em secrets:

AWS_ACCESS_KEY_ID => Access Key utilizada para configurar o AWS CLI.

AWS_SECRET_ACCESS_KEY => Secret access Key utilizada para configurar o AWS CLI.

AWS_BUCKET_NAME => Nome do Bucket utilizado para armazenar o estado do projeto Terraform.

TF_BUCKET_NAME => Nome do arquivo utilizado para armazenar o estado do projeto Terraform.

DOCKERHUB_USERNAME => Nome do usuário no Docker Hub.

DOCKERHUB_TOKEN => Token utilizado no Docker Hub.

COSIGN_PRIVATE_KEY => Chave privada do Cosign para assinatura.

COSIGN_PASSWORD => Password da chave privada

Estrutura da solução

Estrutura da solução

Fluxo da solução

Fluxo da solução

Possíveis evoluções do projeto

  • Separar ambientes dev, homolog e prod utilizando o Terraform Workspace ou Terraform Grunt para criação e gerenciamento desses ambientes.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages