Utilisation du pilote CSI Amazon EBS sur les clusters SageMaker HyperPod EKS
SageMaker HyperPod prend en charge le pilote Container Storage Interface (CSI) Amazon Elastic Block Store (Amazon EBS), qui gère le cycle de vie des volumes Amazon EBS en tant que stockage pour les volumes Kubernetes que vous créez. Avec le pilote CSI Amazon EBS, vous pouvez créer, attacher et gérer vos volumes Amazon EBS pour vos charges de travail de machine learning exécutées sur des clusters SageMaker HyperPod avec l’orchestration Amazon EKS.
Dans cette rubrique :
Fonctionnalités de stockage clés
Le pilote CSI Amazon EBS sur SageMaker HyperPod prend en charge les fonctionnalités de stockage suivantes.
-
Provisionnement statique : associe des volumes Amazon EBS précréés à des volumes persistants
Kubernetes à utiliser dans vos pods. -
Provisionnement dynamique : crée automatiquement des volumes Amazon EBS et des volumes persistants associés à partir de
PersistentVolumeClaims. Les paramètres peuvent être transmis via StorageClasspour un contrôle précis de la création de volumes. -
Redimensionnement des volumes : étend les volumes existants en mettant à jour la spécification de taille
PersistentVolumeClaimssans interrompre les charges de travail en cours d’exécution. Cela peut être essentiel pour gérer des référentiels de modèles en pleine croissance ou pour s’adapter à des nœuds plus importants sans interruption de service. -
Instantanés de volumes : crée des instantanés ponctuels des volumes à des fins de sauvegarde, de récupération et de gestion des versions des données.
-
Volumes de blocs : fournit un accès brut aux périphériques de stockage en mode bloc pour les applications hautes performances nécessitant un accès direct au stockage.
-
Modification du volume : modifie les propriétés du volume telles que le type, les opérations d’entrée ou de sortie par seconde (IOPS) ou le débit à l’aide de classes d’attributs de volume
.
Pour plus d’informations sur le pilote CSI Amazon EBS, consultez Utilisation du stockage en volume Kubernetes avec Amazon EBS dans le Guide de l’utilisateur Amazon EKS.
Pour plus d’informations sur le stockage dans les pods de votre cluster, consultez Stockage
Cas d’utilisation
L’intégration du pilote CSI Amazon EBS permet plusieurs cas d’utilisation clés pour les charges de travail d’entraînement et d’inférence sur les clusters SageMaker HyperPod EKS.
Charges de travail d’entraînement
-
Stockage de jeux de données : provisionnez des volumes pour les jeux de données d’entraînement qui persistent après le redémarrage du pod
-
Stockage des points de contrôle : enregistrez les points de contrôle du modèle et les résultats d’entraînement intermédiaires
-
Artefacts partagés : accédez aux jeux de données et aux artefacts de modèles communs dans le cadre de plusieurs tâches d’entraînement
Charges de travail d’inférence
-
Stockage de modèles : provisionnez dynamiquement des volumes de taille appropriée en fonction des exigences du modèle
-
Mise en cache des conteneurs : créez un stockage éphémère pour améliorer les performances d’inférence
-
Enregistrement des événements : stockez les résultats d’inférence et les journaux grâce à un stockage persistant
Configuration du pilote CSI Amazon EBS sur les clusters SageMaker HyperPod EKS
Le pilote CSI (Container Storage Interface) Amazon Elastic Block Store (Amazon EBS) vous permet de provisionner et de gérer de manière dynamique des volumes Amazon EBS pour vos charges de travail conteneurisées en cours d’exécution sur des clusters SageMaker HyperPod avec orchestration EKS. Cette section vous guide pour installer et configurer le pilote CSI Amazon EBS afin d’activer le stockage persistant pour vos charges de travail de machine learning.
Prérequis
Avant de commencer, vous devez exécuter les actions suivantes :
-
Création d’un cluster SageMaker HyperPod avec orchestration Amazon EKS
-
Installation du pilote CSI Amazon EBS avec la version v1.47.0
Autorisations supplémentaires
Pour configurer le module complémentaire du pilote CSI Amazon EBS, suivez les instructions fournies dans Utilisation du stockage de volumes Kubernetes avec Amazon EBS dans le Guide de l’utilisateur Amazon EKS. Vous devez également ajouter les autorisations supplémentaires suivantes au rôle IAM utilisé pour exécuter le module complémentaire de pilote. Notez qu’il s’agit du rôle IAM spécifié dans la configuration de votre compte de service pour le module complémentaire de pilote, et non du rôle d’exécution du cluster HyperPod.
{ "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" } ] }
Utilisation des API
Vous pouvez également utiliser les opérations d’API AttachClusterNodeVolume et DetachClusterNodeVolume pour attacher et détacher vos volumes Amazon EBS aux instances de cluster SageMaker HyperPod EKS.
Les principales exigences relatives à l’utilisation de ces API sont les suivantes.
-
Le volume Amazon EBS et le cluster SageMaker HyperPod EKS doivent appartenir au même Compte AWS.
-
Le principal appelant a besoin d’autorisations minimales spécifiques pour effectuer correctement l’opération d’attachement ou de détachement. Pour plus d’informations sur les autorisations minimales, consultez les sections suivantes.
-
Après avoir attaché un volume à votre nœud HyperPod, suivez les instructions fournies dans Accès aux nœuds d’un cluster SageMaker HyperPod pour accéder au nœud du cluster et dans Rendre un volume disponible à l’utilisation pour monter le volume attaché.
Autorisations nécessaires pour les sagemaker:AttachClusterNodeVolume
{ "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:DescribeVolume" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }
Autorisations nécessaires pour les sagemaker:DetachClusterNodeVolume
{ "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:DescribeVolume" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*" } ] }
Autorisations requises pour les clés AWS KMS
Ajoutez les autorisations AWS KMS suivantes uniquement si vous utilisez des clés KMS gérées par le client pour chiffrer vos volumes Amazon EBS attachés aux nœuds du cluster HyperPod. Ces autorisations ne sont pas requises si vous utilisez des clés KMS gérées par AWS (option de chiffrement par défaut).
{ "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.region.amazonaws.com" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": "aws:ebs:id" }, "Bool": { "kms:GrantIsForAWSResource": true }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt" ] } } } ] }
Note
Ces autorisations AWS KMS ne sont pas requises pour sagemaker:DetachClusterNodeVolume lors du détachement d’un volume CAVA (Cluster Auto Volume Attachment) chiffré à l’aide de clés KMS gérées par le client.