O blog da AWS

Amazon SQS completa 20 anos: Duas décadas de mensageria confiável em escala

Por Esra Kayabalı, Principal Solutions Architect na AWS.

Em 13 de julho de 2006, lançamos o Amazon Simple Queue Service (Amazon SQS) como um dos três primeiros serviços disponíveis para clientes, juntamente com o Amazon EC2 e o Amazon S3. Aprendemos em primeira mão que sistemas distribuídos precisam de uma maneira confiável de passar mensagens entre componentes sem criar dependências rígidas. Se um serviço chamasse outro diretamente e esse serviço estivesse lento ou indisponível, as falhas se propagavam em cascata por todo o sistema. O enfileiramento de mensagens resolveu isso permitindo que os serviços se comunicassem de forma assíncrona: um produtor podia colocar uma mensagem em uma fila e seguir em frente, enquanto um consumidor a pegava quando estivesse pronto. Essa abordagem evitava que falhas de serviços individuais afetassem o resto do sistema.

Quando o Amazon SQS foi lançado publicamente em julho de 2006, ele tornou esse padrão disponível para todos os clientes da AWS. Vinte anos depois, essa função central, desacoplar produtores de consumidores, permanece como a razão pela qual os clientes usam o SQS. A escala, o desempenho e os controles operacionais em torno dele parecem muito diferentes agora, no entanto.

Jeff Barr cobriu os primeiros 15 anos de marcos do SQS em seu post de 15º aniversário, desde o limite original de mensagem de 8 KB em 2006 até filas FIFO, criptografia do lado do servidor e integração com Lambda. Nos últimos cinco anos, continuamos a escalar o SQS, adicionamos padrões de segurança mais fortes e introduzimos novos recursos que abordam padrões de carga de trabalho cada vez mais complexos.

Principais marcos entre 2021 e 2026

Modo de alta taxa de transferência para filas FIFO (2021): Em maio de 2021, lançamos a disponibilidade geral do modo de alta taxa de transferência para filas FIFO, suportando até 3.000 transações por segundo (TPS) por ação de API, um aumento de dez vezes em relação ao limite anterior. Continuamos elevando esse teto nos dois anos seguintes: para 6.000 TPS em outubro de 2022, para 9.000 TPS em agosto de 2023, e para 18.000 TPS em outubro de 2023, antes de atingir 70.000 TPS por ação de API em Regiões selecionadas em novembro de 2023.

Criptografia do lado do servidor com SSE-SQS (2021): Em novembro de 2021, introduzimos a criptografia do lado do servidor com chaves de criptografia gerenciadas pelo Amazon SQS (SSE-SQS), oferecendo aos clientes uma opção de criptografia que não exigia gerenciamento de chaves. Em outubro de 2022, tornamos o SSE-SQS o padrão para todas as filas recém-criadas, para que os clientes não precisassem mais ativá-lo explicitamente.

Melhorias no redirecionamento de filas de mensagens mortas (2021): Expandimos progressivamente como os clientes recuperam mensagens não consumidas de filas de mensagens mortas. Em dezembro de 2021, adicionamos o redirecionamento de DLQ para a fila de origem diretamente no console do SQS. Em junho de 2023, estendemos essa capacidade para o AWS SDK e CLI por meio de novas APIs, incluindo StartMessageMoveTaskCancelMessageMoveTaskListMessageMoveTasks. Em novembro de 2023, adicionamos suporte de redirecionamento para filas FIFO.

Controle de acesso baseado em atributos, ABAC (2022): Em novembro de 2022, introduzimos o ABAC, dando aos clientes a capacidade de configurar permissões de acesso com base em tags de fila, em vez de manter políticas estáticas à medida que os recursos escalavam.

Suporte ao protocolo JSON (2023): Em novembro de 2023, adicionamos suporte para o protocolo JSON no AWS SDK, reduzindo a latência de processamento de mensagens de ponta a ponta em até 23% para uma carga útil de 5 KB e diminuindo o uso de CPU e memória do lado do cliente.

