¿Problemas con la IA o el desarrollo full-stack? Nuestros expertos están aquí para guiarle: asesoramiento personalizado, integración técnica y mucho más. Contacte con nosotros en [email protected].

Configurar un entorno de desarrollo remoto en un servidor de AWS con VSCode

Summary

Este curso trata sobre la configuración de entornos de desarrollo remotos (también conocidos como "intérpretes remotos") para que puedas codificar localmente pero ejecutar tu código en un servidor remoto.

Los entornos de desarrollo remotos ofrecen grandes ventajas:

En este vídeo mostramos cómo crear una instancia de servidor en AWS EC2 y, a continuación, configurar el entorno de desarrollo remoto en VSCode.

Esta es la estructura del curso:

Transcript

Hola, soy Julien Salinas de NLP Cloud.

Hoy, voy a mostrarte cómo configurar un entorno de desarrollo remoto para que puedas codificar en tu máquina local, pero ejecutar tu código en un servidor de AWS remoto.

No hay requisitos previos para este curso, así que allá vamos.

¿Qué entendemos por entorno de desarrollo remoto? En realidad significa que vamos a codificar localmente en VS Code, como la mayoría de nosotros hoy en día.

Si estás usando otro entorno de desarrollo, deberías comprobar si los intérpretes remotos o los entornos de desarrollo remotos están soportados o no, y vamos a ejecutar el código remotamente en una instancia de AWS.

Hoy elegimos AWS porque sé que la mayoría de ustedes utilizan AWS en su flujo de trabajo de producción diario, pero si utilizan GCP o Azure u OVH o Scaleware o cualquier otra cosa, el proceso será muy similar.

Como verás, se trata de aprovisionar una instancia, recuperar la dirección IP y usarla localmente en VS Code para conectarse a través de SSH a la instancia.

¿Por qué utilizamos un entorno de desarrollo remoto? La primera razón es que queremos reducir el coste de nuestro entorno de desarrollo local.

Puede que no quieras comprar un MacBook Pro Ultra M2 de gama alta muy caro, cosas así, por ejemplo, y en ese caso, puede que te resulte más rentable comprar una máquina local de gama baja, pero ejecutar tu código de forma remota siempre que lo necesites.

Una segunda razón muy importante, especialmente para los ingenieros de aprendizaje automático, es que a veces necesitarás acceder a hardware de gama alta como GPUs, por ejemplo, y este hardware no está necesariamente disponible en tu máquina local.

Por ejemplo, si quieres tener acceso a una GPU NVIDIA A100 o H100, seguro que no podrás acceder a este tipo de GPU a nivel local.

Hacer esto, como vamos a demostrar hoy, es muy útil porque, de otro modo, simplemente no se puede acceder a máquinas específicas para el desarrollo de GPU.

Por último, el hecho de que vayas a utilizar un entorno remoto es genial porque en realidad es un entorno perfectamente aislado, lo que significa que si quieres instalar bibliotecas o frameworks o controladores específicos, puedes hacerlo en tu máquina remota de AWS.

Y si mañana necesitas instalar, digamos, otra versión de tus controladores NVIDIA y del kit de herramientas CUDA o de las librerías Python, cosas así, simplemente tienes que aprovisionar un segundo servidor y estás perfectamente seguro de que ambos servidores no van a interferir.

Ambas configuraciones estarán perfectamente aisladas.

Así que también puedes, por supuesto, lograr cosas similares con Docker o incluso con entornos virtuales en Python, por ejemplo.

Pero imagina que quieres instalar varias versiones de tus controladores NVIDIA.

Esto va a ser mucho más complejo.

Y en ese caso, el aprovisionamiento de varios entornos remotos podría ser la única solución para usted.

Así que lo primero que vamos a hacer ahora es conectarnos a nuestra consola de AWS y crear una instancia básica de AWS, una instancia de CPU, y luego la usaremos localmente desde VS Code.

Allá vamos.

Ahora estoy en mi consola de AWS.

Si es la primera vez que utiliza AWS, sólo tiene que crear una cuenta con una contraseña de correo electrónico.

No creo que pidan demasiada información.

Y ahora puedes crear una instancia en EC2.

Vamos a hacer clic en lanzar instancia.

Podemos dar un nombre a nuestra instancia.

Llamémoslo, por ejemplo, entorno dev.

De acuerdo.

Ahora la parte importante.

Tenemos que elegir un sistema operativo para nuestra instancia.

Usted realmente quiere elegir Linux y en lo que a mí respecta, me gusta mucho Ubuntu porque es estándar y estoy seguro de que los controladores más recientes se van a instalar en Ubuntu, especialmente con los controladores de NVIDIA, que realmente puede ayudar.

Así que estoy haciendo clic en Ubuntu aquí.

Si es la primera vez que utilizas Linux, no te preocupes.

No vamos a necesitar demasiados trucos o comandos de Linux.

Básicamente vamos a hacer todo desde código VS, excepto que por supuesto detrás del capó va a ser Linux, pero no creo que sea demasiado problema para ti.

Puedes dejar la versión 2204 LTS como está.

Y ahora vamos a seleccionar una simple instancia de CPU.

Por ejemplo, en AWS, tienes la instancia M5, M5 grande, dos CPU, ocho gigas de memoria.

Perfecto para nosotros.

Tal vez sea demasiado para hoy, pero en el futuro tendrá que seleccionar la instancia que se adapte perfectamente a sus necesidades.

