
1. AppSync
1.1. Definição
1.1.1. serviço gerenciado que facilita a criação de APIs GraphQL escaláveis e seguras, permitindo que aplicativos web e mobile acessem, manipulem e sincronizem dados de várias fontes.
1.2. O que faz
1.2.1. Permite a criação de APIs GraphQL para consultar e modificar dados de forma eficiente.
1.2.2. Sincroniza dados em tempo real entre aplicativos e diferentes fontes de dados.
1.2.3. Oferece controle de acesso baseado em identidades, como AWS IAM, Amazon Cognito, OpenID Connect e chaves de API.
1.3. Características
1.3.1. GraphQL gerenciado
1.3.1.1. Suporte completo para GraphQL, permitindo consultas flexíveis.
1.3.2. Integração com serviços AWS
1.3.2.1. Conecta-se facilmente ao DynamoDB, Lambda, RDS, Elasticsearch, entre outros.
1.3.3. Suporte a tempo real e offline
1.3.3.1. Sincronização automática de dados entre clientes e servidores.
1.3.4. Segurança embutida
1.3.4.1. Autenticação e autorização integradas com múltiplos provedores.
1.4. Quando usar
1.4.1. Quando precisar criar uma API GraphQL escalável e segura.
1.4.2. Para sincronizar dados entre dispositivos e armazenamentos em tempo real.
1.4.3. Em aplicações móveis e web que precisam de acesso offline e atualização automática de dados.
1.4.4. Para consolidar múltiplas fontes de dados em uma única API unificada.
2. Fargate
2.1. Definição
2.1.1. serviço de computação serverless para contêineres que elimina a necessidade de gerenciar servidores ou clusters, permitindo executar aplicações em contêineres sem configurar instâncias EC2.
2.2. O que faz
2.2.1. Proporciona execução de contêineres sem a necessidade de provisionamento ou gerenciamento de servidores.
2.2.2. Funciona com Amazon ECS (Elastic Container Service) e Amazon EKS (Elastic Kubernetes Service).
2.2.3. Escala automaticamente os contêineres conforme a demanda.
2.2.4. Cobra apenas pelos recursos computacionais consumidos pelos contêineres em execução.
2.3. Características
2.3.1. Serverless
2.3.1.1. Não requer gerenciamento de infraestrutura subjacente.
2.3.2. Isolamento
2.3.2.1. Cada tarefa Fargate executa em um ambiente isolado de outros workloads.
2.3.3. Escalabilidade automática
2.3.3.1. Ajusta dinamicamente os recursos de CPU e memória conforme a necessidade.
2.3.4. Integração com serviços AWS
2.3.4.1. Funciona com ECS, EKS, CloudWatch, IAM, entre outros.
2.3.5. Modelo de cobrança pay-as-you-go
2.3.5.1. Pagamento apenas pelos recursos usados.
2.3.6. Compatível com arquiteturas baseadas em microsserviços
2.4. Quando usar
2.4.1. Quando não deseja gerenciar servidores EC2 para executar contêineres.
2.4.2. Para aplicações baseadas em microsserviços que precisam de escalabilidade automática.
2.4.3. Quando há necessidade de maior segurança e isolamento para os workloads.
2.4.4. Para aplicações que têm demandas variáveis, aproveitando a escalabilidade automática do Fargate.
2.4.5. Quando quer simplificar a infraestrutura de contêineres e focar apenas na aplicação.
3. Lambda
3.1. Definição
3.1.1. serviço de computação serverless da AWS que executa código em resposta a eventos, sem a necessidade de gerenciar servidores.
3.2. O que faz
3.2.1. Executa código em resposta a eventos como alterações em dados no S3, atualizações em tabelas do DynamoDB, chamadas HTTP via API Gateway, entre outros.
3.2.2. Escala automaticamente de acordo com a demanda.
3.2.3. Cobra apenas pelo tempo de execução do código, sem custo por tempo ocioso.
3.3. Características
3.3.1. Serverless
3.3.1.1. Não requer provisionamento ou gerenciamento de servidores.
3.3.2. Baseado em eventos
3.3.2.1. Pode ser acionado por serviços da AWS, aplicações web, filas, mensagens, entre outros.
3.3.3. Suporte a múltiplas linguagens
3.3.3.1. Python, Node.js, Java, Go, C#, Ruby e mais.
3.3.4. Execução limitada
3.3.4.1. Tempo máximo de execução de 15 minutos por invocação.
3.3.5. Escalabilidade automática
3.3.5.1. Ajusta dinamicamente a quantidade de instâncias necessárias para atender à demanda.
3.3.6. Preço baseado no tempo de execução e memória consumida.
3.4. Quando usar
3.4.1. Para executar código em resposta a eventos sem precisar gerenciar infraestrutura.
3.4.2. Processamento de arquivos em tempo real (por exemplo, redimensionamento de imagens ao serem enviadas ao S3).
3.4.3. Automação de tarefas e integração entre serviços AWS.
3.4.4. Construção de aplicações serverless junto com API Gateway e DynamoDB.
3.4.5. Construção de aplicações serverless junto com API Gateway e DynamoDB.