Treinamento AWS ECS: Crie aplicações baseadas em containers com NodeJS

Serviços principais do treinamento: API Gateway, Cognito, AWS ECS, DynamoDB, SNS, SQS, CDK e X-Ray

Sobre o curso:

Se você deseja treinar os colabores da sua empresa sobre como desenvolver aplicações baseadas em containers com NodeJS na AWS, você está no lugar certo!

Nesse treinamento são abordados os seguintes recursos e serviços da AWS:

  • AWS ECS: o Elastic Container Service é o serviço de orquestração de containers da AWS. Com ele é possível gerenciar a execução de microsserviços baseados em containers Docker de forma robusta e escalável. E com o AWS Fargate, o Serverless compute for containers da Amazon Web Services, não é necessário criar instâncias de máquinas EC2, reduzindo o custo de operação de aplicações baseadas em containers;
  • API Gateway REST: utilizando o AWS API Gateway é possível proteger os serviços REST das aplicações com chaves de acesso e quotas, além de fazer validações das requisições;
  • AWS Cognito: para adicionar uma camada de autenticação no acesso às APIs da aplicação, basta utilizar o AWS Cognito em conjunto com o API Gateway;
  • CloudWatch: responsável por concentrar os logs das aplicações e métricas dos recursos utilizados;
  • Alarmes do CloudWatch: com os alarmes do CloudWatch será possível monitorar ocorrências anormais de aplicações e recursos;
  • CloudWatch Container Insights: com o Container Insights é possível agregar informações de monitoramento de aplicações em execução no ECS;
  • DynamoDB: o DynamoDB é um poderoso serviço de gerenciado de banco de dados NoSQL;
  • DynamoDB Stream: com o DynamoDB Stream é possível receber eventos de registros armazenados em tabelas do DynamoDB, sem a necessidade de consultas periódicas;
  • SQS: o SQS, ou Simple Queue Service, é um serviço de filas que permite a comunicação assíncrona entre aplicações, para troca de eventos e mensagens;
  • SNS: com o SNS, ou Simple Notification Service, é possível criar tópicos e publicar mensagens que podem ser recebidas por diversos recursos e aplicações;
  • S3: o S3, ou Simple Storage Service, permite o armazenamento de arquivos sem a necessidade de provisionamento de servidores. Além disso o S3 pode gerar notificações quando arquivos são adicionados a ele;
  • SES: com o SES, ou Simple Email Service, é possível enviar e-mails de forma simples e descomplicada, a partir de aplicações;
  • AWS EventBridge: com o AWS EventBridge, é possível gerar e rotear eventos de forma mais desacoplada, através da criação de regras baseadas em parâmetros altamente configuráveis;
  • X-Ray: o X-Ray é um serviço que permite a analise e depuração de aplicações distribuídas;
  • IAM: o Identity Access Management da AWS permite o gerencimento de papéis e permissões atribuídas a usuários e serviços para acessarem outros recursos da AWS;
  • AWS Cost Explorer: com o Cost Explorer da AWS é possível obter relatórios e gráficos de consumo dos recursos, divididos por tipo de recurso e tags, que podem identificar aplicações e suas partes;

Se você deseja oferecer esse treinamento a seus colaboradores, entre em contato agora mesmo.

Além disso, são utilizadas as seguintes ferramentas, frameworks e linguagens:

  • AWS CDK: utilizando TypeScript como linguagem de programação, o AWS Cloud Development Kit será utilizado para a construção da infraestrutura dos recursos na AWS;
  • NestJS: o NestJS é um poderoso framework para se desenvolver aplicações com o NodeJS. Ele será utilizado como base para a construção dos microsserviços desse treinamento;
  • Postman: ele será utilizado para se comportar como cliente dos serviços a serem consumidos;
  • Visual Studio Code: o Visual Studio Code será a IDE onde todos os projetos serão criados.

Treinamento totalmente prático, com 64 horas de duração, para turmas de até 10 pessoas, por apenas R$ 6.400,00.

Projeto do curso:

Durante o curso será criado um projeto de backend para um e-commerce fictício, contendo os seguintes serviços:

  • Cadastro de produtos;
  • Cadastro de pedidos;
  • Importação de arquivos de notas fiscais;
  • Autenticação de usuário;
  • Notificação dos usuários por e-mail;
  • Geração de eventos de auditoria, como cadastramento de pedidos, produtos e importação de notas fiscais;
  • Monitoramento dos microsserviços e da infraesrutura, com geração de alarmes e notificações.

