Domínio Amazon SageMaker no modo somente VPC para oferecer suporte ao SageMaker Studio com desligamento automático Lifecycle Configuration e SageMaker Canvas com Terraform | Amazon Web Services

Domínio Amazon SageMaker no modo somente VPC para oferecer suporte ao SageMaker Studio com desligamento automático Lifecycle Configuration e SageMaker Canvas com Terraform | Amazon Web Services

Domínio Amazon SageMaker oferece suporte a ambientes de aprendizado de máquina (ML) SageMaker, incluindo SageMaker Studio e SageMaker Canvas. Estúdio SageMaker é um ambiente de desenvolvimento totalmente integrado (IDE) que fornece uma única interface visual baseada na web onde você pode acessar ferramentas específicas para executar todas as etapas de desenvolvimento de ML, desde a preparação de dados até a construção, treinamento e implantação de seus modelos de ML, melhorando a ciência de dados produtividade da equipe em até 10x. Tela SageMaker expande o acesso ao aprendizado de máquina, fornecendo aos analistas de negócios uma interface visual que lhes permite gerar previsões precisas de ML por conta própria, sem exigir qualquer experiência em ML ou ter que escrever uma única linha de código.

HashiCorp Terraforma é uma ferramenta de infraestrutura como código (IaC) que permite organizar sua infraestrutura em módulos de código reutilizáveis. Os clientes da AWS contam com a IaC para projetar, desenvolver e gerenciar sua infraestrutura em nuvem, como o SageMaker Domains. A IaC garante que a infraestrutura e os serviços do cliente sejam consistentes, escaláveis ​​e reproduzíveis, ao mesmo tempo que segue as melhores práticas na área de operações de desenvolvimento (DevOps). Usando o Terraform, você pode desenvolver e gerenciar seu domínio SageMaker e sua infraestrutura de suporte de maneira consistente e repetível.

Neste post, demonstramos a implementação do Terraform para implantar um domínio SageMaker e o Nuvem virtual privada da Amazon (Amazon VPC) ao qual ele se associa. A solução usará o Terraform para criar:

  • Uma VPC com sub-redes, grupos de segurança, bem como endpoints VPC para oferecer suporte ao modo somente VPC para o domínio SageMaker.
  • Um domínio SageMaker no modo somente VPC com um perfil de usuário.
  • Uma chave do AWS Key Management Service (AWS KMS) para criptografar o volume do Amazon Elastic File System (Amazon EFS) do SageMaker Studio.
  • Uma configuração de ciclo de vida anexada ao domínio SageMaker para desligar automaticamente instâncias de notebook Studio ociosas.
  • Uma função de execução do domínio SageMaker e políticas IAM para habilitar as funcionalidades do SageMaker Studio e Canvas.

A solução descrita neste post está disponível neste GitHub repo.

Visão geral da solução

A imagem a seguir mostra o domínio SageMaker no modo somente VPC.

sagemaker_domain_vpc_only

Ao iniciar o SageMaker Domain em sua VPC, você pode controlar o fluxo de dados de seus ambientes SageMaker Studio e Canvas. Isso permite restringir o acesso à Internet, monitorar e inspecionar o tráfego usando recursos padrão de rede e segurança da AWS e conectar-se a outros recursos da AWS por meio de endpoints VPC.

Requisitos de VPC para usar o modo somente VPC

