Todas as notas

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.