Pourquoi mon bloc-notes Amazon SageMaker Studio en mode VPC uniquement ne se connecte-t-il pas à mon application KernelGateway ?

Dernière mise à jour : 09/12/2022

Je rencontre des problèmes de connectivité entre mon bloc-notes Amazon SageMaker Studio en mode VPC uniquement et mon application KernelGateway.

Brève description

Les erreurs suivantes peuvent s'afficher lorsque vous utilisez SageMaker Studio en mode VPC uniquement et que vous ne parvenez pas à lancer l'application KernelGateway :

Vous pouvez lancer SageMaker Studio, mais votre noyau échoue avec l'erreur suivante :

SageMaker Studio is unable to connect KernelGateway App. In VPCOnly mode, please ensure that security groups allow TCP traffic within the security group

Cette erreur s'affiche généralement parce que le groupe de sécurité ne se référence pas automatiquement pour permettre la connectivité entre les instances de votre domaine SageMaker.

Supposons par exemple que vous puissiez lancer SageMaker Studio, mais le chargement prend du temps et le noyau ne parvient pas à se lancer :

Failed to start kernel
Failed to launch app [None]. SageMaker Studio is unable to reach SageMaker endpoint. Please ensure your VPC has connectivity to SageMaker via Internet or VPC Endpoint. If you are using VPC Endpoints, please ensure Security Groups allows traffic between Studio and VPC endpoints.

Cette erreur se produit lorsque votre domaine VPC uniquement ne parvient pas à se connecter à Internet ou aux points de terminaison Amazon Virtual Private Cloud (Amazon VPC). Cela peut être dû à plusieurs raisons, notamment les suivantes :

  • Les groupes de sécurité ne sont pas correctement configurés.
  • Votre sous-réseau ne possède pas les points de terminaison d'un VPC appropriés.
  • Votre domaine est connecté à un sous-réseau privé et aucune passerelle NAT active n'est ajoutée à votre table de routage.
  • Vous configurez SageMaker Studio pour qu'il se connecte à des sous-réseaux publics.

Solution

Assurez-vous que les groupes de sécurité pour SageMaker Studio incluent les règles requises

Assurez-vous que le trafic du système de fichiers réseau AWS (AWS NFS) entre le domaine et le volume Amazon Elastic File System (Amazon EFS) est autorisé via TCP sur le port 2049. Vos données SageMaker Studio sont stockées à l'aide d'Amazon EFS. Par conséquent, vous devez disposer des règles permettant d'autoriser les connexions entrantes et sortantes à des fins de stockage.

Pour autoriser le trafic entrant depuis Amazon EFS vers vos ressources, procédez comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, sélectionnez Groupes de sécurité.
  3. Sélectionnez le groupe de sécurité que vous souhaitez mettre à jour.
  4. Choisissez Actions, puis Modifier la tâche.
  5. Choisissez Add rule (Ajouter une règle) et procédez comme suit :
    Pour Type, sélectionnez NFS.
    Pour Source, choisissez Personnalisé, puis entrez l'identifiant Amazon EFS.
  6. Choisissez Save rules (Enregistrer les règles).

Vous devez autoriser le trafic TCP au sein du groupe de sécurité pour autoriser la connectivité entre les applications JupyterServer et KernelGateway. Comme vous avez créé le domaine Studio en mode VPC uniquement, vous devez spécifier au moins un groupe de sécurité pour les ressources de votre domaine SageMaker Studio. Ce groupe de sécurité doit autoriser le trafic entrant via TCP sur les ports 8192-65535 et tout le trafic sortant vers 0.0.0.0/0.

Pour activer la connectivité entre les applications JupyterServer et KernelGateway, procédez comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, sélectionnez Groupes de sécurité.
  3. Sélectionnez le groupe de sécurité que vous souhaitez mettre à jour.
  4. Choisissez Actions, puis Modifier la tâche.
  5. Sélectionnez Ajouter une règle et procédez comme suit :
    Pour Type, choisissez TCP personnalisé.
    Pour Plage de ports, saisissez 8192-65535.
    Pour Source, choisissez Personnalisé, puis saisissez l'ID du groupe de sécurité que vous modifiez.
  6. Cliquez sur Enregistrer les règles.

Lorsque vous accédez à une ressource de votre Amazon VPC depuis votre bloc-notes SageMaker Studio, le trafic provenant du compte de service SageMaker est acheminé via votre interface réseau Elastic. Notez que les applications JupyterServer et KernelGateway se trouvent toutes deux dans votre compte de service SageMaker VPC. Ils communiquent entre eux via les interfaces réseau élastiques connectées à votre VPC. Bien que ces applications fassent partie du compte de service de domaine SageMaker Studio, elles s'exécutent sur différentes instances Amazon Elastic Compute Cloud (Amazon EC2). Ces applications utilisent les ports éphémères pour établir une connexion entre elles. Il n'existe aucun port spécifique sur lequel ces applications se connectent. Il est donc recommandé d'autoriser l'ouverture de tous les ports TCP dans des groupes de sécurité autoréférencés. Pour plus d'informations, consultez Découvrez en détail l'architecture des blocs-notes Amazon SageMaker Studio (langue française non garantie).

Assurez-vous d'avoir créé les points de terminaison d'un VPC requis

