Voltar para o blog
Machine Learning

Como criar um portal customizado com Amazon SageMaker AI MLflow Apps integrado

29 de maio de 2026
00:38
machine learningCloud ComputingAmazon SageMakerAWS CDKMLflowReactFlask ProxyAWS SigV4Portal CustomizadoExperiment Tracking
Como criar um portal customizado com Amazon SageMaker AI MLflow Apps integrado

Amazon SageMaker lança solução para portais customizados com MLflow Apps integrados

A Amazon Web Services (AWS) apresentou uma solução que permite a criação de portais customizados com a interface do Amazon SageMaker AI MLflow Apps embutida. Essa novidade é especialmente útil para equipes de machine learning (ML) que buscam um acesso escalável e seguro ao monitoramento de experimentos MLflow, sem a necessidade de distribuir URLs pré-assinadas ou conceder acesso direto ao console AWS.

Quem pode se beneficiar e como funciona a solução

Times de cientistas de dados e infraestrutura ML que utilizam o Amazon SageMaker para gerenciar experimentos podem integrar o MLflow Apps diretamente em seus portais internos, que já contam com autenticação via Single Sign-On (SSO). Isso oferece uma URL persistente e bookmarkable, além de uma experiência unificada para os usuários, que acessam os experimentos ao lado de outras ferramentas corporativas.

O portal customizado é construído com um front-end React que incorpora o MLflow UI via iframe, enquanto um serviço proxy reverso em Flask gerencia a autenticação AWS Signature Version 4 (SigV4) de forma transparente para o usuário. Essa arquitetura permite que pipelines CI/CD e scripts automatizados interajam com as APIs REST do MLflow através do mesmo endpoint proxy, simplificando a segurança e a operação.

Arquitetura técnica da solução

  • Application Load Balancer (ALB): Ponto único de entrada para usuários, gerenciando o tráfego HTTPS, integração com DNS e certificados, além de suportar domínios personalizados e autenticação SSO.
  • Front-end React: Portal customizado que carrega a interface MLflow dentro de um iframe e pode ser adaptado para branding e integração com outras ferramentas internas.
  • Flask reverse proxy: Serviço Python hospedado em uma instância Amazon EC2 que intercepta requisições, assina com SigV4 usando credenciais temporárias de um papel IAM, reescreve URLs e remove cabeçalhos que impediriam a renderização em iframe.
  • Amazon SageMaker AI MLflow Apps: Backend totalmente gerenciado que oferece rastreamento de experimentos, métricas, parâmetros, artefatos e registro de modelos, sem necessidade de manutenção de infraestrutura.

Disponibilidade e custos envolvidos

A solução pode ser implementada em qualquer conta AWS que possua permissões para criar recursos como VPCs, EC2, ALB, SageMaker AI e IAM roles. Os principais custos envolvem instâncias EC2, Application Load Balancer, recursos Amazon SageMaker AI e armazenamento em Amazon S3. Para orçar os custos, a AWS recomenda o uso do AWS Pricing Calculator.

Passo a passo para implantação da solução

Pré-requisitos

  • Conta AWS ativa e configurada.
  • AWS CLI v2.34.5 ou superior.
  • Python 3.13 ou superior instalado localmente.
  • AWS CDK v2 (aws-cdk-lib 2.243.0 ou superior) instalado e bootstrapped na conta e região alvo.
  • Node.js 18.x ou superior.
  • Permissões IAM suficientes para criar recursos citados.
  • AMI Ubuntu 24.04 LTS disponível na região (resolvido automaticamente via SSM Parameter Store).
  • Conhecimentos básicos em AWS, IAM, Python, Flask e MLflow.

Implantação

  1. Clone o repositório oficial da AWS com o código da solução:
    git clone https://github.com/aws-samples/sample-sagemaker-mlflow-embedded-ui.git
    cd sample-sagemaker-mlflow-embedded-ui
    npm install
  2. Configure as variáveis de ambiente com sua conta e região AWS:
    export CDK_DEFAULT_ACCOUNT=<seu-account-id>
    export CDK_DEFAULT_REGION=<sua-regiao>
    export AWS_DEFAULT_REGION=<sua-regiao>
    export AWS_REGION=<sua-regiao>
  3. Se necessário, faça o bootstrap do ambiente CDK:
    cdk bootstrap aws://<ACCOUNT_ID>/<REGION>
  4. Execute o script de implantação que cria a infraestrutura e a aplicação MLflow:
    bash deploy.sh
  5. Conecte-se à instância EC2 criada via AWS Systems Manager Session Manager e instale Python 3.13 e dependências:
    sudo su -
    cd /root
    chmod +x install_python13.sh
    ./install_python13.sh
    chmod +x setup_mlflow_proxy_app.sh
    ./setup_mlflow_proxy_app.sh
  6. Verifique se o serviço Flask proxy está ativo:
    systemctl status mlflowproxy
    Caso não esteja, cheque os logs:
    journalctl -u mlflowproxy

Validação da implantação

  • Acesse a URL do Application Load Balancer (ALB) fornecida na saída do deploy para abrir o portal React com o MLflow UI embutido.
  • Teste o endpoint de saúde:
    curl http://<ALB-URL>/health
    Deve retornar {"status": "healthy"}.
  • Utilize a API REST do MLflow para criar experimentos, runs, e registrar métricas e parâmetros, por exemplo:
    curl -X POST http://<ALB-URL>/api/2.0/mlflow/experiments/create -H "Content-Type: application/json" -d '{"name": "meu-primeiro-experimento"}'
  • Atualize o portal para conferir os dados registrados no UI.

Limpeza dos recursos

Para evitar cobranças, execute o script de limpeza que remove os recursos na ordem correta:

bash cleanup.sh

O bucket S3 usado para artefatos MLflow precisa ser deletado manualmente, conforme orientações da AWS.

Considerações e próximos passos para produção

  • Adicione autenticação SSO ao portal via integração com Amazon Cognito ou Okta no ALB.
  • Implemente conectividade privada usando AWS PrivateLink para evitar tráfego pela internet pública.
  • Configure monitoramento com Amazon CloudWatch para o serviço Flask proxy.
  • Utilize AWS WAF para limitar taxa de requisições e proteger contra ataques DoS.
  • Habilite HTTPS no ALB com certificados gerenciados pelo AWS Certificate Manager (ACM).

Links úteis para implementação