Aller au contenu principal

Installer JupyterLab sur AWS

Vous utiliserez un modèle CloudFormation fourni par Teradata pour installer JupyterLab et le noyau AI Unlimited à partir d'AWS Management Console.

Cela déploie une instance de serveur, avec JupyterLab exécuté dans un conteneur contrôlé par systemd.

Astuce

Pour obtenir une assistance pour l'installation, envoyez un e-mail à l'équipe d'assistance ou demandez à la communauté.

Préparez votre compte AWS

  • Travaillez avec votre administrateur cloud pour vous assurer que vous disposez des autorisations IAM pour créer les ressources cloud définies dans le modèle JupyterLab.

  • Si vous devez accéder à l'instance JupyterLab pour exécuter des commandes ou déboguer, vous pouvez utiliser une paire de clés pour vous connecter en toute sécurité à l'aide de Secure Shell (SSH). Vous aurez besoin de la paire de clés lorsque vous spécifiez les détails de la pile.

  • Si vous prévoyez d'utiliser un Application Load Balancer (ALB) ou un Network Load Balancer (NLB), assurez-vous que vous disposez de l'autorisation de gérer ces services AWS : - AWS Certificate Manager : pour délivrer un nouveau certificat pour l'ID de la zone hébergée dans Route 53. - AWS Route 53 : pour configurer un nom du domaine personnalisé et acheminer les requêtes DNS vers votre équilibreur de charge.

Cloner le référentiel

Le dossier déploiements dans le référentiel GitHub d'AI Unlimited fourni par Teradata contient des fichiers de modèles, de paramètres et de stratégies pour l'installation d'AI Unlimited.

Ouvrez une fenêtre de terminal et clonez le référentiel.

Localisez le modèle Jupyter

Les modèles CloudFormation pour JupyterLab sont disponibles ici dans le référentiel GitHub AI Unlimited :

deployments/aws/templates/jupyter

Choisissez un modèle en fonction de votre intention d'utiliser un équilibreur de charge et de son type.

Remarque

Vous pouvez demander conseil à un administrateur cloud de votre organisation.

- jupyter-alb.yaml : héberge JupyterLab derrière un application load balancer - jupyter-with-nlb.yaml : héberge JupyterLab derrière un network load balancer - jupyter-without-lb.yaml : aucun équilibreur de charge

Charger le modèle

  1. Connectez-vous à Console AWS.
    Remarque

    Les références à AWS Management Console sont à jour au 29 mai 2024.

  2. Sélectionnez la région dans laquelle déployer JupyterLab.
    Nous vous recommandons de sélectionner la région la plus proche de votre lieu de travail principal.
  3. Recherchez CloudFormation et accédez-y.
  4. Sélectionnez Créer une pile, puis Avec de nouvelles ressources (standard).
  5. Sélectionnez Choisir un modèle existant et Charger un fichier modèle.
  6. Sélectionnez le fichier modèle que vous avez choisi d'utiliser et cliquez sur Suivant.

Spécifier les détails et les options de la pile

  1. Fournissez un nom de pile.
  2. Examinez les paramètres. Fournissez des valeurs pour les paramètres obligatoires. Votre organisation peut en exiger d'autres.
