- Publicado em
O que é AWS Lambda? Computação sem servidor para aplicações
- Autores
O que é AWS Lambda? Computação sem servidor para aplicações
Executar código de backend tradicionalmente significa provisionar servidores, escalar recursos e cuidar da disponibilidade.
Com AWS Lambda, você pode executar código sem gerenciar nenhuma infraestrutura, pagando apenas pelo que usa.
O que é AWS Lambda?
AWS Lambda é um serviço de computação sem servidor da Amazon Web Services.
Em vez de executar aplicações em servidores dedicados, você escreve funções que são executadas em resposta a eventos como:
- Solicitações HTTP por meio do Amazon API Gateway
- Uploads de arquivos para o Amazon S3
- Atualizações do banco de dados no Amazon DynamoDB
- Tarefas agendadas (cron jobs) via Amazon EventBridge ou Amazon CloudWatch Events
Seu código é executado em contêineres efêmeros gerenciados inteiramente pela AWS.
Você simplesmente fornece o código da função e a configuração. O Lambda cuida do restante.
Por que usar AWS Lambda?
- Sem gerenciamento de servidores → Sem provisionamento, aplicação de patches ou dimensionamento de servidores.
- Escalabilidade automática → Executa instantaneamente quantas instâncias forem necessárias, de uma solicitação a milhares por segundo.
- Pagamento por uso → Cobrança apenas pelo tempo de computação (milissegundos) e pelas solicitações, não pelo tempo ocioso.
- Suporte a várias linguagens e ambientes → Node.js, Python, Java, Go, Ruby, .NET e ambientes de execução personalizados.
- Integração fácil → Funciona perfeitamente com Amazon S3, Amazon DynamoDB, Amazon SNS, Amazon API Gateway e outros serviços da AWS.
- Alta disponibilidade integrada → Executa em várias zonas de disponibilidade para tolerância a falhas.
Casos de uso comuns
- APIs web → Combine Lambda com Amazon API Gateway para criar APIs REST ou GraphQL sem servidor.
- Processamento de arquivos → Processe imagens, vídeos ou documentos automaticamente após uploads para o Amazon S3.
- Tarefas agendadas → Substitua servidores cron por Amazon CloudWatch Events ou Amazon EventBridge para executar tarefas periódicas.
- Chatbots e microsserviços → Execute lógica leve de backend orientada a eventos em escala usando serviços como Amazon SNS ou Amazon SQS.
AWS Lambda comparado a servidores tradicionais
- Servidores tradicionais → Exigem provisionamento, monitoramento e dimensionamento para picos de carga usando serviços como Amazon EC2.
- AWS Lambda → Totalmente gerenciado, escala automaticamente e cobra apenas pelo tempo de execução.
Limitações e considerações
- Inicializações a frio → Funções que não foram invocadas recentemente podem apresentar um pequeno atraso (uma “inicialização a frio”) quando a AWS inicia um novo contêiner.
- Limites de tempo → Cada invocação tem um tempo máximo de execução (atualmente 15 minutos). Tarefas longas podem precisar de outro serviço, como Amazon ECS ou Amazon EC2.
- Limites de memória e CPU → A alocação de memória tem um limite de alguns GB (atualmente 10 GB), com CPU proporcional à memória. Cargas de computação intensiva podem atingir esses limites.
- Armazenamento efêmero → O armazenamento padrão
/tmpé limitado (512 MB por padrão, expansível até 10 GB), portanto arquivos temporários grandes exigem armazenamento externo, como Amazon S3 ou Amazon EFS. - Dependência do fornecedor → A integração profunda com os serviços da AWS pode dificultar a migração para outro provedor de nuvem.
- Restrições de rede → Acessar recursos dentro de uma VPC acrescenta complexidade à configuração e pode aumentar a latência das inicializações a frio.
- Complexidade de depuração → A depuração local e o rastreamento podem ser mais difíceis em comparação com um ambiente de servidor tradicional.
Conclusão
AWS Lambda permite que desenvolvedores criem aplicações orientadas a eventos sem gerenciar servidores.
Seja para um backend rápido de uma aplicação web, um processador de arquivos em tempo real ou um pipeline de dados, o Lambda oferece computação sob demanda que escala automaticamente.