Monitore o Amazon SageMaker Pipelines entre contas AWS com dashboards personalizados no CloudWatch

O desafio de monitorar pipelines de ML distribuídos

Organizações que adotam estratégias de Operações de Aprendizado de Máquina (MLOps) frequentemente distribuem seus fluxos de trabalho de ML entre várias contas e regiões AWS. O Amazon SageMaker permite automatizar esses workloads por meio do SageMaker Pipelines, mas acompanhar o que está acontecendo em cada ambiente se torna rapidamente um problema operacional.

Sem uma solução centralizada, desenvolvedores e engenheiros de operações precisam alternar manualmente entre contas e regiões para inspecionar execuções de pipelines — o que gera retrabalho, aumenta o risco de falhas passarem despercebidas e torna o dia a dia mais lento. O Amazon SageMaker Studio oferece monitoramento nativo, mas apenas dentro de uma única conta e região.

Para resolver isso, a AWS publicou uma solução que centraliza o monitoramento de SageMaker Pipelines em múltiplas contas e regiões usando dashboards personalizados no Amazon CloudWatch. O código de infraestrutura está disponível em um repositório no GitHub baseado no AWS Cloud Development Kit (AWS CDK), permitindo customizações conforme as necessidades de cada organização.

Visão geral da solução

A solução propõe um dashboard interativo no CloudWatch que oferece visibilidade unificada sobre SageMaker Pipelines rodando em múltiplas contas e regiões AWS. A arquitetura escolhida é serverless e orientada a eventos, respondendo às mudanças de estado dos pipelines em tempo real — sem a necessidade de sistemas de monitoramento sempre ativos ou mecanismos de polling.

O modelo adotado é o hub-and-spoke: uma conta central (o hub) concentra o monitoramento, enquanto componentes leves em cada conta ou região secundária (os spokes) capturam os dados do SageMaker Pipelines e os encaminham para o hub. Isso reduz a complexidade operacional e centraliza a visualização.

Os dois stacks do AWS CloudFormation

A solução é composta por dois stacks principais do AWS CloudFormation:

  • Dashboard Stack: contém o dashboard do CloudWatch, tabelas de armazenamento no Amazon DynamoDB e funções AWS Lambda responsáveis pelo processamento e visualização dos dados. É implantado apenas na conta e região primária, que atua como o hub de monitoramento.
  • Forwarder Stack: é implantado nas contas monitoradas (os spokes). Esses stacks leves utilizam o Amazon EventBridge para capturar eventos e encaminhar dados enriquecidos ao hub central.

Como o fluxo de dados funciona

O funcionamento completo da solução segue o seguinte encadeamento:

  • Quando uma etapa de um SageMaker Pipeline muda de status, o Amazon SageMaker AI gera eventos de origem contendo metadados como o horário do evento, o Nome de Recurso Amazon (ARN) do pipeline e da execução, e o status da etapa.
  • Regras do EventBridge capturam esses eventos em tempo real e os enviam para funções Lambda para processamento.
  • As funções Lambda enriquecem os dados com metadados adicionais — como o nome de exibição e o status da execução — e os enviam ao barramento local do EventBridge.
  • Regras customizadas do EventBridge encaminham os dados enriquecidos para a conta hub de monitoramento. Papéis e políticas de recursos do AWS Identity and Access Management (IAM) garantem a segurança na transmissão de eventos entre contas.
  • Uma regra do EventBridge na conta de monitoramento aciona uma função Lambda que ingere os dados de cada execução de pipeline e os armazena em tabelas do DynamoDB. As informações armazenadas incluem região, ID da conta, horários de criação, início e fim, nome de exibição e status de cada execução e de suas etapas individuais.
  • Funções Lambda alimentam o backend do dashboard, lendo as tabelas do DynamoDB e retornando HTML formatado.
  • Um dashboard do CloudWatch com widgets personalizados funciona como interface de usuário diretamente no AWS Management Console, exibindo as execuções com IDs de conta, regiões, horários de criação e status atual.
  • Elementos interativos permitem filtrar dados por nome de pipeline e acessar informações detalhadas sobre as etapas de uma execução específica, incluindo nome, tipo, horários de início e fim e status.
  • O CloudWatch dispara um alarme em caso de atividade anômala dos usuários do dashboard. O Amazon Simple Notification Service (Amazon SNS) então envia um alerta para os assinantes de um tópico SNS criptografado com uma chave gerenciada pelo cliente no AWS Key Management Service (AWS KMS). Os alarmes são acionados quando as chamadas dos widgets às funções Lambda ultrapassam os limites definidos no Dashboard Stack.

Pré-requisitos para implantação

Antes de implantar a solução, é necessário ter os seguintes recursos configurados:

  • Uma conta AWS com duas regiões preparadas para o AWS CDK. Uma região hospedará o dashboard de monitoramento e a outra gerará eventos cross-region do SageMaker Pipelines.
  • Uma segunda conta AWS com pelo menos uma região preparada para gerar eventos cross-account.
  • Credenciais AWS configuradas como variáveis de ambiente no shell, com permissões suficientes para implantar a solução.
  • Python (versão 3.14 ou superior).
  • O AWS CDK instalado (versão 2.1100.1 ou superior).
  • A AWS Command Line Interface (AWS CLI) instalada (versão 2.32.12 ou superior).
  • Docker, necessário para o empacotamento das funções Lambda.
  • Pelo menos um SageMaker Pipeline em cada combinação de conta e região. Caso não existam pipelines, é possível criá-los via SageMaker AI Projects pelo SageMaker Studio em um domínio Amazon SageMaker AI.