Paramètres AWS et JupyterLab
ParamètreDescriptionNotes
InstanceTypeLe type d'instance EC2 que vous souhaitez utiliser pour le service.Obligatoire avec la valeur par défaut
Par défaut : t3.small
Nous vous recommandons d'utiliser le type d'instance par défaut pour réduire les coûts.
RootVolumeSizeLa taille du disque racine que vous souhaitez associer à l'instance, en Go.Obligatoire avec la valeur par défaut
Par défaut : 8
Prend en charge les valeurs entre 8 et 1 000.
TerminationProtectionActiver la protection contre la fin de l'instance.Obligatoire avec la valeur par défaut
Par défaut : faux
IamRoleSpécifie si CloudFormation doit créer un rôle IAM ou utiliser un rôle existant.Obligatoire avec la valeur par défaut
Par défaut : Nouveau
Les options prises en charge sont : Nouveau ou Existant
IamRoleNameLe nom du rôle IAM à attribuer à l'instance, soit un rôle IAM existant, soit un rôle IAM récemment créé.Facultatif avec la valeur par défaut
Valeur par défaut : ai-unlimited-iam-role
Si vous nommez un nouveau rôle IAM, CloudFormation requiert la capacité CAPABILITY_NAMED_IAM. Laissez ce champ vide pour utiliser un nom généré automatiquement.
IamPermissions
Boundary
L'ARN de la limite des autorisations IAM à associer au rôle IAM attribué à l'instance.Facultatif
Par défaut : NA
AvailabilityZoneLa zone de disponibilité dans laquelle vous souhaitez déployer l'instance.Obligatoire
Par défaut : NA
La valeur doit correspondre au sous-réseau, à la zone de tous les volumes préexistants et le type d'instance doit être disponible dans la zone sélectionnée.
LoadBalancingSpécifie si l'instance est accessible via un NLB.Obligatoire avec la valeur par défaut
Valeur par défaut : NetworkLoadBalancer
Les options prises en charge sont : NetworkLoadBalancer ou Aucun
LoadBalancerSchemeSi un équilibreur de charge est utilisé, ce champ spécifie si l'instance est accessible depuis Internet ou uniquement depuis le VPC.Facultatif avec la valeur par défaut
Par défaut : Internet-facing
Le nom DNS d'un équilibreur de charge Internet-facing peut être résolu publiquement par les adresses IP publiques des nœuds. Par conséquent, les équilibreurs de charge Internet-facing peuvent acheminer les demandes des clients via Internet. Les nœuds d'un équilibreur de charge interne n'ont que des adresses IP privées. Le nom DNS d'un équilibreur de charge interne peut être résolu publiquement par les adresses IP personnelles des nœuds. Par conséquent, les équilibreurs de charge internes peuvent acheminer les demandes des clients ayant accès au VPC pour l'équilibreur de charge.
PrivéSpécifie si le service est déployé dans un réseau privé sans adresses IP publiques.Obligatoire
Par défaut : faux
Assurez-vous de sélectionner l'option Activer l'attribution automatique d'adresses IPv4 publiques dans le sous-réseau où réside le gestionnaire. Si cette option n'est pas sélectionnée, l'installation peut échouer.
SessionSpécifie si vous pouvez utiliser AWS Session Manager pour accéder à l'instance.Obligatoire
Par défaut : faux
VpcLe réseau sur lequel vous souhaitez déployer l'instance.Obligatoire
Par défaut : NA
Sous-réseauLe sous-réseau sur lequel vous souhaitez déployer l'instance.Obligatoire
Par défaut : NA
Le sous-réseau doit résider dans la zone de disponibilité sélectionnée.
KeyNameLa paire de clés publique/privée qui vous permet de vous connecter en toute sécurité à votre instance après son lancement. Lorsque vous créez un compte AWS, il s'agit de la paire de clés que vous créez dans votre région préférée.Facultatif
Par défaut : NA
Laissez ce champ vide si vous ne souhaitez pas inclure les clés SSH.
AccessCIDRLa plage d'adresses IP CIDR autorisée à accéder à l'instance.Facultatif
Par défaut : NA
Nous vous recommandons de définir cette valeur sur une plage d'adresses IP approuvées. Définissez au moins AccessCIDR, PrefixList ou SecurityGroup pour autoriser le trafic entrant, sauf si vous créez des règles d'entrée de groupe de sécurité personnalisées.
PrefixListLa liste de préfixes que vous pouvez utiliser pour communiquer avec l'instance. Il s'agit d'un ensemble de blocs CIDR qui définissent un ensemble de plages d'adresses IP nécessitant la même application de stratégie.Facultatif
Par défaut : NA
Définissez au moins l'un des éléments suivants : AccessCIDR, PrefixList ou SecurityGroup pour autoriser le trafic entrant, sauf si vous créez des règles d'entrée de groupe de sécurité personnalisées.
SecurityGroupLe pare-feu virtuel qui contrôle le trafic entrant et sortant vers l'instance.Facultatif
Par défaut : NA
Implémenté sous la forme d'un ensemble de règles spécifiant les protocoles, ports et adresses IP ou blocs CIDR autorisés à accéder à l'instance. Définissez au moins l'un des éléments suivants : AccessCIDR, PrefixList ou SecurityGroup pour autoriser le trafic entrant, sauf si vous créez des règles d'entrée de groupe de sécurité personnalisées.
UsePersistentVolumeIndique si vous souhaitez utiliser un volume persistant nouveau ou existant pour stocker des données. Consultez En savoir plus : Utilisation d'un volume persistant sous la section Paramètres.Facultatif avec valeur par défaut
Par défaut : Nouveau
Les options prises en charge sont un nouveau volume persistant ou un volume existant, selon votre cas d'utilisation.
PersistentVolumeSizeLa taille du volume persistant que vous pouvez associer à l'instance, en Go.Obligatoire avec la valeur par défaut
Par défaut : 20
Prend en charge les valeurs comprises entre 8 et 1 000
ExistingPersistent
VolumeId
L'ID du volume persistant existant que vous pouvez associer à l'instance.Obligatoire si UsePersistentVolume est défini sur Existant
Par défaut : NA
Le volume persistant doit se trouver dans la même zone de disponibilité que l'instance AI Unlimited.
PersistentVolume
DeletionPolicy
Le comportement du volume persistant lorsque vous supprimez le déploiement de CloudFormation.Obligatoire avec la valeur par défaut
Par défaut : Conserver
Les options prises en charge sont : Supprimer, Conserver, RetainExceptOnCreate et Instantané.
LatestAmiIdL'ID de l'image qui pointe vers la dernière version d'AMI. Cette valeur est utilisée pour la recherche SSM.Obligatoire avec la valeur par défaut
Par défaut : NA
Ce déploiement utilise la dernière image ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 disponible.
IMPORTANT : la modification de cette valeur peut endommager la pile.
JupyterHttpPortLe port pour accéder à l'interface utilisateur du service JupyterLab.Obligatoire avec la valeur par défaut
Par défaut : 8 888
JupyterVersionLa version de JupyterLab que vous souhaitez déployer.Obligatoire avec la valeur par défaut
Par défaut : dernière
La valeur est une balise de version de conteneur, par exemple, dernière.
JupyterTokenLe jeton ou le mot de passe utilisé pour accéder à JupyterLab depuis l'interface utilisateur.Obligatoire
Par défaut : NA
Le jeton doit commencer par une lettre et contenir uniquement des caractères alphanumériques. Le modèle autorisé est ^[a-zA-Z][a-zA-Z0-9-]*.
En savoir plus : utilisation d'un volume persistant

