Está a ter dificuldades com a IA ou com o desenvolvimento full-stack? Os nossos especialistas estão aqui para o orientar: aconselhamento personalizado, integração técnica e muito mais. Entre em contacto com [email protected].

Configurar um ambiente de desenvolvimento remoto em um servidor AWS com VSCode

Summary

Este curso é sobre a configuração de ambientes de desenvolvimento remoto (também conhecidos como "interpretadores remotos") para que possa codificar localmente mas executar o seu código num servidor remoto.

Os ambientes de desenvolvimento remoto têm várias vantagens importantes:

Neste vídeo, mostramos como criar uma instância de servidor no AWS EC2 e, em seguida, configurar o ambiente de desenvolvimento remoto no VSCode.

Eis a estrutura do curso:

Transcript

Olá, fala Julien Salinas da NLP Cloud.

Hoje, vou mostrar-lhe como configurar um ambiente de desenvolvimento remoto para que possa codificar na sua máquina local, mas executar o seu código num servidor AWS remoto.

Não existe qualquer pré-requisito para este curso, por isso aqui vamos nós.

O que queremos dizer com ambiente de desenvolvimento remoto? Na verdade, significa que vamos codificar localmente no VS Code, como a maioria de nós atualmente.

Se estiver a utilizar outro ambiente de desenvolvimento, deve verificar se os intérpretes remotos ou os ambientes de desenvolvimento remotos são suportados ou não, e vamos efetivamente executar o código remotamente numa instância AWS.

Hoje escolhemos o AWS porque sei que a maioria de vocês está a utilizar o AWS no seu fluxo de trabalho de produção diário, mas se estiverem a utilizar o GCP ou o Azure ou o OVH ou o Scaleware ou qualquer outro, o processo será muito semelhante.

Como verá, trata-se de aprovisionar uma instância, obter o endereço IP e utilizá-lo localmente no VS Code para se ligar através de SSH à instância.

Porque é que estamos a utilizar um ambiente de desenvolvimento remoto? A primeira razão é que queremos reduzir o custo do nosso ambiente de desenvolvimento local.

Poderá não querer comprar um MacBook Pro Ultra M2 topo de gama muito caro, coisas deste género, por exemplo, e, nesse caso, poderá ser mais económico comprar uma máquina local de gama inferior, mas executar o seu código remotamente sempre que precisar.

Uma segunda razão muito importante, especialmente para os engenheiros de aprendizagem automática, é que, por vezes, é necessário aceder a hardware topo de gama, como GPUs, por exemplo, e este hardware não está necessariamente disponível no seu computador local.

Por exemplo, se quiser ter acesso a uma GPU NVIDIA A100 ou H100, de certeza que não conseguirá ter acesso a essas GPUs localmente.

Fazer isto, como vamos mostrar hoje, é muito útil porque, de outra forma, não é possível ter acesso a máquinas específicas para o desenvolvimento de GPU.

Por último, o facto de ir utilizar um ambiente remoto é ótimo porque é, na verdade, um ambiente perfeitamente isolado, o que significa que se quiser instalar bibliotecas, estruturas ou controladores específicos, pode fazê-lo na sua máquina AWS remota.

E se amanhã precisar de instalar, digamos, outra versão dos seus controladores NVIDIA e do kit de ferramentas CUDA ou das bibliotecas Python, coisas deste género, basta provisionar um segundo servidor e tem a certeza absoluta de que ambos os servidores não vão interferir.

Ambas as configurações ficarão perfeitamente isoladas.

Assim, também é possível, obviamente, conseguir coisas semelhantes com o Docker ou mesmo com ambientes virtuais em Python, por exemplo.

Mas imagine que pretende instalar várias versões dos seus controladores NVIDIA.

Isto vai ser muito mais complexo.

E, nesse caso, o aprovisionamento de vários ambientes remotos pode ser a única solução para si.

Portanto, a primeira coisa que vamos fazer agora é conectarmo-nos ao nosso console da AWS e criar uma instância básica da AWS, uma instância da CPU, e depois vamos usá-la localmente a partir do VS Code.

Cá vamos nós.

Estou agora na minha consola AWS.

Se é a primeira vez que está a utilizar o AWS, basta criar uma conta com uma palavra-passe de correio eletrónico.

Não me parece que estejam a pedir demasiada informação.

E agora pode criar uma instância no EC2.

Vamos clicar em lançar instância.

Podemos dar um nome à nossa instância.

Por isso, chamemos-lhe, por exemplo, ambiente de desenvolvimento.

Está bem.

Agora a parte importante.

Temos de escolher um sistema operativo para a nossa instância.

É preferível escolher o Linux e, no que me diz respeito, gosto muito do Ubuntu porque é normal e tenho a certeza de que os controladores mais recentes serão instalados no Ubuntu, especialmente no caso dos controladores NVIDIA, o que pode ser muito útil.

Por isso, estou a clicar no Ubuntu.

Se esta é a sua primeira vez a utilizar o Linux, não se preocupe.

Não vamos precisar de muitos truques ou comandos do Linux.

Basicamente, vamos fazer tudo a partir do código VS, exceto que, obviamente, por detrás do capô vai estar o Linux, mas penso que não será um grande problema para si.

Pode deixar a versão 2204 LTS como está.

E agora vamos selecionar uma instância simples da CPU.

Por exemplo, no AWS, temos a instância M5, M5 large, duas CPUs, oito gigas de memória.

Perfeito para nós.

