AWS Certified Cloud Practitioner

Serviços de integração de aplicações

Conheça os serviços de integração de aplicações da AWS que conectam componentes desacoplados: Amazon SQS para filas de mensagens, Amazon SNS para pub/sub e fan-out, Amazon EventBridge para rotear eventos e AWS Step Functions para orquestrar fluxos.

Iniciante 16 minutos 4 Objetivos de aprendizado
  1. Explicar por que os serviços de integração ajudam a criar sistemas desacoplados e orientados a eventos
  2. Descrever o que o Amazon SQS, o Amazon SNS, o Amazon EventBridge e o AWS Step Functions fazem
  3. Comparar uma fila de mensagens (SQS) com um tópico pub/sub (SNS)
  4. Associar uma necessidade de integração descrita ao serviço certo da AWS

Por que isso importa

Uma aplicação moderna raramente é um programa só. São várias partes pequenas que passam trabalho umas para as outras: uma camada web recebe o pedido, outro componente cobra o cartão, um terceiro atualiza o estoque e um quarto envia o e-mail. Se essas partes se chamam diretamente, um componente lento ou que falhou pode travar o sistema inteiro.

Os serviços de integração de aplicações resolvem isso. Eles deixam as partes da aplicação conversarem sem ficarem fortemente ligadas, o que se chama desacoplamento. Os componentes trocam mensagens ou eventos por meio de um serviço gerenciado em vez de se chamarem diretamente, então uma parte pode falhar, ficar lenta ou escalar sozinha sem quebrar o resto. A prova CLF-C02 cobra 4 desses serviços em nível de reconhecimento: Amazon SQS, Amazon SNS, Amazon EventBridge e AWS Step Functions. Seu trabalho é associar uma necessidade descrita ao serviço certo.

Amazon SQS: filas de mensagens

O Amazon Simple Queue Service (Amazon SQS) é uma fila de mensagens totalmente gerenciada. Um produtor coloca mensagens na fila, e um consumidor as retira para processar uma de cada vez, no seu próprio ritmo. A fila guarda as mensagens nesse meio do caminho, então o produtor e o consumidor nunca precisam estar disponíveis no mesmo instante.

Esse é o jeito clássico de desacoplar um front-end rápido de um trabalho de back-end mais lento. Imagine um site que aceita uploads de fotos. Em vez de fazer o usuário esperar enquanto cada foto é redimensionada, o site coloca uma mensagem em uma fila SQS e responde na hora. Um worker separado lê a fila e redimensiona as fotos quando der. Se o worker atrasa ou reinicia, as mensagens esperam em segurança na fila.

O SQS oferece 2 tipos de fila que você precisa reconhecer pelo nome:

  • Filas standard dão a maior taxa de transferência e entrega ao menos uma vez, com ordenação por melhor esforço.
  • Filas FIFO (first-in, first-out) garantem que as mensagens sejam processadas exatamente uma vez, na ordem exata em que foram enviadas.

Pense no SQS como ponto a ponto: cada mensagem é destinada a um consumidor para tratar.

Amazon SNS: pub/sub e fan-out

O Amazon Simple Notification Service (Amazon SNS) é um serviço gerenciado de mensagens publish/subscribe (pub/sub). Os publicadores enviam mensagens para um tópico, e o tópico empurra uma cópia de cada mensagem para todos os assinantes. Isso é muitos para muitos, ou fan-out: uma mensagem chega a vários destinos de uma vez.

Os assinantes podem ser filas SQS, funções AWS Lambda, endpoints HTTP/S e até usuários finais por SMS, e-mail e push para celular. Então o SNS é o serviço a usar quando um único evento precisa disparar várias reações em paralelo, ou quando você precisa enviar notificações para pessoas.