Integração do console do Amazon EventBridge Pipes (2023): Adicionamos a capacidade de conectar uma fila diretamente ao EventBridge Pipes a partir do console do SQS, roteando mensagens para uma ampla gama de destinos de serviços da AWS sem escrever código de integração personalizado.

Extended Client Library para Python (2024): Trouxemos a Extended Client Library, anteriormente disponível para Java, para desenvolvedores Python, permitindo que mensagens de até 2 GB sejam enviadas através do SQS armazenando a carga útil no Amazon S3 e passando uma referência pela fila.

Aumento do limite de mensagens em trânsito FIFO (2024): Aumentamos o limite de mensagens em trânsito para filas FIFO de 20.000 para 120.000 mensagens, para que os consumidores possam processar significativamente mais mensagens simultaneamente sem serem limitados pelo teto anterior.

Filas justas para cargas de trabalho multi-tenant (2025): Introduzimos filas justas para mitigar o problema do vizinho ruidoso em filas padrão multi-tenant. Ao incluir um ID de grupo de mensagens ao enviar mensagens, os clientes podem evitar que um único tenant atrase a entrega de mensagens para outros, sem necessidade de alterações no lado do consumidor.

Tamanho máximo de carga útil de mensagem de 1 MiB (2025): Aumentamos a carga útil máxima de mensagem de 256 KiB para 1 MiB para filas padrão e FIFO, ajudando os clientes a enviar mensagens maiores sem descarregar dados para armazenamento externo. O mapeamento de origem de eventos do AWS Lambda para SQS foi atualizado em paralelo para suportar o novo tamanho de carga útil.

A constante por trás da mudança

Apesar de duas décadas de adições de recursos, o caso de uso fundamental para o SQS não mudou. Os clientes o usam para desacoplar serviços, amortecer picos de tráfego e construir sistemas que permanecem resilientes quando componentes individuais falham. Esse mesmo padrão agora se estende a cargas de trabalho de IA. Os clientes usam filas do SQS para amortecer solicitações a modelos de linguagem grandes, gerenciar taxa de transferência de inferência e coordenar a comunicação entre agentes de IA autônomos operando como serviços independentes. Para um exemplo dessa arquitetura na prática, leia Criando agentes de IA assíncronos com o Amazon Bedrock.

Para saber mais sobre o Amazon SQS, visite a página do produto Amazon SQS, revise o guia do desenvolvedor ou explore atualizações recentes no AWS Blogs.

— Esra

Esra Kayabali

Esra Kayabali é Principal Solutions Architect na AWS, especializada em analytics, incluindo data warehousing, data lakes, análise de big data, streaming de dados em lote e em tempo real, e integração de dados. Ela tem mais de dez anos de experiência em desenvolvimento de software e arquitetura de soluções. Ela é apaixonada por aprendizado colaborativo, compartilhamento de conhecimento e orientação da comunidade em sua jornada com tecnologias de nuvem.


Este conteúdo foi traduzido do post original do blog, que pode ser encontrado aqui.

 

Autor

Esra Kayabalı é Principal Solutions Architect na AWS, especializada em analytics, incluindo data warehousing, data lakes, análise de big data, streaming de dados em lote e em tempo real, e integração de dados. Ela tem mais de dez anos de experiência em desenvolvimento de software e arquitetura de soluções. Ela é apaixonada por aprendizado colaborativo, compartilhamento de conhecimento e orientação da comunidade em sua jornada com tecnologias de nuvem.

Tradutores

Nicolas Tarzia é Senior Technical Account Manager na AWS, com mais de 13 anos de experiência, com ampla experiência em arquitetura cloud, engenharia e design de software. Atualmente apoia clientes do ramo financeiro. Sua área de interesse são tecnologias serverless.
https://www.linkedin.com/in/nicolastarzia
Daniel Abib é Arquiteto de Soluções Sênior e Especialista em Amazon Bedrock na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e especialização em Machine Learning. Ele trabalha apoiando Startups, ajudando-os em sua jornada para a nuvem.
https://www.linkedin.com/in/danielabib/