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:

    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.