challenge-iac

IaC do projeto.

MIT License

Stars
0
Committers
2

Automao com Terraform

Objetivo do projeto

Automatizar o processo de criao e manuteno do ambiente AWS EKS: soluo de infraestrutura escolhida para suportar a aplicao.

Premissas do Projeto

Para o desenvolvimento do projeto, foram levantadas as seguintes premissas:

  • Utilizar o Terraform como ferramenta de infraestrutura como cdigo.
  • O cluster Kubernetes deve ser criado utilizando o servio Elastic Kubernetes Service (EKS) da AWS.
  • O projeto deve ser o mais simples e reaproveitvel possvel.
  • Toda vez que houver alterao no cdigo Terraform na branch main do repositrio, a pipeline deve ser executada.
  • S vai haver um ambiente Kubernetes.

Tecnologias utilizadas no projeto

Motivaes para o uso de cada tecnologia

  • EKS - Requisito do projeto.
  • S3 - Foi adotado para armazenar o estado atual do projeto Terraform. Foi definido o seu uso por ser um servio da prpria AWS e ter controle de versionamento dos arquivos.
  • GitHub Actions - Requisito do projeto.

Instrues para executar

A pipeline de criao ou atualizao do projeto executada sempre que o cdigo Terraform do projeto for alterado na branch main.

Configuraes

As variveis de configurao do projeto esto no arquivo terraform.tfvars, exceto as variveis consideradas sensiveis que esto no gerenciador de secrets do GitHub Actions.

Variveis 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.

Explicao do Fluxo

Diagrama de Infraestrutura

Possveis evolues do projeto

Algumas evolues que sugiro para o projeto:

  • Separar ambientes dev, homolog e prod utilizando o Terraform Workspace ou Terraform Grunt para criao e gerenciamento desses ambientes.
  • Usar o DynamoDB junto com o S3 para evitar execuo paralela do Terraform.
Badges
Extracted from project README's
Terraform Apply
Related Projects