시작하기에 앞서
- 딥러닝을 공부하다 보면 항상 마주치는 문제가 GPU 문제입니다. 개인 GPU 를 소유하고 있거나, 자체 GPU 서버를 보유하고 있는 곳에 소속되어 있다면 자유롭겠지만, 그렇지 않은 경우 딥러닝 모델을 학습해보는 것도 사실 어렵습니다.
- GPU 를 사용할 수 없는 환경인 경우, 가장 일반적인 선택지는 Google Colab 을 사용하는 것입니다. 하지만 Colab 의 경우 사용량 제한이 있고, 사용량이 남아있음에도 일정 시간이 지나면 연결을 자동으로 끊어버린다는 불편함이 존재합니다. Colab plus 와 같이 유료 결제 버전도 존재하긴 하나, 무료 버전과 큰 차이가 없다는 것이 대다수의 의견입니다.
- Google Cloud Platform (이하 GCP) 은 이러한 문제점을 어느 정도 해소할 수 있습니다. 단, 무료 크레딧을 보유하고 있는 경우에만 말이죠.
- 무료 크레딧은 총 300$ 이며, GCP 에 처음 가입하는 사람이라면 누구나 받을 수 있습니다.
- 본 포스팅에서는 무료 크레딧을 기반으로 colab 과 유사한 성능의 GPU 서버를 생성하는 방법에 대해 알아보도록 하겠습니다.
신규 계정 생성
- 무료 크레딧을 발급받아야하는 관계로, 새 google 계정을 하나 만듭시다.
- 새 계정을 만들었다면, google 에서 gcp 를 검색하여 Google Cloud 서비스로 이동합시다.
Source: Google Cloud
- 이전에 GCP 에 가입한 기록이 없다면, 파란색 박스 부분에 '무료로 시작하기' 라는 문구가 나타나고, 가입 기록이 있다면 '영업팀에 문의' 라는 문구가 나타납니다.
Source: Google Cloud
- '무료로 시작하기' 버튼을 클릭하면 위와 같은 화면으로 전환되는데요. 서비스 약관들을 체크해주신 뒤 '계속' 버튼을 눌러줍시다.
Source: Google Cloud
- 그 다음에는 결제 정보를 입력해주셔야 합니다. 계좌 유형에는 사업자 또는 개인이 있는데, 당연히 개인을 선택해주시면 되겠습니다.
- 이후 전화번호를 제외한 인적사항들을 입력하신 뒤, '계속' 버튼을 눌러서 다음 화면으로 넘어갑시다.
Source: Google Cloud
- 신원 확인을 위해 휴대폰을 이용한 본인 인증이 필요하네요. 본인 인증 이후 '계속' 버튼을 눌러줍시다.
Source: Google Cloud
- 결제 정보를 등록하는 것이 목적이기 때문에, 카드 번호를 입력해주셔야 합니다. 카드 번호 16자리를 입력하고 나면 추가로 입력해야할 항목들이 나타나는데, 모두 입력하시고 '무료로 시작하기' 버튼을 클릭하면 계정 생성이 완료됩니다.
Source: Google Cloud
- 원화로 40만원 정도의 크레딧을 받은 모습입니다.
Compute Engine API 신청하기
Source: Google Cloud
- 지금부터가 핵심입니다. Colab 과 유사한 성능의 gpu server 를 생성하기 위해서, Compute Engine - VM 인스턴스 서비스로 이동합니다.
Source: Google Cloud
- '사용' 버튼을 클릭해서 API 사용 신청을 해줍시다. Compute Engine API 는 virtual machines (가상 머신) 을 생성하고, 실행할 수 있도록 도와주는 서비스인데요. 쉽게 말해 google cloud 에서 소유하고 있는 장비들로 개인 서버를 생성할 때 사용하는 서비스입니다. (그 대가로 돈을 지불하구요)
Source: Google Cloud
- 1분 정도 기다리면 API 신청이 완료되고, 위와 같은 화면으로 전환됩니다.
- '인스턴스 만들기' 버튼을 클릭해서, 본격적으로 GPU 서버를 만들어봅시다. (인스턴스 == 서버)
새 VM 인스턴스 생성하기
Source: Google Cloud
- '인스턴스 만들기' 버튼을 클릭하고 나면, 위와 같은 화면으로 전환됩니다.
- 여러 옵션들을 선택할 수 있으니, 하나씩 살펴보도록 합시다.
1. '태그 및 라벨 관리' - '리전 / 영역'
Source: Google Cloud
- '리전'은 영역의 집합을, '영역'은 리전 내의 배포 구역을 의미합니다.
- 선택할 수 있는 리전과 영역은 다양하기 때문에, 서비스의 목적에 따라 적절한 리전과 영역을 선택하여 사용하면 되겠습니다.
- 본 포스팅에서는 고객들을 대상으로 서비스를 호스팅하는 것이 아니라, 딥러닝 실험을 위한 개인 GPU 서버를 생성하는 것이 목적이기 때문에, 기본으로 설정되어있던
us-west4(라스베이거스), us-west4-b 를 선택하도록 하겠습니다.
- 리전과 영역마다 부과되는 비용이 다르며, 사용할 수 있는 머신 구성 또한 다르기 때문에 이를 확인하여 최종적으로 선택해주시면 됩니다.
2. '머신 구성' - 'GPU' 유형 / 수
- 딥러닝 실험을 위한 개인 GPU 서버를 생성하는 것이 목적이므로, '머신 구성'에서 'GPU' 를 선택합시다.
Source: Google Cloud
- 'GPU'를 선택하고 나면 위와 같은 경고문이 나타납니다. 그냥은 사용할 수 없으니, 계정을 업그레이드하라는 얘기네요. '업그레이드' 버튼을 눌러 계정 등급을 높이도록 합시다.
Source: Google Cloud
- 버튼 클릭만으로 일반 계정이 활성화되었습니다. 무료 계정과 일반 계정의 차이는 무료 크레딧을 소진하더라도 서비스를 계속 이용할 수 있냐 없냐의 차이입니다. 무료 계정의 경우 과금을 방지하기 위해 크레딧을 모두 소모하면 사용 중인 서비스가 모두 중지되는 반면에, 유료 계정은 크레딧을 모두 소모하더라도 사용 중인 서비스가 있다면 유지되고, 유지한 기간만큼 추가로 과금되는 형태입니다.
- GCP 에서 GPU 서버를 운용하기 위해서는 일반 계정으로 변경하는 과정이 필수이기 때문에, 혹시 모를 과금을 방지하고자 한다면 본인 계정의 잔여 크레딧이 얼마나 남았는지 항상 신경써주시길 바랍니다.
Source: Google Cloud
- 일반 계정으로 전환하는 것도 마쳤으니, 이제 원하는 GPU 의 종류와 개수를 선택합시다. Colab 과 유사한 환경을 만드는 것이 목표이므로 NVIDIA T4 를 1개만 선택했습니다.
3. 월별 예상 가격
- 선택한 구성의 월별 예상 가격을 보여줍니다. 항목별로도 확인할 수 있습니다. 이를 바탕으로 월 얼마 정도의 비용이 청구되는지 파악할 수 있습니다.
4. 머신 유형
Source: Google Cloud
- 다음으로는 머신 유형을 선택해줍시다. GPU 와 함께 사용이 가능한 머신 유형은 N1 시리즈이며, N1 시리즈 내에서도 다양한 선택지가 있으니 적절한 것을 골라 사용하면 되겠습니다.
- 제 경우에는 이번에 실험해볼 딥러닝 모델의 file i/o 가 많은 편이라 성능이 높은 CPU 가 좋을 것 같다고 생각해서, 고성능 CPU 라고 분류되어있는 n1-highcpu-2 를 선택했습니다.
- 특별한 목적이 있는 것이 아니라면 기본으로 설정되어있는 n1-standard-1 유형을 그대로 사용해도 무방할 것 같습니다.
5. 부팅 디스크
Source: Google Cloud
- 다음으로는 부팅 디스크를 선택해봅시다. NVIDIA GPU 전용 소프트웨어인 CUDA 가 미리 설치되어있는 부팅 디스크를 골라보았습니다.
Source: Google Cloud
- 운영체제는 기본값 그대로 사용했고, 버전의 경우 2024.03.01 기준 100개 이상의 버전이 있었는데, 그 중에서 CUDA 만 설치되어있는 버전을 선택했습니다. 필요한 다른 라이브러리들은 직접 설치하도록 하겠습니다.
- 또한 사용하려는 데이터의 크기가 꽤 큰 편이기 때문에, 부팅 디스크 유형을 SSD 로 변경하고, 크기를 50GB에서 100GB로 늘려주었습니다.
6. 고급 옵션 - 네트워킹
Source: Google Cloud
- 마지막으로 설정하고자 하는 항목은 '고급 옵션 - 네트워킹' 항목입니다.
Source: Google Cloud
- 그 중에서도 '외부 IPv4 주소' 항목이 중요합니다. 실제 사용해보면서 알게된 내용인데, '외부 IPv4 주소'를 고정 IP 로 변경해주지 않으면 12시간마다 IP 주소가 자동으로 변경됩니다. 제 경우에는 GCP 서버와 로컬 노트북을 연결해서 로컬 노트북의 VS Code 에서 작업을 하고자 하기 때문에, IP 주소가 변경되는 경우 로컬 노트북과 연결을 계속해서 다시 해야하는 불편함이 있었습니다.
Source: Google Cloud
- 따라서 고정 외부 IP 주소 예약을 통해 이러한 문제를 해결해줍시다. 원하는 이름을 입력한 뒤 예약을 누르면, 고정 IP 주소 예약이 완료됩니다.