A seguir um diagrama simplificado da solução:

Arquitetura de exemplo com AWS ECS, DynamoDB, API Gateway, Cognito e  SES

Esse projeto será utilizado para aplicação prática dos conceitos a serem abordados durante o curso. Dessa forma o aluno poderá construir todo o sistema proposto e monitorá-lo na sua conta da AWS.

Ementa completa do curso:

A seguir os tópicos detalhados da ementa do curso.

a) AWS ECS e Fargate:

Nesse tópico serão abordados os seguintes conceitos:

  • Criação dos serviços e definições de tarefas no ECS com AWS CDK;
  • Utilização de imagens dos containers armazenados em repositórios privados no ECR;
  • Definição de memória e CPU para as tarefas;
  • Integração com o Application Load Balancer através de seus target groups;
  • Configuração de auto-scaling para cada serviço;
  • Monitoramento com CloudWatch;
  • Monitoramento com X-Ray;
  • Monitoramento com o CloudWatch Containers Insights;
  • Permissões restritas de acesso a recursos;
  • Persistência de dados no DynamoDB;
  • Integração com o AWS API Gateway REST;
  • Integração com o AWS SNS;
  • Integração com o AWS SQS;
  • Integração com o AWS S3;
  • Integração com o DynamoDB Stream;
  • Integração com o EventBridge;
  • Noções de custo de execução.

b) Virtual Private Cloud:

Nesse tópico serão mostrados os seguintes pontos sobre a utilização de VPC:

  • Criação simplificada da VPC com o AWS CDK;
  • Definição das regras de segurança (security groups) para acesso externo aos microsserviços pelo API Gateway.

c) Application Load Balancer:

Nesse tópico serão abordadas técnicas para construção dos microsserviços, com a utilização do Application Load Balancer:

  • Criação de um único Application Load Balancer com o AWS CDK;
  • Configuração do redirecionamento de requisições aos microsserviços, baseados em portas HTTP;
  • Criação de regras de monitoramento da saúde dos microsserviços, utilizando target groups;
  • Monitoramento de tráfego de requisições aos microsserviços.

d) Elastic Container Registry:

O ECR será utilizado para armazenamento das imagens dos containers dos microsserviços, utilizando características como:

  • Construção dos repositórios privados com o AWS CDK;
  • Armazenamento das imagens dos containers com tags incrementais;
  • Bloqueio de sobrescrita de imagens geradas.

e) API Gateway REST:

Nesse tópico serão abordados os seguintes conceitos:

  • Criação e configuração do API Gateway REST com AWS CDK;
  • Validação de URI;
  • Validação de verbo HTTP;
  • Integração privada com os microsserviços dentro da VPC;
  • Controle de acesso com API key;
  • Autenticação de usuários com AWS Cognito
  • Quotas e limites de acesso diário;
  • Throttling;
  • Path parameters;
  • Query parameters;
  • Logs no CloudWatch;
  • Noções de custo.

f) DynamoDB:

Os seguintes temas serão abordados sobre DynamoDB:

  • Criação e configuração de tabelas com o AWS CDK;
  • Chave primária composta (partition key e sort key);
  • Pesquisas pela partition key;
  • Pesquisas pela partition key e sort key;
  • Configuração com capacidade provisionada;
  • Configuração com capacidade provisionada e auto-scaling;
  • Configuração com capacidade on-demand;
  • Global Secondary Index;
  • Técnicas de single table;
  • Permissões de acesso baseadas no item;
  • Como calcular tamanho de itens e capacidade consumida;
  • Noções sobre custo.

g) Simple Notification Service:

Os seguintes temas serão abordados sobre SNS:

  • Criação de tópicos no SNS com o AWS CDK;
  • Publicação de eventos em tópicos do SNS;
  • Inserção de atributos nas mensagens, para filtros de inscrição;
  • Coleta da identificação das mensagens publicadas para tracing distribuído.

h) Simple Queue Service:

Nesse tópico serão abordados os seguintes temas sobre SQS:

  • Consumo de mensagens da fila pelos microsserviços;
  • Criação, configuração e inscrição das filas em tópicos do SNS, utilizando o AWS CDK;
  • Monitoramento dos gráficos das filas;
  • Técnicas para construção de comunicação assíncrona entre microsserviços, de forma eficiente e escalável;
  • Utilização do mecanismo de Dead Letter Queues para capturar falhas de tratamento de mensagens;
  • Filtragem de mensagens baseados em parâmetros que foram publicados no SNS.

