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
- 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 - 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> - Se necessário, faça o bootstrap do ambiente CDK:
cdk bootstrap aws://<ACCOUNT_ID>/<REGION> - Execute o script de implantação que cria a infraestrutura e a aplicação MLflow:
bash deploy.sh - 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 - Verifique se o serviço Flask proxy está ativo:
Caso não esteja, cheque os logs:systemctl status mlflowproxyjournalctl -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:
Deve retornarcurl http://<ALB-URL>/health{"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).