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
\n
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.
\n\n
Quem pode se beneficiar e como funciona a solução
\n
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.
\n
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.
\n\n
Arquitetura técnica da solução
\n
- \n
- 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.
\n
\n
\n
\n
\n\n
Disponibilidade e custos envolvidos
\n
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.
\n\n
Passo a passo para implantação da solução
\n
Pré-requisitos
\n
- \n
- 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.
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
Implantação
\n
- \n
- Clone o repositório oficial da AWS com o código da solução:\n
git clone https://github.com/aws-samples/sample-sagemaker-mlflow-embedded-ui.git\ncd sample-sagemaker-mlflow-embedded-ui\nnpm install\n
- Configure as variáveis de ambiente com sua conta e região AWS:\n
export CDK_DEFAULT_ACCOUNT=<seu-account-id>\nexport CDK_DEFAULT_REGION=<sua-regiao>\nexport AWS_DEFAULT_REGION=<sua-regiao>\nexport AWS_REGION=<sua-regiao>\n
- Se necessário, faça o bootstrap do ambiente CDK:\n
cdk bootstrap aws://<ACCOUNT_ID>/<REGION>\n
- Execute o script de implantação que cria a infraestrutura e a aplicação MLflow:\n
bash deploy.sh\n
- Conecte-se à instância EC2 criada via AWS Systems Manager Session Manager e instale Python 3.13 e dependências:\n
sudo su -\ncd /root\nchmod +x install_python13.sh\n./install_python13.sh\nchmod +x setup_mlflow_proxy_app.sh\n./setup_mlflow_proxy_app.sh\n
- Verifique se o serviço Flask proxy está ativo:\n
systemctl status mlflowproxy\n Caso não esteja, cheque os logs:\n
journalctl -u mlflowproxy\n
\n
\n
\n
\n
\n
\n
\n\n
Validação da implantação
\n
- \n
- 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:\n
curl http://<ALB-URL>/health\n Deve retornar
{"status": "healthy"}. - Utilize a API REST do MLflow para criar experimentos, runs, e registrar métricas e parâmetros, por exemplo:\n
curl -X POST http://<ALB-URL>/api/2.0/mlflow/experiments/create -H "Content-Type: application/json" -d '{"name": "meu-primeiro-experimento"}'\n
- Atualize o portal para conferir os dados registrados no UI.
\n
\n
\n
\n
\n\n
Limpeza dos recursos
\n
Para evitar cobranças, execute o script de limpeza que remove os recursos na ordem correta:
\n
bash cleanup.sh
\n
O bucket S3 usado para artefatos MLflow precisa ser deletado manualmente, conforme orientações da AWS.
\n\n
Considerações e próximos passos para produção
\n
- \n
- 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).
\n
\n
\n
\n
\n
\n\n
Links úteis para implementação
\n
Deixe um comentário