i) Simple Storage Service:

Nesse tópico serão abordados os seguintes temas sobre S3:

  • Criação de buckets para importação de arquivos, utilizando o AWS CDK;
  • Configuração de eventos para publicação de mensagens, a serem gerados a cada importação de arquivo, e tratados pelos microsserviços;
  • Configuração de regras de acesso através de URL pré-assinada.

j) DynamoDB Stream:

Os seguintes temas serão abordados sobre DynamoDB Stream:

  • Configuração do DDB Stream com o AWS CDK, para que inserções, alterações e exclusões de registros gerem eventos;
  • Tratamento de eventos do DDB Stream por funções Lambda, que serão invocadas automaticamente.

k) Alarmes com o CloudWatch:

Aqui serão explicados como criar e monitorar alarmes no CloudWatch baseados em:

  • Logs gerados pelos microsserviços;
  • Quantidade de mensagens em filas do SQS;
  • Tempo de vida de mensagens em filas do SQS;
  • Métricas de tabelas do DynamoDB.

l) AWS Cognito:

Nesse tópico serão abordados os seguintes temas sobre AWS Cognito:

  • Integração com o AWS API Gateway para autenticação de usuários;
  • Utilização de Lambda triggers para interação no fluxo de autenticação;
  • Autenticação OAuth 2.0 das requisições ao API Gateway;
  • Criação e configuração do user pool com o AWS CDK.

m) Simple Email Service:

Nesse tópico serão abordados os seguintes temas sobre AWS SES:

  • Envio de e-mails através de funções Lambda;
  • Configuração dos recursos utilizando o AWS CDK.

n) AWS EventBridge

Serão cobertos os seguintes tópicos sobre AWS EventBridge:

  • Criação do bus para geração e distribuição dos eventos através de regras de encaminhamento, utilizando o AWS CDK;
  • Publicação e recebimento de eventos do bus;
  • Criação de regras para encaminhamento de eventos para outros recursos, como filas do SQS.

o) AWS Identity and Access Management:

Todos os serviços e recursos que forem criados na AWS terão regras de acesso muito bem definidas, através de papéis com políticas de acesso restritas ao que for necessário de ser feito. Tudo isso pode ser obtido com a utilização do AWS IAM, que será configurado durante o processo de criação desses recursos com o AWS CDK.

p) AWS Cloud Development Kit:

Os serviços e recursos que forem criados durante esse curso serão construídos utilizando o AWS CDK, com a linguagem TypeScript. Com ele, esses recursos serão modelados e organizados em stacks do CloudFormation, facilitando a organização e o processo de deployment.

q) AWS X-Ray:

Com o AWS X-Ray será possível criar gráficos, com a interação entre os microsserviços em execução ECS e recursos da AWS, como o S3 e o DynamoDB.

Através dos traces do X-Ray, será possível observar a execução dos microsserviços, tendo discriminados exatamente o consumo de tempo em cada operação ou interação com os serviços da AWS.

Treine os colaboradores da sua empresa:

Esse curso foi construído para oferecer uma experiência prática aos alunos, sem deixar de passar conceitos teóricos.

Turmas e horários flexíveis, de acordo com a necessidade de sua empresa. Entre em contato para maiores informações.

Informações gerais:

  • Horários e dias flexíveis;
  • Oferecimento on-line, por plataformas de ensino a distância;
  • O treinamento total possui 64 horas de aulas teóricas e práticas;
  • Para turmas de até 10 pessoas, o valor total do treinamento é de R$ 6.400,00.

As práticas e conceitos apresentados durante o curso representam o que há de mais moderno na construção de microsserviços na AWS.

Quem sou eu, o instrutor:

  • Trabalhei diariamente com as tecnologias apresentadas nesse curso por quase 4 anos, atuando como desenvolvedor de soluções hospedadas na Amazon Web Services;
  • Tenho lecionado disciplinas de cloud computing, principalmente AWS, em curso de pós-graduação há quase 10 anos;
  • Tenho livros publicados sobre o assunto;
  • Faço parte da comunidade global AWS Community Builder 2020/2021/2022, criada pela própria AWS.