Introdução
Este laboratório demonstra como criar uma infraestrutura sem servidor que pode monitorar sua infraestrutura da nuvem e responder a eventos.
Na primeira parte deste laboratório, você aprenderá como usar uma função do AWS Lambda com o Amazon CloudWatch Events para reagir à criação de uma instância do Amazon EC2.
Na segunda parte deste laboratório, você criará uma função do AWS Lambda que pode monitorar um site e alertar quando ele não estiver respondendo corretamente.
Tópicos abordados
Ao final do laboratório, você conseguirá:
- Criar uma função do AWS Lambda
- Configurar o Amazon CloudWatch Events
- Configurar um alarme do Amazon CloudWatch
- Configurar o Amazon Simple Notification Service (SNS) para enviar notificações
Conhecimentos técnicos necessários
Para concluir este laboratório, será necessário estar familiarizado com o Amazon EC2. É necessário saber programar em Node.js, embora o código completo da solução esteja incluído.
Lista de ícones
Vários ícones são usados neste laboratório para chamar a atenção para diferentes tipos de instruções e observações. A lista a seguir explica a finalidade de cada ícone:
- Saída esperada: um exemplo que você pode usar para verificar a saída de um comando ou arquivo editado.
- Observação: uma sugestão, dica ou orientação importante.
- Atualizar: um momento em que talvez seja necessário atualizar uma página ou lista do navegador da web para mostrar novas informações
Outros serviços da AWS
Os serviços da AWS que não forem necessários para este laboratório ficarão desativados pelas políticas do IAM durante o tempo de acesso ao laboratório. Além disso, os recursos dos serviços usados neste laboratório são apenas aqueles indispensáveis. Em alguns casos, há ainda menos recursos, o que é um aspecto intencional do projeto do laboratório. Espere erros ao acessar outros serviços ou executar ações além das fornecidas neste guia de laboratório.
Apresentação das tecnologias
AWS Lambda
O AWS Lambda é um serviço computacional que oferece capacidade computacional redimensionável na nuvem para facilitar a computação em escala da web para os desenvolvedores. Você pode fazer upload do código para o AWS Lambda e o serviço pode executá-lo para você usando a infraestrutura da AWS. O AWS Lambda é compatível com várias linguagens de programação: Node.js, Java ou Python.
Depois que você faz upload do código e cria uma função do Lambda, o AWS Lambda cuida do provisionamento e do gerenciamento dos servidores que você usa para executar o código. Neste laboratório, você usará o AWS Lambda como um serviço computacional orientado a eventos, que executará o código em resposta a alterações nos dados e no tópico do SNS e em um bucket do Amazon S3.
Você pode usar o AWS Lambda de duas maneiras:
- Como um serviço computacional orientado a eventos, em que o AWS Lambda executa seu código em resposta a eventos, como o upload de arquivos de imagem que você verá neste laboratório.
- Como um serviço computacional para executar o código em resposta a solicitações HTTP usando o Amazon API Gateway ou chamadas de API.
O Lambda repassa para você os benefícios financeiros do dimensionamento da Amazon. O AWS Lambda executa o código apenas quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. Com esses recursos, é possível usar o Lambda para criar facilmente invocações de processamento de dados para serviços da AWS, como o Amazon S3 e o Amazon DynamoDB, processar dados de streaming armazenados no Amazon Kinesis ou criar o próprio back-end que opera com o dimensionamento, o desempenho e a segurança da AWS.
Blueprints do AWS Lambda
Os blueprints são exemplos de configurações de origens de eventos e funções do Lambda que fazem um processamento mínimo para você. A maioria dos blueprints processa eventos de origens específicas, como o Amazon S3 ou o DynamoDB. Por exemplo, o blueprint s3-get-object inclui um código de exemplo que processa um evento criado por objeto publicado pelo Amazon S3, que o Lambda recebe como parâmetro.
Ao criar uma nova função do AWS Lambda, você pode usar o blueprint mais adequado ao seu cenário. Em seguida, você pode personalizar o blueprint conforme necessário. Não é preciso usar um blueprint (você pode criar uma função do Lambda e configurar uma origem de evento separadamente).
Amazon CloudWatch
O CloudWatch Events oferece uma transmissão quase em tempo real de eventos do sistema que descreve as mudanças nos recursos da AWS. Usando regras simples que você pode configurar em alguns minutos, é possível rotear facilmente cada tipo de evento para um ou mais destinos, incluindo funções do AWS Lambda com menos sobrecarga e maior eficiência. Você pode pensar no CloudWatch Events como o sistema nervoso central do seu ambiente da AWS. Ele é conectado a cada um dos serviços compatíveis e fica ciente das mudanças operacionais à medida que elas acontecem. Em seguida, guiado por suas regras, ele ativa funções e envia mensagens para responder ao ambiente.
Amazon Simple Notification Service (SNS)
O Amazon SNS é um serviço de notificações que fornece vantagens significativas com relação à complexidade de desenvolver soluções de sistemas de mensagens personalizadas ou às despesas da compra de softwares licenciados para sistemas que precisam ser gerenciados e mantidos no site. Ele é executado na infraestrutura de rede e nos data centers comprovados da Amazon, portanto, os tópicos estarão disponíveis sempre que os aplicativos precisarem deles. Para impedir que mensagens sejam perdidas, todas as mensagens publicadas no Amazon SNS são armazenadas de modo redundante em vários servidores e data centers. O Amazon SNS permite que aplicativos e usuários finais em diferentes dispositivos recebam notificações por push móvel, HTTP/HTTPS, e-mail/JSON por e-mail, filas do AWS SMS ou do Amazon SQS ou funções do AWS Lambda.