• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Mis à jour le 28/03/2019

Lancez une session de notebook Jupyter sur AWS

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Pour bien profiter de ce chapitre, vous devez être un peu familiarisé avec les instances AWS et la ligne de commande sous Linux. En résumé, vous devez vous être inscrit sur AWS, pouvoir lancer une instance Ubuntu, et vous y connecter en SSH.

Configurez l'accès web à votre serveur

Les notebooks Jupyter s'utilisent dans le navigateur. Mais pour accéder à notre machine depuis un navigateur, nous devons demander à Amazon d'ouvrir un port utilisé par Jupyter. Par défaut, nous allons utiliser les ports 8888 et 443 (pour les protocoles http et https, respectivement).

Dans l'interface de gestion d'AWS, dans la barre de menu à gauche, cliquez sur Groupes de sécurité dans la rubrique Réseau et Sécurité. Vous devriez arriver sur une page ressemblant à ceci :

Interface de gestion des groupes de sécurité
Interface de gestion des groupes de sécurité

Cliquez sur le bouton Créer un groupe de sécurité. Dans le formulaire qui s'ouvre, remplissez les champs comme ceci et cliquez sur Créer.

Réglages du groupe de sécurité
Réglages du groupe de sécurité

Rendez-vous sur l'interface web d'AWS, et accédez à la liste de vos instances. Elle devrait ressembler à ceci:

La liste des instances AWS
La liste des instances AWS

Cliquez sur votre instance favorite, et ensuite sur le bouton Actions en haut de l'écran. Dans les menus qui s'ouvrent, choisissez Mise en réseau, puis Changer les groupes de sécurité.

Changer les groupes de sécurité de votre serveur
Changer les groupes de sécurité de votre serveur

Dans la liste qui s'affiche, choisissez le groupe que nous venons de créer. Vous pouvez décocher les autres groupes éventuellement présents. Enfin, cliquer sur Attribuer les groupes de sécurité.

Voilà, c'est terminé. Nous pouvons maintenant nous concentrer sur la préparation de notre machine.

Installez Anaconda sur votre serveur

Anaconda est une distribution de Python, c'est-à-dire un paquet qui contient Python et plusieurs bibliothèques et utilitaires associés. Par défaut, elle contient toutes (ou quasiment) les librairies dont vous aurez besoin pour la Data Science. Nous allons l'installer sur notre machine. Cela est très facile grâce à l'installateur fourni sur le site officiel

Nous allons faire télécharger le fichier à notre machine, et le lui faire installer. Pour cela, vous devez d'abord vous connecter en SSH à votre serveur pour avoir une ligne de commande. Une fois que c'est fait, tapez ceci dans la ligne de commande:

wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh

Le fichier est assez volumineux et peut prendre quelques secondes à être téléchargé. Une fois qu'il est téléchargé, vous pouvez vérifier sa présence grâce à la commande  ls.

Nous allons exécuter ce script.

bash Anaconda3-5.0.1-Linux-x86_64.sh

Ceci lance le processus d'installation d'Anaconda. Vous devrez accepter la licence d'utilisation. Choisissez d'installer Anaconda dans le répertoire par défaut, et patientez. A la fin de l'installation, répondez yes à la question :

Do you wish the installer to prepend the Anaconda3 install location
to PATH in your /home/ec2-user/.bashrc ? [yes|no]

Une fois l'installation finie, il nous reste un tout petit réglage en plus. Nous pouvons soit fermer la session SSH et en ouvrir une autre, soit taper cette commande:

source .bashrc

Si tout va bien, nous devrions pouvoir vérifier notre installation en tapant  which pip.

~/anaconda3/bin/pip

Voilà ! Nous avons installé Anaconda. Nous devons maintenant configurer Jupyter pour permettre les accès distants.

Configurez Jupyter pour les accès distants

Par défaut, Jupyter ne permet que les connexions depuis la même machine que celle sur laquelle le serveur tourne. Pour nous y connecter depuis l'extérieur, nous avons quelques réglages à faire. Ce qui se passe exactement lorsque nous allons taper les commandes suivantes sort du champ de ce cours. Vous pouvez vous contenter des les copier-coller dans une fenêtre de commande SSH. Je vais quand même tenter de vous donner une idée de ce qui se passe.

Générez un fichier de configuration et un mot de passe

La première étape est de générer un fichier de configuration. Cette commande crée un fichier de configuration par défaut, que nous allons modifier par la suite.

jupyter notebook --generate-config

Ensuite, nous allons générer un mot de passe.

key=$(python -c "from notebook.auth import passwd; print(passwd())")

Cette commande vous demandera de taper deux fois un mot de passe de votre choix, et l'enregistre dans une variable. Tâchez de vous souvenir de ce mot de passe. Vous en aurez besoin pour vous connecter au serveur.

Configurez le protocole HTTPS pour Jupyter

cd ~
mkdir certs
cd certs
certdir=$(pwd)
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.key -out mycert.pem

Ces commandes créent un dossier appelé certs, et y génèrent les clés de chiffrement nécessaires pour une connexion sécurisée (enfin, à peu près sécurisée, mais cela sort du champ de ce cours). La dernière commande vous posera plein de questions. Vous pouvez laisser la réponse vide à toutes les questions. Contentez vous d'appuyer sur Entrée jusqu'à ce que la commande termine.

Modifiez le fichier de configuration de Jupyter

C'est presque fini. Nous n'avons plus qu'à insérer toutes ces informations dans le fichier de configuration de Jupyter. Pour cela, il suffit de taper les commandes suivantes (vous pouvez les copier-coller) :

cd ~
sed -i "1a\
c = get_config()\\
c.NotebookApp.certfile = u\'$certdir/mycert.pem\'\\
c.NotebookApp.keyfile = u\'$certdir/mycert.key\'\\
c.NotebookApp.ip = '*'\\
c.NotebookApp.open_browser = False\\
c.NotebookApp.password = u\'$key\'\\
c.NotebookApp.port = 8888" .jupyter/jupyter_notebook_config.py

Ca y est, tout est prêt.

Lancez un notebook Jupyter

Nous pouvons enfin lancer une session Jupyter et nous y connecter depuis notre machine personnelle. Tout ce que nous avons fait jusqu'ici n'a besoin d'être fait qu'une seule fois. Pour lancer une session du notebook, tapez la commande suivante dans une fenêtre SSH.

jupyter notebook

Ensuite, nous devons nous connecter à cette session. Lancez un navigateur sur votre machine personnelle. Vous devez aller à l'adresse  https://<adresse de votre serveur aws>:8888.

Jupyter vous demandera ensuite de taper votre mot de passe. Une fois cela fait, vous arriverez enfin sur la page d'accueil des notebooks.

La page d'accueil de Jupyter
La page d'accueil de Jupyter

Exemple de certificat de réussite
Exemple de certificat de réussite