A criação de um domínio SageMaker no modo somente VPC requer um VPC com as seguintes configurações:

  1. Pelo menos duas sub-redes privadas, cada uma numa zona de disponibilidade diferente, para garantir alta disponibilidade.
  2. Certifique-se de que suas sub-redes tenham o número necessário de endereços IP. Recomendamos entre dois e quatro endereços IP por usuário. A capacidade total de endereços IP para um domínio do Studio é a soma dos endereços IP disponíveis para cada sub-rede fornecida quando o domínio é criado.
  3. Configure um ou mais grupos de segurança com regras de entrada e saída que juntas permitem o seguinte tráfego:
    • Tráfego NFS sobre TCP na porta 2049 entre o domínio e o volume do Amazon EFS.
    • Tráfego TCP dentro do grupo de segurança. Isso é necessário para conectividade entre o aplicativo JupyterServer e os aplicativos KernelGateway. Você deve permitir acesso a pelo menos portas no intervalo 8192–65535.
  4. Crie um endpoint de gateway para o Amazon Simple Storage Service (Amazon S3). O SageMaker Studio precisa acessar o Amazon S3 da sua VPC usando gateway VPC endpoints. Depois de criar o endpoint do gateway, você precisa adicioná-lo como um destino na tabela de rotas para o tráfego destinado da VPC ao Amazon S3.
  5. Crie VPC endpoints de interface (AWS PrivateLink) para permitir que o Studio acesse os serviços a seguir com os nomes de serviço correspondentes. Você também deve associar um grupo de segurança para sua VPC a estes endpoints para permitir todo o tráfego de entrada da porta 443:
    • API SageMaker: com.amazonaws.region.sagemaker.api. Isso é necessário para se comunicar com a API SageMaker.
    • Tempo de execução do SageMaker: com.amazonaws.region.sagemaker.runtime. Isso é necessário para executar notebooks do Studio e para treinar e hospedar modelos.
    • Loja de recursos SageMaker: com.amazonaws.region.sagemaker.featurestore-runtime. Isso é necessário para usar o SageMaker Feature Store.
    • Projetos SageMaker: com.amazonaws.region.servicecatalog. Isso é necessário para usar projetos SageMaker.

Endpoints VPC adicionais para usar o SageMaker Canvas

Além dos VPC endpoints mencionados anteriormente, para usar o SageMaker Canvas, você também precisa criar os seguintes VPC endpoints de interface:

  • Amazon Forecast e consulta do Amazon Forecast: com.amazonaws.region.forecast e com.amazonaws.region.forecastquery. Eles são necessários para usar o Amazon Forecast.
  • Reconhecimento da Amazon: com.amazonaws.region.rekognition. Isso é necessário para usar o Amazon Rekognition.
  • Amazon Textract: com.amazonaws.region.textract. Isso é necessário para usar o Amazon Textract.
  • Amazon Compreender: com.amazonaws.region.comprehend. Isso é necessário para usar o Amazon Comprehend.
  • Serviço de token de segurança da AWS (AWS STS): com.amazonaws.region.sts. Isso é necessário porque o SageMaker Canvas usa AWS STS para se conectar a fontes de dados.
  • Amazon Athena e AWS Glue: com.amazonaws.region.athena e com.amazonaws.region.glue. Isso é necessário para conectar-se ao AWS Glue Data Catalog por meio do Amazon Athena.
  • Redshift da Amazon: com.amazonaws.region.redshift-data. Isso é necessário para conectar-se à fonte de dados do Amazon Redshift.

Para visualizar todos os endpoints VPC de cada serviço que você pode usar com o SageMaker Canvas, acesse Configure o Amazon SageMaker Canvas em uma VPC sem acesso à Internet.

Criptografia AWS KMS para volume EFS do SageMaker Studio

Na primeira vez que um usuário da sua equipe integra o SageMaker Studio, o SageMaker cria um volume EFS para a equipe. Um diretório inicial é criado no volume para cada usuário que integra o Studio como parte de sua equipe. Arquivos de notebook e arquivos de dados são armazenados nesses diretórios.

Você pode criptografar o volume EFS do SageMaker Studio com uma chave KMS para que os dados dos seus diretórios pessoais sejam criptografados em repouso. Esta solução Terraform cria uma chave KMS e a utiliza para criptografar o volume EFS do SageMaker Studio.

Configuração do ciclo de vida do domínio SageMaker para desligar automaticamente notebooks ociosos do Studio

sagemaker_auto_shutdown

Configurações de ciclo de vida são scripts de shell acionados por eventos de ciclo de vida do Amazon SageMaker Studio, como iniciar um novo notebook do Studio. Você pode usar as configurações do ciclo de vida para automatizar a personalização do seu ambiente Studio.

