NOTAS DE ESTUDO
AWS Cloud Development Kit (CDK)
- Defina infraestrutura em uma linguagem conhecida: JavaScript/TypeScript, Python, Java ou .NET.
- O código é compilado para um template CloudFormation em JSON/YAML.
- Assim, é possível implantar a infraestrutura e o código da aplicação juntos.
- Útil para funções Lambda.
- Útil para contêineres Docker em EC2/EKS.
Elastic Beanstalk
- Visão de implantação de aplicações AWS voltada ao desenvolvedor.
- Utiliza componentes já estudados: EC2, ASG, ELB, RDS e outros.
- Reúne tudo em uma visão simples de entender, mantendo o controle das configurações.
- Oferta de Platform as a Service, PaaS.
- O Beanstalk é gratuito; as instâncias subjacentes são cobradas.
- Gerencia:
- Configuração de instâncias e sistema operacional.
- Estratégia de deploy configurável, executada pelo serviço.
- Provisionamento de capacidade.
- Balanceamento e escalabilidade automática.
- Saúde e capacidade de resposta da aplicação.
- O desenvolvedor cuida do código da aplicação.
- Três modelos de arquitetura:
- Instância única, adequada ao desenvolvimento.
- Balanceador e ASG, para aplicações web de produção ou pré-produção.
- Apenas ASG, para aplicações não web, como workers em produção.
- Suporta várias plataformas, incluindo Go, Java SE e Java com Tomcat.
- O agente de saúde envia métricas ao CloudWatch, verifica a aplicação e publica eventos de integridade.
AWS CodeDeploy
- Implantação automática de aplicações.
- Funciona com instâncias EC2 e servidores locais.
- Serviço híbrido.
- Os servidores precisam ser provisionados e configurados previamente com o agente CodeDeploy.
AWS CodeBuild
- Compilação de código na nuvem.
- Compila fontes, executa testes e gera pacotes prontos para implantação, por exemplo pelo CodeDeploy.
- Benefícios:
- Totalmente gerenciado e serverless.
- Escalabilidade contínua e alta disponibilidade.
- Segurança.
- Pagamento somente pelo tempo de build.
AWS CodePipeline
- Orquestra as etapas para publicar código automaticamente em produção:
- Código → build → teste → provisionamento → deploy.
- Base de integração contínua e entrega contínua, CI/CD.
- Benefícios:
- Gerenciado e compatível com CodeCommit, CodeBuild, CodeDeploy, Beanstalk, CloudFormation, GitHub, serviços de terceiros e plugins personalizados.
- Entregas e atualizações rápidas.
AWS CodeArtifact
- Pacotes de software dependem de outros pacotes, e novas dependências são criadas continuamente.
- Armazenar e recuperar essas dependências é gerenciamento de artefatos.
- Tradicionalmente seria necessário manter um sistema próprio.
- O CodeArtifact oferece gerenciamento de artefatos seguro, escalável e econômico.
- Compatível com Maven, Gradle, npm, yarn, twine, pip e NuGet.
- Desenvolvedores e CodeBuild podem recuperar dependências diretamente do serviço.
AWS Systems Manager (SSM)
- Gerencia sistemas EC2 e locais em escala.
- Outro serviço AWS híbrido.
- Oferece informações operacionais sobre a infraestrutura.
- Conjunto de mais de dez produtos.
- Recursos principais:
- Automação de patches para melhorar a conformidade.
- Execução de comandos em uma frota de servidores.
- Armazenamento de configurações no Parameter Store.
- Funciona com Linux, Windows, macOS e Raspberry Pi OS, anteriormente Raspbian.
Systems Manager - Session Manager
- Inicia um shell seguro em instâncias EC2 e servidores locais.
- Não exige acesso SSH, bastion hosts nem chaves SSH.
- Dispensa a porta 22, melhorando a segurança.
- Suporta Linux, Windows e macOS.
- Envia logs de sessão para S3 ou CloudWatch Logs.
Systems Manager - Parameter Store
- Armazenamento seguro de configurações e segredos, incluindo chaves de API e senhas.
- Serverless, escalável, durável e acessível por SDK.
- Permissões de acesso controladas por IAM.
- Versionamento e criptografia opcional.