AI 또는 풀스택 개발에 어려움을 겪고 계신가요? 맞춤형 조언, 기술 통합 등 유니티 전문가가 도와드리겠습니다. 다음 연락처로 문의하세요. [email protected].

VSCode를 사용하여 AWS 서버에서 원격 개발 환경 설정하기

Summary

이 과정은 로컬에서 코딩하지만 원격 서버에서 코드를 실행할 수 있도록 원격 개발 환경("원격 인터프리터"라고도 함)을 설정하는 방법에 대해 설명합니다.

원격 개발 환경에는 몇 가지 큰 장점이 있습니다:

이 동영상에서는 AWS EC2에서 서버 인스턴스를 생성한 다음 VSCode에서 원격 개발 환경을 설정하는 방법을 보여드립니다.

코스의 구조는 다음과 같습니다:

Transcript

안녕하세요, NLP Cloud의 줄리엔 살리나스입니다.

오늘은 로컬 컴퓨터에서 코딩하지만 원격 AWS 서버에서 코드를 실행할 수 있도록 원격 개발 환경을 설정하는 방법을 보여드리겠습니다.

이 과정에는 전제 조건이 없으므로 지금 바로 시작하세요.

원격 개발 환경이란 무엇을 의미할까요? 원격 개발 환경이란 오늘날 대부분의 사람들이 그렇듯이 VS Code에서 로컬로 코딩하는 것을 의미합니다.

다른 개발 환경을 사용하는 경우 원격 인터프리터 또는 원격 개발 환경이 지원되는지 여부를 확인해야 하며, 실제로 AWS 인스턴스에서 원격으로 코드를 실행해 보겠습니다.

오늘 AWS를 선택한 이유는 여러분 대부분이 실제로 일상적인 프로덕션 워크플로우에서 AWS를 사용하고 있다는 것을 알고 있기 때문이지만, GCP나 Azure, OVH, Scaleware 또는 다른 것을 사용 중이라면 프로세스가 매우 유사할 것입니다.

보시다시피 인스턴스를 프로비저닝하고, IP 주소를 검색하고, VS 코드에서 로컬로 사용하여 SSH를 통해 인스턴스에 연결하는 것입니다.

실제로 원격 개발 환경을 사용하는 이유는 무엇인가요? 첫 번째 이유는 로컬 개발 환경의 비용을 절감할 수 있기 때문입니다.

예를 들어, 매우 비싼 고급형 MacBook Pro Ultra M2를 구매하고 싶지 않을 수도 있으며, 이러한 경우 저가형 로컬 머신을 구매하여 필요할 때마다 원격으로 코드를 실행하는 것이 더 비용 효율적일 수 있습니다.

특히 머신 러닝 엔지니어에게 매우 중요한 두 번째 이유는 예를 들어 GPU와 같은 고급 하드웨어에 액세스해야 할 때가 있는데, 이 하드웨어를 로컬 컴퓨터에서 반드시 사용할 수 있는 것은 아니라는 점입니다.

예를 들어, A100 NVIDIA GPU 또는 H100에 액세스하려는 경우 로컬에서 해당 GPU에 액세스할 수 없습니다.

오늘 보여드리는 것처럼 이 작업을 수행하면 GPU 개발을 위해 특정 머신에 액세스할 수 없기 때문에 매우 유용합니다.

마지막으로, 원격 환경을 사용한다는 사실은 실제로 완벽하게 격리된 환경이기 때문에 특정 라이브러리나 프레임워크 또는 드라이버를 설치하려는 경우 원격 AWS 머신에서 이를 수행할 수 있다는 점에서 매우 좋습니다.

예를 들어 내일 다른 버전의 NVIDIA 드라이버와 CUDA 툴킷 또는 Python 라이브러리 등을 설치해야 하는 경우, 두 번째 서버를 프로비저닝하기만 하면 두 서버가 서로 간섭하지 않는다는 것을 완벽하게 확신할 수 있습니다.

두 구성 모두 완벽하게 격리됩니다.

물론 Docker나 Python의 가상 환경에서도 비슷한 작업을 수행할 수 있습니다.

하지만 여러 버전의 NVIDIA 드라이버를 설치하려고 한다고 가정해 보겠습니다.

이 문제는 훨씬 더 복잡해질 것입니다.

