NOTAS DE ESTUDO
AWS - Lambda, API Gateway, Batch e Lightsail
EC2:
- Servidores virtuais na nuvem.
- Limitados por RAM e CPU.
- Execução contínua.
- Escalar exige intervenção para adicionar ou remover servidores.
Amazon Lambda:
- Funções virtuais, sem servidores para gerenciar.
- Execuções curtas, limitadas pelo tempo.
- Executa sob demanda.
- Escalabilidade automatizada.
Benefícios do AWS Lambda
- Preços simples:
- Pagamento por requisição e tempo computacional.
- Estas notas registram franquia de 1.000.000 de requisições e 400.000 GB-s de tempo computacional.
- Integração com o conjunto de serviços AWS.
- Orientado a eventos: as funções são invocadas quando necessário.
- Compatível com várias linguagens.
- Monitoramento pelo CloudWatch.
- Possibilidade de aumentar os recursos por função, até 10 GB de RAM.
- Aumentar RAM também melhora CPU e rede.
Linguagens suportadas pelo Lambda
- Node.js
- Python
- Java
- C#
- Ruby
- Custom Runtime API, com implementações da comunidade para Rust, Go e outras linguagens.
- Imagem de contêiner Lambda:
- Precisa implementar a Lambda Runtime API.
- ECS/Fargate são preferíveis para imagens Docker arbitrárias.
Preços do AWS Lambda
- Por chamada:
- Primeiro milhão de requisições gratuito.
- Depois, US$ 0,20 por milhão, ou US$ 0,0000002 por requisição.
- Por duração, em incrementos de 1 ms:
- 400.000 GB-segundos mensais na franquia registrada nestas notas.
- O registro original relaciona essa franquia a 400.00 segundos com 1 GB de RAM e 3.200.00 segundos com 128 MB.
- Após a franquia, US$ 1,00 para 600.000 GB-segundos.
- O baixo custo de execução é um dos motivos da popularidade do Lambda.
API Gateway
Exemplo de API serverless:
Cliente ← API REST → API Gateway ← requisições proxy → Lambda ← CRUD → DynamoDB
- Serviço totalmente gerenciado para criar, publicar, manter, monitorar e proteger APIs.
- Serverless e escalável.
- Suporta APIs RESTful e WebSocket.
- Inclui segurança, autenticação, limitação de requisições, chaves de API e monitoramento.
AWS Batch
- Processamento em lote totalmente gerenciado em qualquer escala.
- Executa centenas de milhares de tarefas computacionais na AWS.
- Uma tarefa em lote tem início e fim, diferentemente de processamento contínuo.
- Inicia instâncias EC2 ou Spot dinamicamente.
- Provisiona a quantidade adequada de processamento e memória.
- Você envia ou agenda tarefas; o Batch cuida do restante.
- As tarefas são definidas como imagens Docker e executadas no ECS.
- Ajuda a otimizar custos e reduzir a atenção necessária à infraestrutura.
Batch e Lambda
- Lambda:
- Limite de tempo.
- Runtimes limitados.
- Espaço temporário em disco limitado.
- Serverless.
- Batch:
- Sem limite de tempo.
- Qualquer runtime empacotado em imagem Docker.
- Usa EBS ou Instance Store para disco.
- Depende de EC2, que pode ser gerenciado pela AWS.
Lightsail
- Servidores virtuais, armazenamento, bancos de dados e rede.
- Preços baixos e previsíveis.
- Alternativa mais simples a EC2, RDS, ELB, EBS e Route 53.
- Adequado para quem tem pouca experiência em nuvem.
- Notificações e monitoramento dos recursos.
- Casos de uso:
- Aplicações web simples, com templates para LAMP, NGINX, MEAN e Node.js.
- Sites, com templates WordPress, Magento, Plesk e Joomla.
- Ambientes de desenvolvimento e teste.
- Possui alta disponibilidade, mas sem Auto Scaling e com integrações AWS limitadas.