Skip to content

Escopo do Projeto:

Implementação de Arquitetura Cloud na AWS com Terraform

Objetivo: Provisionar uma arquitetura na AWS utilizando o Terraform, que englobe o uso de um Application Load Balancer (ALB), instâncias EC2 com Auto Scaling e um banco de dados RDS. Atencao: A escolha da região de implantacao deve ser baseada em custos e desempenho, isso deve aparecer no seu relatório.

Rubricas do projeto para tirar C+

Requisitos Técnicos do Projeto:

1. Infraestrutura como Código (IaC) com Terraform:

  • Utilizar o Terraform para criar e gerenciar todos os recursos na AWS.
  • Estruturar o código Terraform utilizando módulos para separar responsabilidades (ex: módulo para EC2, módulo para RDS, etc.).
  • Armazenar o estado do Terraform em um bucket S3 para o lock do estado.
  • O script deve ser capaz de criar a infraestrutura completa sem a intervenção manual do usuário (comando único).
  • O script deve ser capaz de destruir a infraestrutura completa sem a intervenção manual do usuário (comando único).

2. Application Load Balancer (ALB):

  • Provisionar um ALB para distribuir o tráfego entre as instâncias EC2.
  • Configurar Target Groups para gerenciar as instâncias EC2.
  • Implementar Health Checks para garantir que o tráfego seja direcionado apenas para instâncias saudáveis.

3. EC2 com Auto Scaling:

  • Criar um Launch Configuration com uma AMI que tenha a aplicação pré-instalada.
  • Provisionar um Auto Scaling Group (ASG) utilizando o Launch Configuration criado.
  • Definir políticas de escalabilidade baseadas em CloudWatch Alarms (ex: CPU Utilization > 70%).
  • Garantir a integração do ASG com o ALB através do Target Group.

4. Banco de Dados RDS:

  • Provisionar uma instância RDS MySQL ou PostgreSQL com a configuração db.t2.micro (a menor disponível).
  • Habilitar backups automáticos e definir uma janela de manutenção.
  • Configurar Security Groups para garantir que apenas as instâncias EC2 possam se conectar ao RDS.
  • Habilitar o Multi-AZ para alta disponibilidade.

5. Aplicação:

  • A aplicação deve ser uma API RESTful ou uma aplicação web simples.
  • Deve ser capaz de se conectar ao banco de dados RDS e realizar operações CRUD.
  • Implementar métricas e logs utilizando o CloudWatch.

6. Análise de Custo com a Calculadora AWS:

  • Utilizar a Calculadora de Custo da AWS para estimar os custos mensais da arquitetura proposta.
  • Considerar os custos de todos os recursos utilizados (EC2, ALB, RDS, etc.).
  • Elaborar um relatório detalhado com a previsão de custos, destacando os principais gastos e possíveis otimizações.

7. Documentação:

  • Criar uma documentação técnica que inclua um diagrama da arquitetura AWS.
  • Documentar todas as decisões técnicas tomadas e justificá-las.
  • Incluir um guia passo a passo para executar os scripts Terraform e validar a infraestrutura.

Com estes requisitos, os alunos terão uma visão mais completa não apenas da implementação técnica, mas também dos custos associados, o que é crucial em ambientes de produção reais.

Rubricas do projeto para tirar B+

8. Analise de carga:

  • Implementar uma analise de carga e desempenho da arquitetura. (escolher a ferramenta que julgar a mais apropriada para o seu projeto)
  • O Locust é uma ferramenta popular para testes de carga e desempenho, permitindo simular milhares de usuários simultâneos para testar a resistência de sistemas. Existem várias outras ferramentas que oferecem funcionalidades semelhantes. Aqui estão algumas das mais conhecidas:

Apache JMeter: Uma das ferramentas de teste de carga mais populares e amplamente utilizadas. Interface gráfica para configuração de testes. Suporta vários protocolos, incluindo HTTP, JDBC, FTP e mais. Extensível através de plugins. Gatling: Ferramenta de teste de carga de código aberto escrita em Scala. Focado em testes de carga para aplicações web. Oferece relatórios detalhados e é conhecido por sua alta performance. Artillery: Ferramenta moderna, leve e poderosa para testes de carga. Escrita em Node.js. Suporta testes de carga para WebSocket, Socket.io, AWS Kinesis e mais. LoadRunner: Ferramenta comercial da Micro Focus. Uma das ferramentas de teste de carga mais antigas e estabelecidas do mercado. Oferece uma ampla variedade de recursos e suporte para vários protocolos. Taurus: Ferramenta de automação de testes de carga de código aberto. Permite executar testes escritos em JMeter, Gatling, Locust, Selenium e outras ferramentas sob uma interface comum. Focado em simplificar a configuração e execução de testes.

9. Documentação:

  • Adicionar a documentação anterior a Análise de Custo real com a utilização dos testes de carga na infraestrutura criada na AWS.

Rubricas do projeto para tirar A

10. Banco de Dados e VPN:

  • O script (terraform) deve implementar o banco de dados na Nuvem privada do seu Kit (OpenStack) e a aplicação deve ser conectada a ele via VPN.