Configurer un environnement de développement à distance sur un serveur AWS avec VSCode

Summary

Ce cours porte sur la mise en place d'environnements de développement à distance (également connus sous le nom d'"interprètes à distance") afin que vous puissiez coder localement mais exécuter votre code sur un serveur distant.

Les environnements de développement à distance présentent plusieurs avantages importants :

Dans cette vidéo, nous montrons comment créer une instance de serveur sur AWS EC2, puis configurer l'environnement de développement à distance dans VSCode.

Voici la structure du cours :

Transcript

Bonjour, ici Julien Salinas de NLP Cloud.

Aujourd'hui, je vais vous montrer comment mettre en place un environnement de développement à distance afin que vous puissiez coder sur votre machine locale, mais exécuter votre code sur un serveur AWS distant.

Il n'y a pas de prérequis pour ce cours, alors c'est parti.

Qu'entendons-nous par environnement de développement à distance ? Cela signifie en fait que nous allons coder localement dans VS Code, comme la plupart d'entre nous aujourd'hui.

Si vous utilisez un autre environnement de développement, vous devez vérifier si les interpréteurs à distance ou les environnements de développement à distance sont pris en charge ou non, et nous allons exécuter le code à distance sur une instance AWS.

Nous avons choisi AWS aujourd'hui parce que je sais que la plupart d'entre vous utilisent AWS dans leur flux de production quotidien, mais si vous utilisez GCP ou Azure ou OVH ou Scaleware ou quoi que ce soit d'autre, le processus sera très similaire.

Comme vous le verrez, il s'agira de provisionner une instance, de récupérer l'adresse IP et de l'utiliser localement dans VS Code pour se connecter par SSH à l'instance.

Pourquoi utilisons-nous un environnement de développement à distance ? La première raison est que nous voulons pouvoir réduire le coût de notre environnement de développement local.

Il se peut que vous ne souhaitiez pas acheter un MacBook Pro Ultra M2 haut de gamme très coûteux, par exemple, et dans ce cas, il peut être plus rentable pour vous d'acheter une machine locale bas de gamme, mais d'exécuter votre code à distance chaque fois que vous en avez besoin.

Une deuxième raison très importante, en particulier pour les ingénieurs en apprentissage automatique, est que vous aurez parfois besoin d'accéder à du matériel haut de gamme comme des GPU, par exemple, et que ce matériel n'est pas nécessairement disponible sur votre machine locale.

Par exemple, si vous souhaitez avoir accès à un GPU NVIDIA A100 ou H100, il est certain que vous ne pourrez pas avoir accès à ces GPU localement.

Comme nous allons le montrer aujourd'hui, cela s'avère très utile car, autrement, il est impossible d'accéder à des machines spécifiques pour le développement de GPU.

Enfin, le fait d'utiliser un environnement distant est une excellente chose car il s'agit en fait d'un environnement parfaitement isolé, ce qui signifie que si vous souhaitez installer des bibliothèques, des frameworks ou des pilotes spécifiques, vous pouvez le faire sur votre machine AWS distante.

Et si demain vous devez installer, disons, une autre version de vos pilotes NVIDIA et de la boîte à outils CUDA ou des bibliothèques Python, des choses comme ça, il vous suffit de provisionner un deuxième serveur et vous êtes parfaitement sûr que les deux serveurs ne vont pas interférer.

Les deux configurations seront parfaitement isolées.

Vous pouvez donc aussi, bien sûr, réaliser des choses similaires avec Docker ou même avec des environnements virtuels en Python, par exemple.

Mais imaginez que vous souhaitiez installer plusieurs versions de vos pilotes NVIDIA.

Cela va être beaucoup plus complexe.

Dans ce cas, le provisionnement de plusieurs environnements distants peut être la seule solution pour vous.

La première chose que nous allons faire est donc de nous connecter à notre console AWS et de créer une instance AWS de base, une instance CPU, que nous utiliserons ensuite localement à partir de VS Code.

Nous y voilà.

Je suis maintenant sur ma console AWS.

Si c'est la première fois que vous utilisez AWS, il vous suffit de créer un compte avec un mot de passe.

Je ne pense pas qu'ils demandent trop d'informations.

Vous pouvez maintenant créer une instance dans EC2.

Nous allons cliquer sur lancer l'instance.

Nous pouvons donner un nom à notre instance.

Appelons-le, par exemple, environnement de développement.

D'accord.

Maintenant, la partie importante.

Nous devons choisir un système d'exploitation pour notre instance.

Vous voulez vraiment choisir Linux et en ce qui me concerne, j'aime beaucoup Ubuntu parce qu'il est standard et je suis sûr que les pilotes les plus récents seront installés sur Ubuntu, en particulier avec les pilotes NVIDIA, cela peut vraiment aider.

J'ai donc choisi Ubuntu.

Si vous utilisez Linux pour la première fois, ne vous inquiétez pas.

Nous n'aurons pas besoin de beaucoup d'astuces ou de commandes Linux.

Nous allons essentiellement tout faire à partir du code VS, sauf que, bien sûr, derrière le capot se trouvera Linux, mais je ne pense pas que cela vous posera trop de problèmes.

Vous pouvez laisser la version 2204 LTS telle quelle.

Nous allons maintenant sélectionner une simple instance de CPU.

Par exemple, sur AWS, vous avez l'instance M5, M5 large, deux CPU, huit gigas de mémoire.

Parfait pour nous.

Peut-être même trop pour aujourd'hui, mais à l'avenir, vous devrez choisir l'instance qui répondra parfaitement à vos besoins.

D'accord.

Nous devons maintenant utiliser une paire de clés SSH.

