Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS

SageMaker HyperPod suporta o driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI), que gerencia o ciclo de vida dos volumes do Amazon EBS como armazenamento para os volumes Kubernetes que você cria. Com o driver CSI do Amazon EBS, você pode criar, anexar e gerenciar seus volumes do Amazon EBS para suas cargas de trabalho de aprendizado de máquina executadas em clusters SageMaker HyperPod com a orquestração do Amazon EKS.

Principais capacidades de armazenamento

O driver CSI do Amazon EBS é SageMaker HyperPod compatível com os seguintes recursos de armazenamento.

  • Provisionamento estático: associa volumes predefinidos do Amazon EBS a volumes persistentes do Kubernetes para serem usados em pods.

  • Provisionamento dinâmico: cria automaticamente volumes do Amazon EBS e volumes persistentes correspondentes a partir de PersistentVolumeClaims. Os parâmetros podem ser transmitidos por meio de StorageClass para um controle refinado sobre a criação de volumes.

  • Redimensionamento de volumes: expande os volumes existentes atualizando a especificação de tamanho PersistentVolumeClaims sem interromper as workloads em execução. Isso pode ser essencial para lidar com repositórios de modelos crescentes ou para se adaptar a nós maiores sem interrupção do serviço.

  • Instantâneos de volume: cria point-in-time instantâneos de volumes para backup, recuperação e controle de versão de dados.

  • Volume de blocos: fornece acesso a dispositivos de blocos brutos para aplicações de alto desempenho que exigem acesso direto ao armazenamento.

  • Modificação do volume: altera as propriedades do volume, como tipo, operações de entrada ou saída por segundo (IOPS) ou throughput, usando classes de atributos de volume.

Para ter mais informações sobre o driver da CSI do Amazon EBS, consulte Usar armazenamento de volumes do Kubernetes com o Amazon EBS no Guia do usuário do Amazon EKS.

Para ter mais informações sobre armazenamento de pods em um cluster, consulte Storage na documentação do Kubernetes.

Casos de uso

A integração do driver CSI do Amazon EBS permite vários casos de uso importantes para cargas de trabalho de treinamento e inferência em clusters EKS. SageMaker HyperPod

Workloads de treinamento

  • Armazenamento de conjuntos de dados: provisione volumes para conjuntos de dados de treinamento que persistem nas reinicializações de pod.

  • Armazenamento de ponto de verificação: salve os pontos de verificação do modelo e os resultados intermediários do treinamento.

  • Artefatos compartilhados: acesse conjuntos de dados comuns e artefatos do modelo em várias tarefas de treinamento.

Workloads de inferência

  • Armazenamento de modelos: provisione dinamicamente volumes de tamanho adequado com base nos requisitos do modelo.

  • Armazenamento em cache de contêineres: crie armazenamento efêmero para melhorar o desempenho da inferência.

  • Registro em log de eventos: armazene resultados e logs de inferência com armazenamento persistente.

Configurando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS

O driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) permite que você provisione e gerencie dinamicamente volumes do Amazon EBS para suas cargas de trabalho em contêineres executadas em clusters com orquestração EKS. SageMaker HyperPod Esta seção mostra como instalar e configurar o driver CSI do Amazon EBS para permitir o armazenamento persistente para suas workloads de machine learning.

Pré-requisitos

Antes de começar, faça o seguinte:

Permissões adicionais

Para configurar o complemento do driver da CSI do Amazon EBS, siga as instruções em Usar armazenamento de volumes do Kubernetes com o Amazon EBS no Guia do usuário do Amazon EKS. Você também deve acrescentar as permissões adicionais a seguir ao perfil do IAM usado para executar o complemento do driver. Observe que essa é a função do IAM especificada na configuração da sua conta de serviço para o complemento do driver, não a função de execução do HyperPod cluster.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:AttachClusterNodeVolume", "sagemaker:DetachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" } ] }

Usando o APIs

Como alternativa, você pode usar as operações AttachClusterNodeVolumee de DetachClusterNodeVolumeAPI para anexar e separar seus volumes do Amazon EBS às instâncias de cluster do SageMaker HyperPod EKS.

Os principais requisitos para usá-los APIs incluem o seguinte.

  • Tanto o volume do Amazon EBS quanto o cluster SageMaker HyperPod EKS devem pertencer ao mesmoConta da AWS.

  • A entidade principal da chamada precisa de permissões mínimas específicas para realizar com êxito a operação de anexação ou desconexão. Para ter mais informações sobre essas permissões mínimas, consulte as seções a seguir.

  • Depois de anexar um volume ao seu HyperPod nó, siga as instruções em Acessar os nós do SageMaker HyperPod cluster para acessar o nó do cluster e Disponibilizar um volume para uso na montagem do volume conectado.

Permissões obrigatórias para os sagemaker:AttachClusterNodeVolume

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:AttachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DescribeVolumes" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }

Permissões obrigatórias para os sagemaker:DetachClusterNodeVolume

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:DetachClusterNodeVolume" ], "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*" }, { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name" }, { "Effect": "Allow", "Action": [ "ec2:DetachVolume", "ec2:DescribeVolumes" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }

Permissões necessárias para AWS KMS chaves

Adicione as seguintes AWS KMS permissões somente se você estiver usando chaves KMS gerenciadas pelo cliente para criptografar seus volumes do Amazon EBS anexados aos HyperPod nós do cluster. Essas permissões não são obrigatórias se você estiver usando chaves do KMS gerenciadas pela AWS (a opção de criptografia padrão).

JSON
{ "Version":"2012-10-17", "Id": "key-default-1", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/caller-role" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/caller-role" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.us-east-1.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt" ] } } } ] }
nota

Essas AWS KMS permissões não são necessárias para sagemaker:DetachClusterNodeVolume desanexar um volume Cluster Auto Volume Attachment (CAVA) criptografado com chaves KMS gerenciadas pelo cliente.