이 경우 여러 원격 환경을 프로비저닝하는 것이 유일한 해결책일 수 있습니다.

이제 가장 먼저 할 일은 실제로 AWS 콘솔에 연결하여 기본 AWS 인스턴스인 CPU 인스턴스를 생성한 다음 VS Code에서 로컬로 사용하는 것입니다.

시작하겠습니다.

이제 AWS 콘솔에 접속했습니다.

AWS를 처음 사용하는 경우, 이메일 비밀번호로 계정을 생성하기만 하면 됩니다.

너무 많은 정보를 요구하고 있다고 생각하지 않습니다.

이제 EC2에서 인스턴스를 생성할 수 있습니다.

인스턴스 시작을 클릭합니다.

인스턴스에 이름을 지정할 수 있습니다.

예를 들어 개발 환경이라고 해 보겠습니다.

알겠습니다.

이제 중요한 부분입니다.

인스턴스에 사용할 운영 체제를 선택해야 합니다.

리눅스를 선택하고 싶은데, 제가 아는 한 우분투는 표준이고 최신 드라이버가 우분투에 설치될 것이기 때문에 정말 마음에 들고, 특히 NVIDIA 드라이버를 사용하면 정말 도움이 될 수 있습니다.

그래서 여기서 Ubuntu를 클릭합니다.

Linux를 처음 사용하시는 분들도 걱정하지 마세요.

너무 많은 Linux 트릭이나 명령이 필요하지 않습니다.

물론 후드 뒤에서 리눅스를 사용한다는 점을 제외하면 기본적으로 모든 것을 VS 코드에서 처리할 예정이지만, 큰 문제는 없을 것으로 생각합니다.

2204 LTS 버전은 그대로 사용해도 됩니다.

이제 간단한 CPU 인스턴스를 선택하겠습니다.

예를 들어, AWS에는 M5 인스턴스, M5 라지, CPU 2개, 메모리 8기가가 있습니다.

저희에겐 완벽합니다.

지금은 너무 많을 수도 있지만 앞으로는 필요에 완벽하게 맞는 인스턴스를 선택해야 할 것입니다.

알겠습니다.

이제 SSH 키 쌍을 사용해야 합니다.

따라서 여기서 SSH를 처음 사용하는 경우 AWS에서 자체 키 쌍을 생성하고 새 키 쌍을 만들어야 합니다.

이를 테스트 키 쌍이라고 부르겠습니다.

PEM 형식을 선택하고 키 쌍을 만들 수 있습니다.

죄송하지만 지금 제 컴퓨터에서 다운로드 중입니다.

알겠습니다.

여기서 보안 그룹을 변경할 필요는 없습니다.

기본적으로 SSH 포트는 열려 있지만 괜찮습니다.

이것이 바로 우리에게 필요한 것입니다.

오늘날에는 8기가의 SSD가 적합합니다.

그리고 인스턴스 시작을 클릭합니다.

알겠습니다.

이제 인스턴스가 준비되었습니다.

AWS에서 인스턴스를 처음 생성하는 경우, AWS 지원팀에 요청하여 할당량을 업그레이드해야 할 수도 있습니다.

잘 모르겠습니다.

GPU 인스턴스와 같이 매우 비싼 인스턴스의 경우 할당량 업그레이드를 요청해야 합니다.

간단한 M5의 경우 잘 모르겠습니다.

하지만 여기서 오류가 발생하여 할당량 증량을 요청하는 경우, 그렇게 하셔야 합니다.

다음은 우리의 사례입니다.

보시다시피 이미 실행 중입니다.

매우 빨랐습니다.

M5 대형.

그리고 여기 오른쪽에 사용할 IP 주소가 있습니다.

이제 인스턴스가 생성되고 SSH 키 쌍이 컴퓨터에 다운로드되었으므로 이제 VS Code를 열고 원격 서버에 대한 SSH 연결을 생성하기만 하면 됩니다.

Windows에서 SSH 클라이언트를 처음 사용하는 경우에는 활성화해야 합니다.

다음은 Windows 팀에서 제공하는 튜토리얼입니다.

Windows나 Google에서 SSH 클라이언트 만들기를 입력하기만 하면 많은 튜토리얼을 찾을 수 있습니다.

다음은 공식 자료입니다.

조금만 아래로 내려가면 매우 간단합니다.