De acuerdo.

Ahora necesitamos usar un par de claves SSH.

Así que si esta es la primera vez que está utilizando SSH aquí, usted tendrá que crear su propio par de claves en AWS, crear nuevo par de claves.

Llamémoslo par de claves de prueba.

Puede seleccionar el formato PEM, crear par de claves.

Y ahora lo estoy descargando, perdón, en mi máquina.

De acuerdo.

Aquí no es necesario cambiar el grupo de seguridad.

Por defecto, el puerto SSH va a estar abierto, lo cual está bien.

Eso es lo que necesitamos.

Ocho gigas de SSD son perfectos para hoy.

Y podemos hacer clic en lanzar instancia.

De acuerdo.

La instancia ya está lista.

Si es la primera vez que creas una instancia en AWS, puede que tengas que pedir a AWS support que actualice tu cuota.

No estoy muy seguro.

Para instancias muy caras, como las instancias GPU, hay que pedir una ampliación de cuota.

Para un simple ejemplo de M5, no estoy seguro.

Pero si usted está recibiendo un error aquí, pidiendo aumento de la cuota, eso es lo que vas a hacer.

Este es nuestro ejemplo.

Como puedes ver, ya está en marcha.

Fue muy rápido.

M5 grande.

Y aquí a la derecha, tenemos la dirección IP que vamos a utilizar.

Ahora que tenemos nuestra instancia creada y nuestro par de claves SSH descargado en nuestra máquina, lo que tenemos que hacer es abrir VS Code y crear la conexión SSH a nuestro servidor remoto.

Si es la primera vez que utiliza un cliente SSH en Windows, deberá activarlo.

Aquí tienes un tutorial del equipo de Windows sobre cómo hacerlo.

Puedes simplemente escribir crear cliente SSH en Windows, en Google, y encontrarás un montón de tutoriales.

Aquí está la oficial.

Si navegas un poco hacia abajo, es muy sencillo.

Basta con activar algo en las aplicaciones de Windows.

Si utiliza Linux, se instala por defecto.

Así que ahora estoy en VS Code.

En la parte inferior izquierda, puedes ver este botón aquí.

Estoy haciendo clic en conectar la ventana actual al host.

Si es la primera vez que utiliza este módulo de conexión remota, puede que VS Code vaya a descargar el plugin.

Así que puede que tardes un par de segundos en acceder a la función.

Estoy configurando los hosts, haciendo clic en configurar los hosts.

Hoy estoy en Windows, así que aquí es donde se encuentra mi configuración.

Y aquí, este es el archivo de configuración que necesito llenar.

Así que lo más importante, tenemos que recuperar la dirección IP de nuestra instancia y pegarla aquí.

Perfecto.

Podemos dar un nombre a nuestra conexión, pero es sólo para nosotros.

Llamémoslo DevHouse.

El nombre de usuario es el nombre de usuario utilizado por el cliente SSH para conectarse a la instancia.

Dado que hemos aprovisionado el servidor Ubuntu, el nombre de usuario es Ubuntu por defecto.

Y cuando descargué el par de claves, par de claves SSH, lo puse en mi escritorio en Windows.

Así que aquí es donde VS Code va a recuperar la clave.

Puede guardar el archivo y ahora haga clic en la parte inferior, conecte la ventana actual al host de nuevo.

DevHouse es lo que acabamos de crear.

Tendrá que esperar aquí.

Muy bien.

Puedes ver que VS Code me pide un intercambio de claves.

Así que sí, es la primera vez que nos conectamos a esta instancia.

Así que por razones de seguridad, tenemos que aceptar esta nueva huella digital.

Bien.

No parece muy dramático, pero aquí estamos ahora realmente en nuestra instancia remota de AWS.

Y puedes verlo porque en la parte inferior izquierda, puedes ver SSH.

Para comprobarlo, puedes abrir un terminal en la parte superior, haz clic en nuevo terminal.

Y aquí se puede ver que este terminal no es en absoluto el terminal de mi máquina Windows local.

Estoy en una máquina Ubuntu.

Y si quiero, puedo usar algunos comandos Linux como es habitual en Linux, como listar directorios.

No tenemos nada aquí, así que podemos crear un directorio.

Supongamos que queremos crear un entorno de desarrollo para hacer un par de pruebas.

Y ahora tenemos nuestra nueva carpeta de prueba creada aquí.

O bien quieres hacerlo todo con la línea de comandos, o tal vez incluso mejor, quieres utilizar la interfaz gráfica de VS Code para navegar por tu archivo como de costumbre.

Así que haces clic en la parte superior, abrir carpeta.

Y aquí puedes ver el directorio de prueba que acabo de crear.

Ahora VS Code se abre de nuevo, pero esta vez en la carpeta específica que he mencionado.

Y a partir de ahora, puedes empezar a desarrollar como siempre, como si estuvieras en tu máquina local, con la diferencia de que tu código se va a ejecutar en AWS.

Así que vamos a intentarlo.

Por ejemplo, vamos a crear un programa Python simple, diciendo hola, nuevo archivo, test.py, print, hola

Guarda el archivo.

Y luego en su consola, ahora podemos ejecutar el archivo.

Hola.

Acabas de ejecutar con éxito tu primer código remoto en AWS.

Eso es todo por hoy.

Ahora puedes utilizar tu entorno de desarrollo remoto tanto como quieras.

No olvides apagar tu instancia de AWS cuando ya no la necesites.

Y hasta pronto.