Esta solução Terraform cria uma configuração de ciclo de vida do SageMaker para detectar e interromper recursos ociosos que geram custos no Studio usando uma extensão Jupyter de desligamento automático. Nos bastidores, os seguintes recursos são criados ou configurados para alcançar o resultado desejado:

  1. Crie um bucket S3 e faça upload da versão mais recente da extensão de desligamento automático sagemaker_studio_autoshutdown-0.1.5.tar.gz. Posteriormente, o script de desligamento automático executará o s3 cp comando para baixar o arquivo de extensão do bucket S3 nas inicializações do Jupyter Server. Consulte os seguintes repositórios do GitHub para obter mais informações sobre o extensão de desligamento automático e script de desligamento automático.
  2. Crie uma aws_sagemaker_studio_lifecycle_config recurso "auto_shutdown”. Este recurso irá codificar o autoshutdown-script.sh com base 64 e crie uma configuração de ciclo de vida para o domínio SageMaker.
  3. Para configurações de usuário padrão do domínio SageMaker, especifique o arn da configuração do ciclo de vida e defina-o como padrão.

Permissões do IAM da função de execução do SageMaker

Como um serviço gerenciado, o SageMaker executa operações em seu nome no hardware AWS gerenciado pelo SageMaker. O SageMaker pode realizar apenas operações permitidas pelo usuário.

Um usuário do SageMaker pode conceder essas permissões com uma função IAM (conhecida como função de execução). Ao criar um domínio do SageMaker Studio, o SageMaker permite criar a função de execução por padrão. Você pode restringir o acesso aos perfis de usuário alterando a função do perfil de usuário do SageMaker. Esta solução Terraform anexa as seguintes políticas IAM à função de execução do SageMaker:

  • Gerenciado pelo SageMaker AmazonSageMakerFullAccess política. Esta política concede à função de execução acesso total para usar o SageMaker Studio.
  • Uma política IAM gerenciada pelo cliente para acessar a chave KMS usada para criptografar o volume EFS do SageMaker Studio.
  • Gerenciado pelo SageMaker AmazonSageMakerCanvasFullAccess e AmazonSageMakerCanvasAIServicesAccess políticas. Essas políticas concedem à função de execução acesso total para usar o SageMaker Canvas.
  • Para habilitar a análise de série temporal no SageMaker Canvas, você também precisa adicionar a política de confiança do IAM para Amazon Forecast.

Passo a passo da solução

Nesta postagem do blog, demonstramos como implantar a solução Terraform. Antes de fazer a implantação, certifique-se de atender aos seguintes pré-requisitos:

Pré-requisitos

  • Uma conta da AWS
  • Um usuário IAM com acesso administrativo

Etapas de implantação

Para oferecer aos usuários que seguem este guia uma experiência de implantação unificada, demonstramos o processo de implantação com o AWS CloudShell. Usando o CloudShell, um shell baseado em navegador, você pode executar scripts rapidamente com a AWS Command Line Interface (AWS CLI), experimentar APIs de serviço usando a AWS CLI e usar outras ferramentas para aumentar sua produtividade.

Para implementar a solução Terraform, conclua as etapas a seguir:

Configurações de inicialização do CloudShell

  • Faça login no AWS Management Console e selecione o serviço CloudShell.
  • Na barra de navegação, no seletor de região, escolha Leste dos EUA (Virgínia do Norte).

Seu navegador abrirá o terminal CloudShell.

Instale o Terraform

As próximas etapas devem ser executadas em um terminal CloudShell.

Verifique este guia Hashicorp para obter instruções atualizadas para instalar o Terraform para Amazon Linux:

  • Instale yum-config-manager para gerenciar seus repositórios.
sudo yum install -y yum-utils

  • Use yum-config-manager para adicionar o repositório oficial do HashiCorp Linux.
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

  • Instale o Terraform do novo repositório.
sudo yum -y install terraform

  • Verifique se a instalação funcionou listando os subcomandos disponíveis do Terraform.
terraform -help

Saída esperada:

Usage: terraform [-version] [-help] <command> [args] The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you’re just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage. …

Clone o repositório de código

