Criando microsserviços em Java com AWS ECS Fargate e AWS CDK
- Descrição
- Currículo
- FAQ
- Revisões
Nesse curso você irá criar dois microservices em Java utilizando Spring Boot em containers Docker, construindo uma aplicação de backend para interagir com recursos da Amazon Web Services, como os citados a seguir. Esses recursos serão criados na AWS utilizando o AWS Cloud Development Kit (CDK), uma forma moderna de modelamento e provisionamento de infraestrutura na AWS. O AWS CDK é um das melhores ferramentas de infraestrutura como código, ou IaC, para a 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 Java 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 de backend baseadas em containers;
-
AWS RDS: o Relational Database Service é um recurso que permite a criação de instâncias de banco de dados, com serviços como backups automáticos e diretrizes de segurança de acesso;
-
AWS SNS: o Simple Notification Service é um recurso muito utilizado para criação de mecanismos de notificações para diversas aplicações ou outros serviços;
-
AWS SQS: o Simple Queue Service é um recurso que permite a criação de filas para entrega de mensagens de forma rápida e confiável, possibilitando a criação de um mecanismo assíncrono de comunicação entre aplicações;
-
AWS DynamoDB: esse é um poderoso serviço de banco de dados NoSQL, que permite a criação de tabelas, sem a necessidade de se criar um servidor, com características de exclusão automática de dados, escalabilidade e muito mais;
-
AWS S3: o Simple Storage Service permite a criação de buckets para armazenamento seguro de arquivos. Além disso é possível configurar eventos a serem gerados quando esses arquivos são colocados nesses buckets, fazendo com outras aplicações sejam avisadas desses eventos.
-
AWS CDK: todos os recursos serão criados na AWS utilizando o AWS Cloud Development Kit – CDK, uma forma moderna de modelagem e criação de infraestrutura na AWS, utilizando a linguagem Java.
Com isso você aprenderá também a utilizar o AWS SDK em Java, que é um conjunto de bibliotecas desenvolvido pela própria Amazon Web Services para utilizar seus serviços. Você também aprenderá como monitorar os serviços através de gráficos e métricas, além de utilizar o CloudWatch Insights, para visualização e pesquisa de logs das aplicações. Aprenda tudo isso com explicações detalhadas e exercícios práticos, onde você poderá testar suas habilidades e aplicar os conceitos aprendidos. Ao final desse curso, você estará confiante para arquitetar e desenvolver serviços na AWS de forma escalável e robusta.
Esses recursos serão criados na AWS utilizando o AWS Cloud Development Kit – CDK, uma forma moderna de modelagem e provisionamento de infraestrutura na AWS, utilizando a linguagem Java. O AWS CDK é ideal se você deseja trabalhar na área de DevOps e Infrastructure as Code.
Se você já possui certificação da AWS e está procurando uma experiência prática, você pode obter isso com esse curso, através dos exercícios que serão oferecidos aqui.
Você também poderá baixar os códigos fontes dos projetos que serão desenvolvidos ao longo do curso.
Esse curso possui um bom balanceamento entre teoria e prática. Então você pode esperar explicações detalhadas com diagramas e implementações bem guiadas, sempre com um propósito bem definido.
Aprenda a testar as aplicações localmente, emulando alguns recursos da Amazon Web Services na sua máquina de desenvolvimento com o LocalStack.
Observação: o intuito desse curso não é te preparar para uma prova de certificação da AWS. Existem outros cursos que são específicos para as certificações da AWS.
O que também está incluído no pacote ao adquirir o curso:
-
Suporte ao aluno, através da sessão de perguntas e respostas da plataforma;
-
Código fonte de tudo o que será feito, disponível para download;
-
15 quizzes para você testar seu conhecimento do que foi ensinado;
-
9 exercícios práticos para você praticar, com soluções detalhadas feitas pelo instrutor;
-
Legendas profissionais nos vídeos, corrigidas e adaptadas corretamente pelo próprio instrutor. Não são legendas geradas automaticamente.
Quem sou eu, o instrutor:
-
Trabalho diariamente com as tecnologias apresentadas nesse curso por quase 4 anos, atuando como desenvolvedor de soluções hospedadas na AWS;
-
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 Amazon Web Services.
Créditos para as músicas utilizadas no curso: Bensound
-
1Conteúdo do cursoVídeo Aula
Apresentação do projeto que será desenvolvido ao longo do curso, utilizando os serviços da AWS.
-
2Conceitos iniciais de AWSVídeo Aula
Introdução aos serviços da AWS que serão utilizados ao longo desse curso.
-
3Preparação do ambienteVídeo Aula
Preparando o ambiente de desenvolvimento necessário para o curso, inclusindo a conta da AWS, IDE e bibliotecas a serem instaladas.
-
4[OBRIGATÓRIO] - Atualização de versões de biliotecasTexto
-
5Criando o primeiro projetoVídeo Aula
Criando o primeiro projeto utilizando o Spring Initializr
-
6Projeto base com versão definida do Java e do Spring BootTexto
-
7Abrindo o projeto no IntelliJ IDEAVídeo Aula
Abrindo o projeto no IntelliJ IDEA e analisando a sua estrutura.
-
8Criando o primeiro endpoint RESTVídeo Aula
Criando o primeiro endpoint REST para testar o serviço quando for feito o deploy dele na AWS.
-
9Anotações para criar um controller e um endpointQuestionário
Descreva as anotações necessárias em uma classe, para criar um controller, e em seus métodos, para criar um endpoint.
-
10Parâmetros e retornos de uma operaçãoQuestionário
Relembre como definir parâmetros e retornos de uma operação REST.
-
11Visão geral do DockerVídeo Aula
Conceitos iniciais de Docker e porque ele será utilizado nesse curso.
-
12Criando o repositório no Docker HubVídeo Aula
Criando o repositório do projeto no Docker Hub.
-
13Preparando o projeto para gerar a imagem do DockerVídeo Aula
Configurando o IntelliJ IDEA
-
14Executando a aplicação em um container Docker no IntelliJ IDEAVídeo Aula
Criando um container para executar a imagem Docker de dentro do IntelliJ IDEA.
-
15Introdução ao AWS CloudFormationVídeo Aula
Apresentação dos conceitos iniciais de CloudFormation, necessários para a construção da infraestrutura a ser utilizada pelos serviços que serão criados com os recursos da AWS.
-
16Analisando stacks, eventos, recursos e parâmetrosVídeo Aula
Entendendo as ferramentas de análise de stacks do console da AWS.
-
17StacksQuestionário
Stacks, eventos, recursos e parâmetros.
-
18Apagando uma stackVídeo Aula
Entendo o que acontece quando uma stack é apagada.
-
19Excluindo uma stackQuestionário
Entenda o que acontece quando uma stack é excluída.
-
20Criação do usuário IAM para o AWS CDKVídeo Aula
Nessa sessão será mostrado como criar o usuário no AWS IAM para configurar o terminal do AWS CDK na sua máquina de desenvolvimento.
-
21[OBRIGATÓRIO] - Migração para o AWS CDK 2.xTexto
Siga esses passos para migrar para o AWS CDK 2.x
-
22Instalação do AWS CDKVídeo Aula
Revisando a preparação do ambiente de desenvolvimento para se trabalhar com AWS CDK.
-
23Criando o projeto com CDKVídeo Aula
Criação do projeto com AWS CDK que será utilizado até o fim do curso para a criação dos recursos na AWS, de forma programática.
-
24Entendendo a estrutura do projeto com CDKVídeo Aula
-
25AWS CDKQuestionário
O que é AWS CDK?
-
26Arquitetura com AWS ECS e FargateVídeo Aula
Apresentação da arquitetura para executar a primeira aplicação, utilizando o AWS ECS com Fargate.
-
27VPC - Virtual Private CloudVídeo Aula
Descrição do que é o recurso Virtual Private Cloud da AWS
-
28ClusterVídeo Aula
Apresentação de conceitos sobre clusters do AWS ECS.
-
29AWS ECS com FargateQuestionário
Sobre a criação de um cluster com AWS Fargate.
-
30Task e Task definitionVídeo Aula
Apresentação de conceitos sobre o que são tasks e task definitions dentro do AWS ECS.
-
31Task e Task definition do AWS ECSQuestionário
Conceitos sobre o que são tarefas e definições de tarefas no AWS ECS
-
32ServiceVídeo Aula
Apresentação do que é um service dentro do AWS ECS.
-
33Gerenciamento das instâncias pelo serviçoQuestionário
Como o serviço do AWS ECS gerencia as instâncias da aplicação.
-
34Auto scalingVídeo Aula
Conceitos sobre como funciona o recurso de auto scaling no AWS ECS.
-
35Sobre auto-scalingQuestionário
Um pouco sobre a importância do auto-scaling.
-
36ALB - Application load balancer, target group e security groupVídeo Aula
Conceitos do que é application load balancer, target group e security group.
-
37Application load balancerQuestionário
Razões para se utilizar um ALB em conjunto com o serviço do AWS ECS.
-
38Criação da stack da VPCVídeo Aula
Criação da VPC com o AWS CDK.
-
39[OPCIONAL] - Reduzindo custos na criação da VPCTexto
Dica de como reduzir custos na AWS, em relação à VPC.
-
40Criação da stack do cluster com AWS CDKVídeo Aula
Criação de um cluster do ECS com o AWS ECS.
-
41Criação do application load balancer e demais recursosVídeo Aula
Criação de um application load balancer com o AWS CDK, para se integrar com o service do AWS ECS.
-
42[OPCIONAL] - Definindo um IP público para a instância da aplicaçãoTexto
Dica de como definir um IP público para a instância da aplicação para tráfego de saída para a Internet.
-
43Configuração do target groupVídeo Aula
Configuração do target group do application load balancer para monitorar as instâncias da aplicação.
-
44Criação das regras de auto scalingVídeo Aula
Configuração das regras de auto scaling da aplicação dentro do AWS ECS.
-
45Deployment dos recursos com o AWS CDKVídeo Aula
Deployment na AWS dos recursos criados com o AWS CDK.
-
46Sobre cobranças na conta da AWSVídeo Aula
-
47Analisando as stacks criadas no AWS CloudFormationVídeo Aula
Análise das stacks criadas com o AWS CDK no AWS CloudFormation.
-
48Stacks e suas dependênciasQuestionário
Sobre a organização dos recursos em stacks e suas dependências
-
49Gráficos de CPU e memóriaVídeo Aula
Análise do consumo de CPU e memória da aplicação em execução no serviço do AWS ECS.
-
50Definição da tarefaVídeo Aula
Análise da definição da tarefa do AWS ECS.
-
51ServiceVídeo Aula
Análise do serviço em execução no AWS ECS.
-
52Logs da aplicação no CloudWatch InsightsVídeo Aula
Visualização dos logs da aplicação no CloudWatch Log Insights.
-
53Vantagens do CloudWatch InsightsQuestionário
Um serviço muito além de um simples visualizador de logs.
-
54Criando e executando uma nova versão da aplicaçãoVídeo Aula
Criação de uma nova definição de tarefa e execução no AWS ECS.
-
55Criando e executando uma nova versão da aplicaçãoTexto
-
56[OPCIONAL] - Destruindo os recursos criadosVídeo Aula
Como destruir todos os recursos criados com o AWS CDK.
-
57Console do Application Load Balancer e suas métricasVídeo Aula
Monitoramento do Application Load Balancer através de seu console na AWS.
-
58Target Group e o health checkVídeo Aula
Monitoramento das requisições à aplicação, através do console do target group, e da saúde da aplicação, através do health check.
-
59Security group e as regras de segurançaVídeo Aula
Visualização das regras de segurança de entrada através do console do security group.
-
60Monitoramento da aplicação pelo ALB e target groupQuestionário
Gráficos e métricas do ALB e do target group.
-
61Preparando uma nova versão da aplicaçãoVídeo Aula
Como preparar uma nova versão da aplicação com o AWS CDK.
-
62Nova revisão da definição da tarefaVídeo Aula
Como é o processo de criação de uma nova revisão da definição da tarefa do AWS ECS.
-
63Atualização do service com a nova revisão da tarefaVídeo Aula
Como é o processo de atualização do serviço do AWS ECS com a nova revisão da tarefa.
-
64Monitoramento do target group das novas instânciasVídeo Aula
Monitoramento do target group durante o processo de atualização da tarefa do AWS ECS.
-
65Destruição das instâncias antigasVídeo Aula
Monitoramento da destruição automática das instâncias antigas da aplicação.
-
66O trabalho do target group no processo de deployment de uma nova versãoQuestionário
Como o target group é utilizado em um novo deployment.
-
67Arquitetura da aplicação com o AWS RDSVídeo Aula
Detalhes da arquitetura da aplicação com o AWS RDS.
-
68Criando a instância do RDS com AWS CDKVídeo Aula
Criação da instância do AWS RDS com o AWS CDK.
-
69Tamanho da instância do RDSTexto
-
70[OPCIONAL] - Configurando a instância do RDS na sub-rede pública da VPCTexto
-
71Vantagens da utilização do AWS RDSQuestionário
Utilizar o AWS RDS ao invés do banco instalado em uma EC2
-
72Configurando a aplicação para a acessar o banco de dadosVídeo Aula
Configuração do aplicação com Spring Boot para acessar a instância do AWS RDS.
-
73Criando o modelo de produtosVídeo Aula
Criação da classe para ser o modelo da tabela no AWS RDS.
-
74Criando o repositório de produtosVídeo Aula
Criação do repositório na aplicação Spring Boot para facilitar operações de acesso à tabela de produtos.
-
75Criando o controller de produtosVídeo Aula
Criação do Spring Boot controller de produtos com as operações básicas.
-
76Teste do controller de produtos com banco de dados localVídeo Aula
-
77Criando uma nova definição de tarefa do ECS para acessar o RDSVídeo Aula
Criando a nova definição da tarefa com parâmetros para acessar o banco de dados no AWS RDS.
-
78Testando o CRUD de produtosVídeo Aula
-
79Adicionando um novo campo na tabela de produtosTexto
-
80Arquitetura da aplicação com AWS SNSVídeo Aula
Apresentação da arquitetura da aplicação na AWS, mostrando como uma aplicação baseada em container no AWS ECS pode publicar mensagens no AWS SNS, incluindo sua permissão no papel do IAM.
-
81Criando o tópico do SNS com AWS CDKVídeo Aula
Criação do tópico do AWS SNS utilizando o AWS CDK.
-
82Configurando a aplicação para acessar o novo tópicoVídeo Aula
Configuração da aplicação Spring Boot para acessar o tópico do AWS SNS.
-
83Criando os modelos para representar os eventosVídeo Aula
Criação das classes de modelos a serem utilizados na publicação dos eventos de produtos no AWS SNS.
-
84Criando o serviço para publicar eventos no AWS SNSVídeo Aula
Criação do serviço do Spring Boot para a publicação dos eventos no tópico do AWS SNS.
-
85Teste do publicador de eventos do SNS com LocalStackVídeo Aula
-
86Atribuindo a permissão à tarefa do ECS para acessar o SNSVídeo Aula
Configuração do papel do AWS IAM assumido pela tarefa do AWS ECS para que a aplicação possa ter permissão de publicar mensagens no tópico do AWS SNS.
-
87Testando o envio de notificações pelo AWS SNSVídeo Aula