Como implantar a solução

Com os pré-requisitos atendidos, os passos para implantação são:

  • Faça o clone do repositório no GitHub e siga as instruções detalhadas no arquivo README para implantar os stacks usando o AWS CDK e a AWS CLI.
  • Acesse o console do AWS CloudFormation em cada conta e região. Selecione o stack DashboardStack ou o ForwarderStack para visualizar detalhes sobre as implantações e os recursos criados.

Testando o dashboard

Após a implantação, é possível validar as funcionalidades do dashboard seguindo os passos abaixo:

  • Acesse o console do Amazon CloudWatch e, no painel de navegação, selecione Dashboards. Em seguida, escolha o dashboard PipelineMonitoringDashboard.
  • Quando solicitado, permita a execução da função Lambda. Confirme que o nome da função contém customWidget, conforme as boas práticas recomendadas.
  • Se não houver execuções recentes de SageMaker Pipelines, inicie novas execuções nas contas e regiões monitoradas — começando, por simplicidade, pela mesma conta e região do dashboard de monitoramento. Recarregue os resultados usando o botão de atualização no canto superior direito do widget.
  • Escolha o botão Steps details para visualizar informações detalhadas sobre as etapas individuais do pipeline, incluindo nome, tipo, horários de início e fim e status.
  • Utilize o seletor de intervalo de datas no topo do dashboard para filtrar execuções por período personalizado.
  • Use o filtro de nome de pipeline no canto superior esquerdo do widget para buscar execuções de um pipeline específico.

Boas práticas e considerações

Flexibilidade e customização

O dashboard pode ser enriquecido com novos dados nas funções Lambda que populam as tabelas do DynamoDB, adicionando lógica de visualização, filtros adicionais, métricas, popups interativos ou widgets nativos do CloudWatch. Além disso, a solução pode ser estendida para monitorar execuções de máquinas de estado do AWS Step Functions, jobs no AWS Batch ou no AWS Glue, e clusters do Amazon EMR que suportem workloads de ML. Nesse caso, considere criar um barramento de eventos dedicado no EventBridge para isolar o tráfego de monitoramento de outros eventos.

Métricas e alarmes

O monitoramento do SageMaker Pipeline pode ser realizado em múltiplas camadas: regras do EventBridge para eventos de serviço, detecção de anomalias em logs do CloudWatch para logs de execução de jobs de ML, e métricas do CloudWatch para utilização de recursos. Configure alarmes adicionais em logs e métricas, ou notificações diretas de eventos, para enviar alertas via Amazon SNS à sua equipe.

Acessibilidade e compartilhamento do dashboard

Considere diferentes formas de compartilhar dashboards do CloudWatch para facilitar o acesso sem precisar passar pelo AWS Management Console. Uma alternativa para visualização de dados é o Amazon Managed Grafana.

Rede privada

Para organizações com requisitos rigorosos de segurança, considere implantar a solução dentro de uma Amazon Virtual Private Cloud (VPC) para maior isolamento. É possível conectar VPCs entre regiões e contas usando conexões de VPC peering ou o AWS Transit Gateway.

Integração com CI/CD

Para maior confiabilidade, implante a solução com pipelines de Integração e Entrega Contínua (CI/CD) nos ambientes que executam seus fluxos de ML. O AWS Organizations e o AWS Deployment Framework (ADF) ajudam a garantir implantações consistentes e repetíveis em todos os ambientes.

Limpeza dos recursos

Para remover os recursos criados, acesse o console do CloudFormation em cada combinação de conta e região onde a solução foi implantada e exclua as instâncias dos stacks DashboardStack ou ForwarderStack. Alternativamente, execute os mesmos comandos do AWS CDK utilizados na implantação, substituindo cdk deploy por cdk destroy. Lembre-se também de excluir os projetos do SageMaker, os recursos e as instâncias do domínio SageMaker AI em cada conta e região, caso tenham sido criados apenas para testar a solução.

Conclusão

A solução apresentada pela AWS oferece uma forma prática de centralizar o monitoramento de SageMaker Pipelines distribuídos em múltiplas contas e regiões, por meio de um dashboard interativo no CloudWatch. A arquitetura serverless e orientada a eventos garante atualizações em tempo quase real, integração direta com o AWS Management Console e escalabilidade sem a necessidade de infraestrutura dedicada sempre ativa.

Para equipes que queiram aprofundar o conhecimento em MLOps, a AWS também disponibiliza recursos complementares, como artigos sobre como implementar uma plataforma MLOps segura com Terraform e GitHub, o guia sobre governança do ciclo de vida de ML em escala com o Amazon SageMaker, o tutorial para construir um pipeline MLOps completo com SageMaker Pipelines, GitHub e GitHub Actions e o post sobre como criar uma solução centralizada de monitoramento para o Amazon SageMaker com o CloudWatch. Para customizações adicionais do dashboard, vale conferir os exemplos de widgets personalizados no CloudWatch.

Fonte

Monitor Amazon SageMaker Pipelines cross-account with custom Amazon CloudWatch dashboards (https://aws.amazon.com/blogs/machine-learning/monitor-amazon-sagemaker-pipelines-cross-account-with-custom-amazon-cloudwatch-dashboards/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *