Implementação de Arquitetura Cloud¶
Escopo do Projeto:¶
Atencao: O seu projeto será avaliado pelo grau de profissionalismo na DOCUMENTACAO!!!¶
Objetivo: Provisionar uma arquitetura na AWS utilizando o CloudFormation, que englobe o uso de um Application Load Balancer (ALB), instâncias EC2 com Auto Scaling e um banco de dados DynamoDb.
Atencao: A escolha da região de implantacao deve ser baseada em custos e desempenho, isso deve aparecer no seu relatório.
Requisitos Técnicos do Projeto:
Rubricas do projeto para tirar C+¶
Infraestrutura como Código (IaC) com CloudFormation:
- Utilizar o CloudFormation para criar e gerenciar todos os recursos na AWS.
- Estruturar o código utilizando com comentarios explicativos em cada recurso.
- 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 atualizar 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).
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.
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.
Banco de Dados DynamoDb:
- Provisionar uma instância DynamoDb.
- Configurar Security Groups para garantir que apenas as instâncias EC2 possam se conectar ao banco de dados.
Aplicação:
- PONTO A SER DEFINIDO.
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, Db, etc.).
O que deverá ser entregue para C+ ---> 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 de como executar os scripts que você criou (não esquqeca de validar a sua infraestrutura).
- Elaborar um relatório detalhado com a previsão de custos, destacando os principais gastos e possíveis otimizações.
- Colocar o link do repositorio com o código CloudFormation no Documento.
Rubricas do projeto para tirar B+¶
Analise de carga:
-
Implementar uma analise de carga e desempenho da arquitetura. (escolher a ferramenta que julgar a mais apropriada para o seu projeto)
-
Locust: 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.
-
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.
O que deverá ser entregue para B+ ---> 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. Utilizar a aba de Biling da AWS, separar os custos do seu projeto via Tags
Rubricas do projeto para tirar A¶
AWS CodePipeline e AWS Secrets Manager O AWS CodePipeline é um serviço totalmente gerenciado de entrega contínua que ajuda a automatizar pipelines de lançamento para oferecer atualizações rápidas e confiáveis de aplicações e infraestruturas.
- Voce deve utilizar os codigo gerados e o entendimento de chaves, para criar uma pipeline na AWS, ela deve atualizar a sua infraestrutura sempre que o codigo for alterado, sem a necessiade de comando por parte de qualquer usuario.
- É obrigatório o uso de AWS Secrets Manager, para guardar as credenciais de acesso programatico da AWS.
O que deverá ser entregue para A+ ---> Documentação:¶
- Adicionar na documentação anterior a explicacão sobre CodePipeline, como utilizar e como foi a sua infraestrutura é criada a partir de CI/CD.