L'instance JupyterLab s'exécute dans un conteneur et enregistre ses données de configuration dans une base de données dans le volume racine de l'instance. Ces données sont conservées si vous arrêtez, redémarrez ou effectuez un instantané et relancez l'instance.

Un volume persistant stocke les données d'une application conteneurisée au-delà de la durée de vie du conteneur, du pod ou du nœud dans lequel il s'exécute.

Sans volume persistant

Si le conteneur, le pod ou le nœud tombe en panne ou s'arrête, vous perdez les données de configuration de JupyterLab. Vous pouvez déployer une nouvelle instance JupyterLab, mais pas dans le même état que celle qui a été perdue.

Avec un volume persistant

Si le conteneur, le pod ou le nœud tombe en panne ou s'arrête et que les données de configuration JupyterLab sont stockées dans un volume persistant, vous pouvez déployer une nouvelle instance JupyterLab qui a la même configuration que celle qui a été perdue.

Exemple

  1. Déployez JupyterLab et incluez ces paramètres :
    • UsePersistentVolume: Nouveau
    • PersistentVolumeDeletionPolicy: Conserver
  2. Après avoir créé la pile, dans l'onglet Sorties, notez le volume-id.
  3. Utilisez JupyterLab.
  4. Si l'instance JupyterLab est perdue, déployez à nouveau JupyterLab et incluez ces paramètres :
    • UsePersistentVolume: Nouveau
    • PersistentVolumeDeletionPolicy: Conserver
    • ExistingPersistentVolumeId: la valeur que vous avez notée à l'étape 2

La nouvelle instance JupyterLab a la même configuration que celle qui a été perdue.

  1. Sélectionnez Suivant.
  2. Configurer les options de la pile selon vos besoins, puis sélectionnez Suivant.

Examiner et créer la pile

  1. Examinez les paramètres du modèle.
  2. Cochez la case pour confirmer que le modèle créera des ressources IAM.
  3. Sélectionnez Soumettre pour déployer la pile.
    Dans l'onglet Événements, vous pouvez surveiller la progression. Lorsque l'état de toutes les ressources est CREATE_COMPLETE, JupyterLab est prêt.

L'onglet Sorties affiche l'URL permettant d'accéder à JupyterLab.

Également intéressant