
Apresentação sobre o curso e sua dinâmica.
Apresentação sobre o projeto que será construído durante as sessões. Esse projeto usará todos os conceitos ensinados neste curso.
Conceitos introdutórios sobre a AWS e seus principais serviços.
Instruções sobre como preparar a conta AWS necessária para o curso.
Instruções sobre como preparar o ambiente de desenvolvimento, incluindo instalação de ferramentas.
Conceitos introdutórios sobre o AWS CloudFormation e por que ele será usado nesse curso.
Analisando stacks do AWS CloudFormation, incluindo seus eventos, recursos e propriedades.
Explicação sobre o que acontece quando uma stack é excluída do serviço AWS CloudFormation.
Conceitos sobre o AWS Cloud Development Kit (AWS CDK)
Etapas para criar o usuário do AWS IAM e preparar o AWS CDK em seu ambiente com as credenciais criadas.
Como usar o comando AWS CDK para criar o projeto de infraestrutura.
O que será usado neste curso sobre o NestJS e sua integração com os serviços da AWS.
Explicação sobre o primeiro microsserviço a ser criado com o NestJS e como interagir com os serviços da AWS a serem usados por ele.
Como usar o NestJS CLI para criar um projeto.
Algumas configurações para garantir que seu IDE esteja configurado corretamente.
Como executar a aplicação usando o Visual Studio Code IDE.
Usando as anotações do NestJS para criar o health controller.
Criando o Dockerfile para poder gerar a imagem Docker dessa aplicação.
Conceitos sobre repositórios do AWS ECR.
Como criar uma classe no projeto CDK para representar uma stack do CloudFormation.
Como organizar a primeira stack a ser implantada pelo projeto CDK.
Preparando a conta AWS para implantar serviços AWS usando o AWS CDK
Implantando a primeira stack e o repositório do AWS ECR usando comandos do AWS CDK.
Carregando a imagem do Docker do ProductsService usando o Visual Studio Code.
Conceitos sobre o AWS VPC, seus principais componentes e por que ele será usado nesse curso.
O que são zonas de disponibilidade e por que usá-las.
Conceitos básicos sobre grupos de segurança, ou target groups, de um VPC.
O que são sub-redes do AWS VPC, no contexto de uma aplicação baseada em contêiner.
Outro componente do AWS VPC para controlar o tráfego das aplicações por trás do VPC.
O componente do AWS VPC mais importante para aplicações baseadas em contêiner em uma VPC.
Quando usar NAT Gateway e sub-redes privadas em uma VPC.
Uma alternativa ao NAT Gateway.
Criar uma nova stack para armazenar o novo recurso do AWS VPC.
Usar os comandos do AWS CDK para fazer o deploy somente da nova stack.
Descrição de toda a estrutura a ser usada para manter os microsserviços usando o mesmo cluster, mas com diferentes definições de tarefas e permissões para execução.
Conceitos sobre esses dois parâmetros importantes ao definir aplicações baseadas em contêiner.
O que é uma definição de tarefa do ECS e como ela será usada para definir nosso serviço no AWS ECS.
A parte importante de uma aplicação em execução no AWS ECS.
Porque usar os serviços do AWS ECS e como eles serão organizados nesse projeto.
Conceito inicial sobre escalonamento no AWS ECS.
A zona de disponibilidade múltipla no conceito do AWS ECS.
Crie uma nova stack para manter o novo cluster do ECS, que será um recurso compartilhado entre várias stacks.
Implantando o cluster do ECS com o AWS CDK.
Uma parte importante do Application Load Balancer ao criar aplicações baseadas em contêiner.
Este é o componente responsável por monitorar nossas aplicações.
Agora é hora de entender este componente VPC, mas no contexto do Application Load Balancer.
Quais são os recursos restantes para executar o ProductsService em um serviço ECS.
Criando a nova stack para armazenar os recursos da AWS para executar o ProductsServices.
Criando a definição de tarefa do AWS ECS, alocando uma quantidade adequada de memória e CPU para executar o serviço.
Criando o driver de log do serviço para configurá-lo para gravar logs da aplicação no AWS CloudWatch Logs.
Configure a definição de tarefa para usar a imagem do Docker hospedada no repositório do AWS ECR, configure os mapeamentos de porta e o driver de log.
Criando o listener do AWS ALB para o ProductsServices.
Crie o serviço AWS Fargate e configure-o para usar a definição de tarefa criada.
Configure o target group do AWS ALB para monitorar o ProductsService por meio de seu mecanismo de verificação de integridade.
Crie um novo listener no NLB e seu target group para serem usados pelo ProductsService.
Conceitos básicos sobre o AWS API Gateway e por que usá-lo com serviços AWS ECS.
Como integrar o AWS API Gateway com serviços em execução em um serviço AWS ECS protegido por um AWS VPC.
Crie a stack para armazenar os recursos do API Gateway.
Crie o recurso products e seu primeiro método, apenas para testar a integração com o ProductsService.
Como usar a anotação do NestJS para criar um controller na aplicação ProductsService.
Como usar a anotação do NestJS para criar o módulo products.
Neste curso você criará vários microsserviços em TypeScript, usando o framework NestJS e contêineres Docker, construindo uma aplicação backend para interagir com recursos da Amazon Web Services, como os mencionados abaixo. Esses recursos serão criados na AWS usando o AWS Cloud Development Kit (CDK) V2, uma maneira moderna de modelar e provisionar infraestrutura como código (IaC) na AWS. O AWS CDK é uma das melhores ferramentas de infraestrutura como código, ou IaC, para AWS;
NestJS é um poderoso framework NodeJS para construir aplicações do lado do servidor com anotações, controladores, serviços, interceptadores de requisição e muito mais.
Este curso cobrirá os seguintes recursos e ferramentas da AWS com exercícios práticos:
AWS ECS: o Elastic Container Service é o serviço de orquestração de contêineres da AWS. Com este serviço é possível gerenciar a execução de contêineres de microsserviços baseados em Docker de forma robusta e escalável. E com o AWS Fargate, o Serverless compute para contêineres da Amazon Web Services, não é necessário criar instâncias EC2, reduzindo o custo operacional de aplicações baseadas em contêineres;
AWS ECR: com o Elastic Container Registry da AWS é possível criar repositórios privados para armazenar as imagens Docker dos contêineres dos microsserviços;
AWS VPC: com o Virtual Private Cloud é possível proteger a infraestrutura com sub-redes privadas e políticas de segurança de rede para regras de tráfego de entrada e saída;
AWS ALB: o Application Load Balancer da AWS permite que o tráfego HTTP de entrada seja balanceado entre todas as instâncias de aplicação disponíveis, e com os target groups integrados, cada instância pode ser monitorada para receber tráfego somente se estiver saudável;
API Gateway REST: com o AWS API Gateway é possível proteger a API REST da aplicação, além de realizar a validação dos parâmetros da query string e do corpo das requisições;
CloudWatch Logs: responsável por concentrar os logs das aplicações e suas métricas. As aplicações que serão criadas nesse curso gerarão logs no CloudWatch Logs em formato JSON. Dessa forma, podemos injetar parâmetros nos logs, para serem utilizados em consultas no console do AWS CloudWatch Logs Insights;
CloudWatch Alarms: com os alarmes do CloudWatch será possível monitorar as ocorrências anormais das aplicações e recursos da AWS;
CloudWatch Container Insights: com o Container Insights é possível agregar informações de monitoramento das aplicações em execução no AWS ECS, incluindo seus logs;
DynamoDB: o DynamoDB é um poderoso serviço gerenciado de banco de dados NoSQL e não relacional;
SQS: ou Simple Queue Service, é um serviço de fila que permite comunicação assíncrona entre aplicações, para troca de mensagens e eventos;
SNS: com o SNS, ou Simple Notification Service, é possível criar tópicos e publicar mensagens para serem recebidas por diversos recursos e aplicações;
S3: o S3, ou Simple Storage Service, possui um armazenamento de arquivos sem provisionamento de servidor. Além disso, o S3 gera notificações quando arquivos são adicionados a ele;
X-Ray: o AWS X-Ray é um serviço que permite análise e depuração de aplicações distribuídas;
IAM: o Identity and Access Management da AWS permite o gerenciamento de funções e permissões, concedidas a usuários e serviços para acessar outros recursos da AWS;
AWS Cost Explorer: com o Cost Explorer da AWS é possível gerar gráficos de custo sobre o consumo de recursos, divididos por tipos de recursos e tags, que podem identificar aplicações e suas partes.
Esses recursos serão criados na AWS usando o AWS Cloud Development Kit - CDK V2, uma maneira moderna de modelar e provisionar infraestrutura como código na AWS usando a linguagem TypeScript. O AWS CDK é ideal se você deseja trabalhar como DevOps na infraestrutura das aplicações hospedadas na AWS.
Com isso você também aprenderá a usar o AWS SDK V3 para JavaScript, que é um conjunto de bibliotecas desenvolvidas pela própria AWS para acessar seus serviços através de aplicações, como as que serão desenvolvidas aqui utilizando o NestJS. Então você aprenderá a integrar o AWS SDK V3 em uma aplicação construída com o NestJS.
Com o AWS SDK V3 para JavaScript é muito fácil acessar os recursos da AWS de forma elegante, criando operações para serem executadas de forma concorrente.
Se você já possui certificação AWS e está procurando experiência prática, você pode obtê-la com esse curso, através dos exercícios que serão oferecidos aqui.
Esse curso tem um bom equilíbrio entre exercícios teóricos e práticos. Você pode esperar explicações detalhadas com diagramas e implementações bem guiadas, sempre com um propósito bem definido.
Observação: Este curso não tem como objetivo prepará-lo para um exame de certificação AWS. Existem outros cursos que são específicos para certificações AWS.
Também incluso no pacote, ao adquirir este curso:
Suporte ao aluno, através da seção de perguntas e respostas da plataforma;
Código fonte do projeto para ajudar no início do curso;
Quizzes para testar seus conhecimentos sobre os tópicos do curso;
Exercícios práticos para praticar, com soluções detalhadas oferecidas pelo instrutor;
Código de cupom da JetBrains. Ele dá acesso a qualquer IDE da JetBrains de sua escolha por 6 meses.
Sobre o instrutor:
Trabalho diariamente com as tecnologias apresentadas neste curso desde 2016, atuando como desenvolvedor de soluções hospedadas na AWS;
Fui professor de computação em nuvem e assuntos mobile, incluindo AWS, em um curso de pós-graduação durante quase 10 anos;
Publiquei livros sobre o assunto;
Faço parte do AWS Community Builder desde 2020, uma comunidade global criada pela Amazon Web Services.
Créditos pela música usada na apresentação do curso: Bensound - Código da licença: XCXKL7JY4EEDTSTM