Windows 응용 프로그램에서 무언가를 활성화하기만 하면 됩니다.

Linux를 사용하는 경우 기본적으로 설치되어 있습니다.

그래서 저는 이제 VS Code를 사용하고 있습니다.

왼쪽 하단에서 이 버튼을 볼 수 있습니다.

현재 창을 호스트에 연결하기를 클릭합니다.

이 원격 연결 모듈을 처음 사용하는 경우 VS Code에서 플러그인을 다운로드할 수 있습니다.

따라서 이 기능에 액세스하기까지 몇 초 정도 걸릴 수 있습니다.

호스트 구성을 클릭하고 호스트 구성을 구성하고 있습니다.

오늘은 Windows를 사용 중이므로 제 설정이 있는 위치는 다음과 같습니다.

그리고 여기에 제가 작성해야 하는 구성 파일이 있습니다.

따라서 가장 중요한 것은 인스턴스의 IP 주소를 검색하여 여기에 붙여넣어야 한다는 것입니다.

완벽합니다.

연결에 이름을 붙일 수는 있지만, 이는 본인만을 위한 것입니다.

DevHouse라고 부르겠습니다.

사용자 이름은 SSH 클라이언트가 인스턴스에 연결할 때 사용하는 사용자 이름입니다.

우분투 서버를 프로비저닝했으므로 사용자 이름은 기본적으로 우분투입니다.

그리고 키 쌍인 SSH 키 쌍을 다운로드한 후 Windows 데스크톱에 설치했습니다.

그래서 여기서 VS Code가 키를 검색할 것입니다.

파일을 저장하고 이제 하단을 클릭하여 현재 창을 호스트에 다시 연결할 수 있습니다.

DevHouse는 저희가 방금 만든 것입니다.

여기서 기다려야 합니다.

아주 좋아요.

VS Code에서 키 교환을 요청하는 것을 볼 수 있습니다.

네, 이 인스턴스에 연결한 것은 이번이 처음입니다.

따라서 보안상의 이유로 이 새로운 지문을 수락해야 합니다.

좋아요.

그다지 드라마틱해 보이지는 않지만, 실제로는 원격 AWS 인스턴스를 사용하고 있습니다.

왼쪽 하단에 SSH가 표시되므로 이를 확인할 수 있습니다.

이를 확인하려면 상단에서 터미널을 열고 새 터미널을 클릭하면 됩니다.

여기에서 이 터미널은 내 로컬 Windows 컴퓨터의 터미널이 절대 아니라는 것을 알 수 있습니다.

우분투 머신을 사용하고 있습니다.

그리고 원한다면 디렉터리 목록과 같은 일부 Linux 명령을 Linux에서 평소처럼 사용할 수 있습니다.

여기에는 아무것도 없으므로 디렉터리를 만들 수 있습니다.

몇 가지 테스트를 만들기 위한 개발 환경을 만들려고 한다고 가정해 보겠습니다.

이제 여기에 새 테스트 폴더가 생성되었습니다.

명령줄로 모든 작업을 수행하고 싶거나, 평소처럼 VS Code의 그래픽 인터페이스를 사용하여 파일을 탐색하고 싶을 수도 있습니다.

따라서 상단을 클릭하고 폴더를 엽니다.

여기에서 방금 만든 테스트 디렉터리를 볼 수 있습니다.

이제 VS 코드가 다시 열리지만 이번에는 제가 언급한 특정 폴더에서 열립니다.

이제부터는 AWS에서 코드가 실행된다는 점을 제외하고는 로컬 컴퓨터에서 개발하는 것처럼 평소와 같이 개발을 시작할 수 있습니다.

그럼 한 번 사용해 보겠습니다.

예를 들어, hello, new file, test.py, print, hello라는 간단한 Python 프로그램을 만들어 보겠습니다.

파일을 저장합니다.

이제 콘솔에서 파일을 실행할 수 있습니다.

안녕하세요.

이제 AWS에서 첫 번째 원격 코드를 성공적으로 실행했습니다.

오늘은 여기까지입니다.

이제 원격 개발 환경을 원하는 만큼 사용할 수 있습니다.

더 이상 필요하지 않을 때는 AWS 인스턴스를 끄는 것을 잊지 마세요.

곧 뵙겠습니다.