Execute as etapas a seguir em um terminal CloudShell.

  • Clone o repositório e navegue até a pasta sagemaker-domain-vpconly-canvas-with-terraform:
git clone https://github.com/aws-samples/sagemaker-domain-vpconly-canvas-with-terraform.git cd sagemaker-domain-vpconly-canvas-with-terraform

  • Baixe a extensão de desligamento automático e coloque-a no assets/auto_shutdown_template pasta:
wget https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension/raw/main/sagemaker_studio_autoshutdown-0.1.5.tar.gz -P assets/auto_shutdown_template

Implantar a solução Terraform

No terminal CloudShell, execute os seguintes comandos do Terraform:

terraform init

Você deverá ver uma mensagem de sucesso como:

Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work...

Agora você pode executar:

terraform plan

Depois de estar satisfeito com os recursos que o plano descreve a serem criados, você pode executar:

terraform apply

Entrar "sim“Quando solicitado a confirmar a implantação.

Se implantado com sucesso, você verá uma saída semelhante a:

Apply complete! Resources: X added, 0 changed, 0 destroyed.

Acessando o SageMaker Studio e o Canvas

Agora temos um domínio Studio associado ao nosso VPC e um perfil de usuário neste domínio.

sagemaker_domain

Para usar o console do SageMaker Studio, no Painel de controle do Studio, localize seu nome de usuário (deve ser defaultuser) e escolha Estúdio Aberto.

Conseguimos! Agora você pode usar seu navegador para se conectar ao ambiente SageMaker Studio. Após alguns minutos, o Studio termina de criar seu ambiente e você é saudado com a tela inicial.

studio_landing_page

Para usar o console do SageMaker Canvas, no Painel de controle do Canvas, localize seu nome de usuário (deve ser defaultuser) e escolha Abrir tela.

Agora você pode usar seu navegador para se conectar ao ambiente SageMaker Canvas. Depois de alguns minutos, o Canvas termina de criar seu ambiente e você é saudado com a tela inicial.

canvas_landing_page

Sinta-se à vontade para explorar todas as funcionalidades que o SageMaker Studio e Canvas têm a oferecer! Consulte a seção Conclusão para workshops e tutoriais adicionais que você pode usar para aprender mais sobre o SageMaker.

limpar

Execute o seguinte comando para limpar seus recursos:

terraform destroy

Dica: se você definir a política de retenção do Amazon EFS como “Retain”(o padrão), você terá problemas durante“terraform destroy”Porque o Terraform está tentando excluir as sub-redes e o VPC quando o volume EFS, bem como seus grupos de segurança associados (criados pelo SageMaker) ainda existem. Para corrigir isso, primeiro exclua o volume EFS manualmente e, em seguida, exclua as sub-redes e o VPC manualmente no console AWS.

Conclusão

A solução nesta postagem oferece a capacidade de criar um domínio SageMaker para oferecer suporte a ambientes de ML, incluindo SageMaker Studio e SageMaker Canvas com Terraform. O SageMaker Studio fornece um IDE totalmente gerenciado que elimina o trabalho pesado do processo de ML. Com o SageMaker Canvas, nossos usuários empresariais podem explorar e construir facilmente modelos de ML para fazer previsões precisas sem escrever nenhum código. Com a capacidade de iniciar o Studio e o Canvas dentro de uma VPC e o uso de uma chave KMS para criptografar o volume EFS, os clientes podem usar ambientes SageMaker ML com segurança aprimorada. A configuração do ciclo de vida de desligamento automático ajuda os clientes a economizar custos em instâncias de notebook Studio ociosas.

Teste esta solução e diga-nos o que você pensa. Para obter mais informações sobre como usar o SageMaker Studio e o Sagemaker Canvas, consulte o seguinte:


Sobre o autor

chen_yang_awsChen Yang é engenheiro de aprendizado de máquina na Amazon Web Services. Ela faz parte da equipe de serviços profissionais da AWS e tem se concentrado na construção de ambientes seguros de aprendizado de máquina para clientes. Nas horas vagas, ela gosta de correr e fazer caminhadas no noroeste do Pacífico.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS