카테고리 없음

온프레미스 서버 띄우기

taehyuck 2025. 11. 15. 23:51
728x90

온프레미스 서버 구축 도전기: 새 컴퓨터에 Ubuntu 설치부터 FastAPI 배포까지

직장에 입사한 이후, 처음으로 “온프레미스 서버”라는 걸 직접 구축하게 되었다.
클라우드(AWS EC2)만 경험해 본 나에게 이 작업은 낯설고 조금은 두려운 일이었다.
하지만 실제로 서버를 직접 띄워보고 운영하는 경험은 생각보다 흥미롭고 배울 점이 많았다.

이 글에서는 Ubuntu 설치 → NVIDIA 드라이버 구성 → SSH 포트 오픈 → 포트포워딩 → FastAPI 배포까지의 모든 과정을 기록한다.
누군가 온프레미스 서버를 처음 세팅하려 한다면 좋은 레퍼런스가 되었으면 한다.


1. 회사에서 받은 첫 과제: “5090 컴퓨터 두 대를 세팅해라”

입사한 지 얼마 되지 않은 시점에 사수님께서 컴퓨터 두 대(GeForce RTX 5090 장착)를 가져다 놓고 이렇게 말씀하셨다.

“OS를 Ubuntu로 설치하고, 각각 컴퓨터 사양부터 드라이버까지 완벽히 세팅해봐.”

처음에는 당혹스러웠다.
윈도우는 수도 없이 깔아봤지만, 리눅스(Ubuntu)는 설치만 몇 번 다뤄본 수준이었기 때문이다.


2. Ubuntu 설치 — 다행히 Windows와 크게 다르지 않았다

Ubuntu 설치는 생각보다 어렵지 않았다.
윈도우 설치할 때처럼 USB에 이미지를 굽고, BIOS에서 부팅 순서만 변경하면 금방 설치가 완료된다.

설치 시 주의한 점

  • 파티션 자동 설정 사용 → 초보자에겐 가장 안전
  • 부트로더는 기본 설정 그대로
  • 인터넷 연결은 유선 LAN으로 먼저 잡는 것이 안정적

처음이라 긴장했지만, 예상보다 매끄럽게 Ubuntu 설치가 완료되었다.


3. 그래픽카드(NVIDIA) 드라이버 문제: “설치했는데 nvidia-smi가 안 먹힌다?”

Ubuntu 설치 후 가장 중요한 작업은 GPU 드라이버 설정이었다.
특히 5090처럼 최신 그래픽카드는 드라이버 버전 호환 문제가 발생하기 쉬웠다.

나는 처음에 ‘최신 버전 드라이버’를 그대로 설치했지만,
막상 실행해 보니…

 

nvidia-smi
command not found 또는 드라이버 불일치 오류

이런 문제가 발생했다.

✔ 해결 방법

  1. 현재 Ubuntu에서 권장하는 드라이버 목록 확인
    ubuntu-drivers devices


  2. “recommended” 버전을 설치
     
  3. sudo apt install nvidia-driver-###
  4. 재부팅 후 다시 확인 
nvidia-smi

 

정확한 버전을 맞추니 정상적으로 GPU 정보를 확인할 수 있었다.

예시 이미지

 


4. 본격적인 온프레미스 서버 만들기: SSH 포트 오픈 → 포트포워딩 → 고정 IP

그래픽카드 세팅을 끝내고 “이제 끝났다!”라고 생각했지만,
사실 그건 온프레미스 서버 구축의 시작이었다.

사수님께서 주신 키워드는 다음 세 가지.

  1. SSH 포트 열기
  2. 포트포워딩
  3. 고정 IP(DHCP 예약)

이 세 단계를 듣는 순간,
문득 AWS EC2 인스턴스를 만들 때 보았던 보안그룹 설정이 떠올랐다.

“아… 이거 EC2랑 비슷한 작업이구나!”

✔ 1) SSH 포트 열기

Ubuntu에서 SSH를 활성화한다.

sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

포트 확인:

sudo ufw allow 22/tcp 
sudo ufw enable

이제 외부에서 접속할 준비가 끝난다.

✔ 2) 포트포워딩 (ipTIME 공유기)

ipTIME 공유기 환경은 많은 한국 회사에서 사용하는 구조라 낯설지 않았다.

  • 192.168.0.1 접속
  • 고급 설정 → NAT/라우터 관리 → 포트포워딩
  • 외부포트 22 → 내부IP 192.168.0.xxx → 내부포트 22
  • TCP 선택

설정 후 외부망에서 SSH 접속 테스트:

 
ssh user@공인IP주소 또는 DDNS주소

✔ 3) 고정 IP 설정

내부망 IP가 바뀌면 포트포워딩도 망가진다.

그래서 MAC 주소 기반으로 DHCP 예약을 걸어 IP를 고정했다.

  • 예시 이미지

5. 드디어 내 손으로 온프레미스 서버 개통!

SSH 접속이 성공하는 순간 느껴지던 그 짜릿함은 아직도 생생하다.

“이제 이 컴퓨터는 진짜 나만의 서버다.”

이전까지는 AWS나 GCP 같은 클라우드 기반 서버만 사용했는데,
이번엔 처음으로 물리적인 서버를 직접 준비해서 운영하는 경험을 하게 된 것이다.


6. 욕심이 생겼다. 그래서 개인 FastAPI 프로젝트까지 올려봤다

서버가 성공적으로 뜬 순간,
“여기까지 온 김에 내가 만든 프로젝트도 배포해볼까?” 라는 생각이 들었다.

그래서 로컬에서 개발 중이던 FastAPI 프로젝트를 온프레미스 서버에 배포했다.

✔ 배포 과정 요약

  1. 서버에 Python & uvicorn 설치
  2. 프로젝트 clone
  3. venv 세팅
  4. pm2 또는 systemd로 서비스 등록
  5. 외부에서 API 테스트

기존에 EC2에서 배포해 본 경험 덕분에 어려움 없이 빠르게 배포할 수 있었다.

API endpoint에 접속해 응답을 받는 순간,

“와… 내가 직접 서버를 띄우고, 직접 배포까지 했네?”

이 감정이 진짜 성취감으로 다가왔다.


7. 느낀 점: 내 손으로 서버를 만든다는 건 생각보다 멋진 일

이 경험을 통해 느낀 점은 다음과 같다.

 1) 클라우드는 편하지만, 온프레미스는 직접적으로 배울 수 있다

클라우드는 쉽게 할 수 있지만,
온프레미스는 네트워크, 장비, 드라이버 등 기초가 전부 필요하다.
그래서 난이도는 있지만 더 많이 배울 수 있다.

 2) 서버의 “전 과정”을 이해하게 된다

OS 설치 → 드라이버 → 네트워크 → 방화벽 → 포트포워딩 → 외부 접속
이 흐름이 모두 연결된다는 것을 몸으로 체감했다.

 3) 잠깐의 시행착오가 큰 성장으로 이어졌다

드라이버 충돌, SSH 오류, 공유기 설정 등
하나하나 해결해가며 자신감이 붙었다.

 4) 직접 구축한 서버에서 API가 돌아가는 모습이 너무 뿌듯했다

“내 손으로 만들었다”는 건 개발자로서 정말 큰 동기부여가 된다.


마무리

이번 온프레미스 서버 구축 경험은 단순한 장비 세팅이 아니라,
네트워크・리눅스・서버 운영의 본질을 배운 시간이었다.

앞으로도 이 서버 위에서 더 많은 실험과 프로젝트를 해볼 계획이다.
클라우드에서는 느끼기 어려운 재미를 온프레미스는 확실히 준다.

728x90