Um desenho muito comum é o SNS junto com o SQS. O publicador envia uma mensagem para um tópico do SNS, e o tópico a entrega a várias filas SQS. Cada fila alimenta um consumidor diferente, então cobrança, envio e analytics reagem ao mesmo evento de pedido sem saber uns dos outros.

O jeito mais rápido de separar SNS e SQS: o SQS é uma fila da qual um consumidor puxa, enquanto o SNS empurra cada mensagem para vários assinantes.

Amazon EventBridge: o barramento de eventos

O Amazon EventBridge é um barramento de eventos serverless. Um barramento de eventos recebe um fluxo de eventos e roteia cada um para o lugar certo com base em regras que você define. Uma regra compara os eventos pelo conteúdo e envia os que combinam para um ou mais destinos, como uma função Lambda, uma fila SQS ou o Step Functions.

O que diferencia o EventBridge é de onde os eventos vêm. Ele recebe eventos das suas próprias aplicações, de vários serviços da AWS e de aplicações SaaS de terceiros como Zendesk ou Shopify. Isso faz dele a escolha natural para sistemas orientados a eventos que reagem a atividade em ferramentas que você não controla.

Um jeito simples de fixar a diferença: o SNS transmite uma mensagem para os seus assinantes, enquanto o EventBridge inspeciona cada evento e o roteia por regras, incluindo eventos de parceiros SaaS.

AWS Step Functions: orquestração de fluxos

Os 3 primeiros serviços movem mensagens ou eventos individuais. O AWS Step Functions é diferente: ele coordena uma sequência inteira de etapas como um único fluxo.

Você define as etapas como um fluxo visual (uma máquina de estados), e o Step Functions as executa em ordem, passa os dados de uma etapa para a próxima, repete as etapas que falham e acompanha o estado de todo o processo. Isso é orquestração. Serve para qualquer tarefa de várias etapas em que ordem e tratamento de erros importam, como processar um pedido, rodar um pipeline de dados ou aprovar uma solicitação.

Pense em um fluxo de pedido: validar o pagamento, depois reservar o estoque, depois enviar a confirmação. Se a reserva do estoque falhar, o Step Functions pode tentar de novo ou seguir por um caminho diferente, tudo sem você escrever o encanamento para rastrear onde o processo está.

Colocando lado a lado

ServiçoO que éUse quando
Amazon SQSFila de mensagens gerenciada (baseada em pull)Você precisa desacoplar componentes e deixar um consumidor processar as mensagens no próprio ritmo
Amazon SNSMensagens pub/sub (baseadas em push)Uma mensagem precisa fazer fan-out para vários assinantes, ou você precisa notificar pessoas por SMS, e-mail ou push
Amazon EventBridgeBarramento de eventos serverlessVocê precisa rotear eventos por regras, em especial de serviços da AWS ou apps SaaS
AWS Step FunctionsOrquestração de fluxosVocê precisa rodar um processo de várias etapas em ordem, com novas tentativas e tratamento de erros

Dicas para a prova

  • Os serviços de integração existem para desacoplar as partes de uma aplicação, de modo que elas falhem e escalem de forma independente.
  • O Amazon SQS é uma fila de mensagens. Um consumidor puxa cada mensagem. Filas standard favorecem a taxa de transferência, filas FIFO garantem a ordem e o processamento exatamente uma vez.
  • O Amazon SNS é pub/sub. Ele faz fan-out de uma mensagem para vários assinantes (filas SQS, Lambda, HTTP, SMS, e-mail, push). SNS junto com SQS é o padrão clássico de fan-out.
  • Separe SQS e SNS: o SQS é uma fila que um consumidor lê, o SNS empurra para vários assinantes de uma vez.
  • O Amazon EventBridge é um barramento de eventos serverless que roteia eventos por regras e consegue receber eventos de aplicações SaaS.
  • O AWS Step Functions orquestra fluxos de várias etapas com ordem, novas tentativas e tratamento de erros embutidos. Escolha ele quando um cenário descrever a coordenação de várias etapas.