Si c'est la première fois que vous utilisez SSH, vous devez créer votre propre paire de clés sur AWS, créer une nouvelle paire de clés.

Appelons-la paire de clés de test.

Vous pouvez sélectionner le format PEM, créer une paire de clés.

Et maintenant, je suis en train de le télécharger, désolé, sur ma machine.

D'accord.

Il n'est pas nécessaire de modifier le groupe de sécurité ici.

Par défaut, le port SSH sera ouvert, ce qui est normal.

C'est ce dont nous avons besoin.

Huit gigas de SSD, c'est parfait pour aujourd'hui.

Et nous pouvons cliquer sur lancer l'instance.

D'accord.

L'instance est maintenant prête.

S'il s'agit de votre première création d'instance sur AWS, vous devrez peut-être demander au support AWS d'augmenter votre quota.

Je n'en suis pas tout à fait sûr.

Pour les instances très coûteuses, comme les instances GPU, vous devez demander une augmentation de quota.

Pour un simple exemple de M5, je ne suis pas sûr.

Mais si vous obtenez une erreur ici, demandant une augmentation de quota, c'est ce que vous allez faire.

Voici notre exemple.

Comme vous pouvez le voir, il est déjà en cours d'exécution.

C'était très rapide.

M5 grand.

Et ici, à droite, nous avons l'adresse IP que nous allons utiliser.

Maintenant que notre instance est créée et que notre paire de clés SSH est téléchargée sur notre machine, nous devons ouvrir VS Code et créer la connexion SSH à notre serveur distant.

Si c'est la première fois que vous utilisez un client SSH sous Windows, vous devez l'activer.

Voici un tutoriel de l'équipe Windows sur la façon de procéder.

Vous pouvez simplement taper create SSH client on Windows, sur Google, et vous trouverez de nombreux tutoriels.

Voici la version officielle.

Si l'on se penche un peu sur la question, on s'aperçoit que c'est très simple.

Il suffit d'activer quelque chose dans les applications Windows.

Si vous êtes sous Linux, il est installé par défaut.

Je suis donc maintenant dans VS Code.

En bas à gauche, vous pouvez voir ce bouton ici.

Je clique sur connecter la fenêtre actuelle à l'hôte.

Si c'est la première fois que vous utilisez ce module de connexion à distance, peut-être que VS Code va télécharger le plugin.

Il peut donc s'écouler quelques secondes avant que vous puissiez accéder à la fonction.

Je configure les hôtes, en cliquant sur configurer les hôtes.

Je suis sous Windows aujourd'hui, donc voici où se trouve ma configuration.

Et ici, c'est le fichier de configuration que je dois remplir.

Le plus important est donc de récupérer l'adresse IP de notre instance et de la coller ici.

Parfait.

Nous pouvons donner un nom à notre connexion, mais elle n'existe que pour nous.

Appelons-le DevHouse.

Le nom d'utilisateur est le nom d'utilisateur utilisé par le client SSH pour se connecter à l'instance.

Etant donné que nous avons provisionné le serveur Ubuntu, le nom d'utilisateur est Ubuntu par défaut.

Lorsque j'ai téléchargé la paire de clés, la paire de clés SSH, je l'ai placée sur mon bureau sous Windows.

C'est donc ici que VS Code va récupérer la clé.

Vous pouvez enregistrer le fichier et cliquer maintenant en bas, connecter la fenêtre actuelle à l'hôte à nouveau.

DevHouse est ce que nous venons de créer.

Vous devrez attendre ici.

Très bon.

Vous pouvez voir que VS Code me demande un échange de clés.

C'est donc la première fois que nous nous connectons à cette instance.

Pour des raisons de sécurité, nous devons donc accepter cette nouvelle empreinte digitale.

Bon.

Cela ne semble pas très spectaculaire, mais nous voici maintenant sur notre instance AWS distante.

Et vous pouvez le voir parce qu'en bas à gauche, vous pouvez voir SSH.

Pour le vérifier, vous pouvez ouvrir un terminal en haut de la page, en cliquant sur nouveau terminal.

Et là, vous pouvez voir que ce terminal n'est absolument pas le terminal de ma machine Windows locale.

Je suis sur une machine Ubuntu.

Et si je le souhaite, je peux utiliser certaines commandes Linux comme d'habitude sous Linux, comme la liste des répertoires.

Nous n'avons rien ici, nous pouvons donc créer un répertoire.

Supposons que nous voulions créer un environnement de développement pour effectuer quelques tests.

Nous avons maintenant créé notre nouveau dossier de test.

Soit vous voulez tout faire en ligne de commande, soit, et c'est encore mieux, vous voulez utiliser l'interface graphique de VS Code pour parcourir votre fichier comme d'habitude.

Vous cliquez donc en haut, sur ouvrir le dossier.

Vous voyez ici le répertoire de test que je viens de créer.

VS Code s'ouvre à nouveau, mais cette fois dans le dossier spécifique que j'ai mentionné.

À partir de maintenant, vous pouvez commencer à développer comme d'habitude, comme si vous étiez sur votre machine locale, sauf que votre code sera exécuté sur AWS.

Essayons donc.

Par exemple, créons un programme Python simple, disant hello, new file, test.py, print, hello

Enregistrer le fichier.

Et dans votre console, nous pouvons maintenant exécuter le fichier.

Bonjour.

Vous venez d'exécuter avec succès votre premier code distant sur AWS.

C'est tout pour aujourd'hui.

Vous pouvez désormais utiliser votre environnement de développement à distance autant que vous le souhaitez.

N'oubliez pas de désactiver votre instance AWS lorsque vous n'en avez plus besoin.

Et à bientôt.