Si vos ressources SageMaker Studio ne nécessitent pas d'accès à Internet, vous n'avez pas besoin d'ajouter de passerelle NAT. Toutefois, les points de terminaison suivants sont nécessaires pour exécuter les blocs-notes Studio :

  • API SageMaker : com.amazonaws.<aws-region>.sagemaker.api
  • Exécution de SageMaker : com.amazonaws.<aws-region>.sagemaker.runtime

Assurez-vous de créer les points de terminaison suivants pour accéder à Amazon Simple Storage Service (Amazon S3) et aux modèles de projet :

  • Pour Amazon S3 : com.amazonaws.<aws-region>.s3
  • Pour les modèles de projet Amazon SageMaker : com.amazonaws.<aws-region>.servicecatalog

Veillez à associer les groupes de sécurité de votre VPC à ces points de terminaison d'un VPC en procédant comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le panneau de navigation, choisissez Points de terminaison.
  3. Choisissez le terminal que vous souhaitez mettre à jour.
  4. Choisissez Actions, puis Gérer les adresses IP.
  5. Sélectionnez le groupe de sécurité qui doit être associé à ce terminal.
  6. Choisissez Save (Enregistrer).

Pour plus d'informations, veuillez consulter les sections suivantes :

Veillez à utiliser une passerelle NAT si vous avez besoin d'une connexion Internet

Si vos ressources SageMaker Studio nécessitent un accès à Internet, assurez-vous d'abord que SageMaker Studio est configuré de façon à se connecter à des sous-réseaux privés. Créez ensuite une passerelle NAT et autorisez le trafic provenant de cette dernière via la table de routage de votre sous-réseau privé. Pour plus d'informations, consultez Comment configurer une passerelle NAT pour le sous-réseau privé dans Amazon VPC ? Notez que le domaine SageMaker Studio connecté à un sous-réseau public ne vous permet pas de vous connecter à Internet.

Veillez à ce que la configuration réseau requise pour votre VPC soit respectée

Si vous avez lancé votre SageMaker Studio en mode VPC uniquement, assurez-vous que votre VPC répond aux exigences suivantes :

  • Les sous-réseaux doivent disposer d'un nombre suffisant d'adresses IP disponibles pour l'instance.
  • Pour autoriser l'accès à Internet, veillez à associer votre domaine SageMaker à un sous-réseau privé lors de la création du domaine. Utilisez également la passerelle NAT pour accéder à Internet.
  • Si vous utilisez un point de terminaison VPC pour exécuter les API SageMaker, assurez-vous que les attributs Enable DNS hostnames et Enable DNS Support sont définis sur true pour votre VPC. Cela est nécessaire pour que votre VPC puisse se connecter au point de terminaison de l'API SageMaker lors du démarrage du noyau.

Vous pouvez utiliser les commandes de l'interface de ligne de commande AWS (AWS CLI) pour vous assurer que les bons groupes de sécurité sont attachés au domaine. Pour mettre à jour les paramètres utilisateur par défaut de votre domaine Studio afin d'utiliser le nouveau groupe de sécurité, utilisez la commande update-domain :

aws sagemaker update-domain –domain-id <value> --default-user-settings SecurityGroups=<list>

Vous pouvez également reconfigurer le domaine en recréant le domaine associé aux groupes de sécurité nécessaires. La sortie associée au paramètre SecurityGroups répertorie tous les groupes de sécurité du VPC que Studio utilise pour la communication.

Remarque : Pour exécuter la commande précédente, vous devez supprimer toutes les applications ayant le statut InService de vos profils utilisateur.

Une fois la commande update-domain exécutée avec succès, vous pouvez vérifier votre domaine à l'aide de la commande describe-domain :

Exemple :

$ aws sagemaker describe-domain --domain-id d-xyzxyz

Relancez ensuite SageMaker Studio et vérifiez que le bloc-notes se lance correctement. Vous pouvez également tester la connectivité Internet en exécutant !curl amazon.com depuis la cellule d'un bloc-notes.

Remarque : si vous recevez des erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

Supprimez l'application JupyterServer et créez-en une nouvelle pour que les paramètres mis à jour prennent effet. Vous pouvez utiliser votre profil utilisateur SageMaker Studio après avoir mis à jour les paramètres Amazon VPC. Pour plus d'informations, consultez la section Conditions requises pour utiliser le mode VPC uniquement dans Connecter les blocs-notes SageMaker Studio d'un VPC à des ressources externes.

Autres éléments à prendre en compte

Si un seul utilisateur rencontre ce problème, vérifiez si l'application par défaut a été lancée avant la fin des mises à jour du VPC. Dans ce cas, l'application JupyterServer par défaut n'est pas automatiquement mise à jour pour utiliser la nouvelle configuration VPC, ce qui entraîne des problèmes de connectivité. Vérifiez également si l'application JupyterServer par défaut a été lancée il y a plusieurs semaines ou plusieurs mois. Cela peut entraîner la présence de fichiers journaux et de fichiers temporaires volumineux dans l'application. Essayez de recréer l'application par défaut pour libérer de l'espace ou pour vous assurer que l'application utilise la configuration VPC mise à jour.

Le problème peut se produire si les utilisateurs de SageMaker Studio sont configurés avec un rôle d'exécution différent. Assurez-vous que les autorisations relatives au rôle d'exécution des utilisateurs incluent les politiques requises. Ces politiques doivent activer le rôle d'exécution pour exécuter l'actionDescribeApp requise pour créer des blocs-notes Studio. Après avoir mis à jour ces autorisations pour le rôle d'exécution, essayez de provisionner les blocs-notes Studio en mode VPC uniquement.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?