- 제가 구성한 서버의 경우 월 250$ 정도 비용이 청구되네요. 무료 크레딧으로 300$이 있기 때문에, 한 달 정도는 거뜬히 사용할 수 있을 것 같습니다.
- 모든 설정을 마무리했다면, '만들기' 버튼을 클릭하여 인스턴스를 생성해줍시다.
Source: Google Cloud
- '만들기' 버튼을 클릭하게 되면 위와 같은 화면으로 전환되는데, 인스턴스 생성이 불가능한 모습입니다. 왜냐하면 GPU 를 사용하기 위해선 GPU 할당량을 추가로 요청해야하기 때문입니다.
Source: Google Cloud
- 상태 아이콘을 클릭하여 '할당량 요청'을 눌러줍시다.
- 이후 할당량 값을 입력하고, 요청 설명을 간단히 작성해줍시다.
Source: Google Cloud
- 이름이랑 이메일을 확인하고, '요청 제출' 버튼을 클릭하면 GPU 할당량 요청이 완료됩니다. 승인은 거의 바로 이루어지니, 새로고침 아이콘을 눌러 인스턴스를 다시 생성해봅시다.
Source: Google Cloud
- 인스턴스 생성을 완료한 모습입니다.
- 서버 이름을 클릭하면 서버의 세부 정보를 확인할 수 있는 화면으로 전환됩니다.

- 인스턴스 생성을 마무리한 뒤, 인스턴스 세부 정보 탭으로 들어가서
SSH - 브라우저 창에서 열기 버튼을 클릭해줍시다. 그러면 새로운 브라우저 창이 하나가 열리는데, 권한 인증 창이 나타나면 Authorize 버튼을 클릭하여 서버에 접속해줍시다.
- 새로 생성한 서버라면, 처음 접속했을 때 nvidia driver 를 설치할 것인지 물어봅니다.
y 를 입력하여 꼭 설치해주도록 합시다. (설치 파일은 존재하나, 설치가 되어있지 않기 때문에 꼭 설치해주셔야 합니다)
정리
- 이렇게 GCP 와 GCP 에서 제공하는 무료 크레딧을 활용하여, 무료 GPU 서버를 생성하는 방법에 대해 알아보았습니다.
- 다음 포스팅에서는 VS Code 상에서 GCP 서버와 로컬 서버 (본인 컴퓨터) 를 연결하는 방법에 대해 알아보도록 하겠습니다.