Talvez até demasiado para hoje, mas, no futuro, terá de selecionar a instância que se adapta perfeitamente às suas necessidades.

Está bem.

Agora precisamos de utilizar um par de chaves SSH.

Por isso, se esta é a primeira vez que está a utilizar SSH aqui, terá de criar o seu próprio par de chaves no AWS, criar um novo par de chaves.

Chamemos-lhe par de chaves de teste.

Pode selecionar o formato PEM e criar um par de chaves.

E agora estou a descarregá-lo, desculpem, no meu computador.

Está bem.

Não é necessário alterar o grupo de segurança aqui.

Por defeito, a porta SSH vai estar aberta, o que não faz mal.

É disso que precisamos.

Oito gigas de SSD é perfeito para os dias de hoje.

E podemos clicar em lançar instância.

Está bem.

A instância está pronta agora.

Se esta for a sua primeira criação de instância no AWS, talvez tenha de pedir ao suporte do AWS para atualizar a sua quota.

Não tenho bem a certeza.

Para instâncias muito caras, como as instâncias GPU, tem de pedir uma atualização de quota.

Para um simples exemplo de M5, não tenho a certeza.

Mas se está a receber um erro aqui, a pedir um aumento da quota, é isso que vai fazer.

Eis o nosso exemplo.

Como pode ver, já está a funcionar.

Foi muito rápido.

M5 grande.

E aqui, à direita, temos o endereço IP que vamos utilizar.

Agora que temos a nossa instância criada e o nosso par de chaves SSH descarregado na nossa máquina, o que temos de fazer é abrir o VS Code e criar a ligação SSH ao nosso servidor remoto.

Se esta é a primeira vez que utiliza um cliente SSH no Windows, terá de o ativar.

Aqui está um tutorial da equipa do Windows sobre como o fazer.

Basta digitar criar cliente SSH no Windows, no Google, e encontrará uma série de tutoriais.

Aqui está o oficial.

Se navegarmos um pouco, é muito simples.

Basta ativar algo nas aplicações Windows.

Se estiver a utilizar o Linux, está instalado por defeito.

Por isso, estou agora no VS Code.

No canto inferior esquerdo, pode ver este botão aqui.

Estou a clicar em ligar a janela atual ao anfitrião.

Se esta é a primeira vez que está a utilizar este módulo de ligação remota, talvez o VS Code vá descarregar o plug-in.

Por isso, pode demorar alguns segundos até conseguir aceder à funcionalidade.

Estou a configurar os anfitriões, clicando em configurar os anfitriões.

Atualmente, estou a utilizar o Windows, pelo que é aqui que se encontra a minha configuração.

E aqui, este é o ficheiro de configuração que preciso de preencher.

Por isso, o mais importante é obter o endereço IP da nossa instância e colá-lo aqui.

Perfeito.

Podemos dar um nome à nossa ligação, mas é apenas para nós.

Chamemos-lhe DevHouse.

O nome de utilizador é o nome de utilizador utilizado pelo cliente SSH para se ligar à instância.

Dado que provisionámos o servidor Ubuntu, o nome de utilizador é Ubuntu por predefinição.

E quando descarreguei o par de chaves, o par de chaves SSH, coloquei-o no meu ambiente de trabalho no Windows.

Portanto, é aqui que o código VS vai recuperar a chave.

Pode guardar o ficheiro e clicar novamente na parte inferior, ligar a janela atual ao anfitrião.

DevHouse é o que acabámos de criar.

Terão de esperar aqui.

Muito bom.

Pode ver que o código VS está a pedir-me uma troca de chaves.

Portanto, sim, esta é a primeira vez que nos estamos a ligar a esta instância.

Assim, por razões de segurança, temos de aceitar esta nova impressão digital.

Ótimo.

Não parece muito dramático, mas aqui estamos nós, de facto, na nossa instância remota do AWS.

E podem vê-lo porque, no canto inferior esquerdo, podem ver SSH.

Para o verificar, pode abrir um terminal na parte superior e clicar em novo terminal.

E aqui podem ver que este terminal não é de todo o terminal da minha máquina Windows local.

Estou a utilizar uma máquina Ubuntu.

E se eu quiser, posso usar alguns comandos Linux como de costume no Linux, como listar diretórios.

Não temos nada aqui, por isso podemos criar um diretório.

Digamos que queremos criar um ambiente de desenvolvimento para efetuar alguns testes.

E agora temos a nossa nova pasta de teste criada aqui.

Ou quer fazer tudo com a linha de comando, ou talvez ainda melhor, quer utilizar a interface gráfica do VS Code para navegar no seu ficheiro como habitualmente.

Por isso, clica-se na parte superior e abre-se a pasta.

E aqui pode ver o diretório de teste que acabei de criar.

Agora o VS Code está a abrir novamente, mas desta vez na pasta específica que mencionei.

E, a partir de agora, pode começar a desenvolver como habitualmente, como se estivesse na sua máquina local, exceto que o seu código vai ser executado no AWS.

Vamos lá tentar.

Por exemplo, vamos criar um programa Python simples, dizendo hello, new file, test.py, print, hello

Guardar o ficheiro.

E depois, na consola, podemos agora executar o ficheiro.

Olá.

Então, acabou de executar com êxito o seu primeiro código remoto no AWS.

É tudo por hoje.

Agora pode utilizar o seu ambiente de desenvolvimento remoto tanto quanto quiser.

Não se esqueça de desligar a sua instância AWS quando já não precisar dela.

E até breve.