온프레미스 서버 구축 도전기: 새 컴퓨터에 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 또는 드라이버 불일치 오류
이런 문제가 발생했다.
✔ 해결 방법
- 현재 Ubuntu에서 권장하는 드라이버 목록 확인
ubuntu-drivers devices - “recommended” 버전을 설치
-
sudo apt install nvidia-driver-### - 재부팅 후 다시 확인
nvidia-smi
정확한 버전을 맞추니 정상적으로 GPU 정보를 확인할 수 있었다.

예시 이미지
4. 본격적인 온프레미스 서버 만들기: SSH 포트 오픈 → 포트포워딩 → 고정 IP
그래픽카드 세팅을 끝내고 “이제 끝났다!”라고 생각했지만,
사실 그건 온프레미스 서버 구축의 시작이었다.
사수님께서 주신 키워드는 다음 세 가지.
- SSH 포트 열기
- 포트포워딩
- 고정 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 접속 테스트:
✔ 3) 고정 IP 설정
내부망 IP가 바뀌면 포트포워딩도 망가진다.
그래서 MAC 주소 기반으로 DHCP 예약을 걸어 IP를 고정했다.

예시 이미지
5. 드디어 내 손으로 온프레미스 서버 개통!
SSH 접속이 성공하는 순간 느껴지던 그 짜릿함은 아직도 생생하다.
“이제 이 컴퓨터는 진짜 나만의 서버다.”
이전까지는 AWS나 GCP 같은 클라우드 기반 서버만 사용했는데,
이번엔 처음으로 물리적인 서버를 직접 준비해서 운영하는 경험을 하게 된 것이다.
6. 욕심이 생겼다. 그래서 개인 FastAPI 프로젝트까지 올려봤다
서버가 성공적으로 뜬 순간,
“여기까지 온 김에 내가 만든 프로젝트도 배포해볼까?” 라는 생각이 들었다.
그래서 로컬에서 개발 중이던 FastAPI 프로젝트를 온프레미스 서버에 배포했다.
✔ 배포 과정 요약
- 서버에 Python & uvicorn 설치
- 프로젝트 clone
- venv 세팅
- pm2 또는 systemd로 서비스 등록
- 외부에서 API 테스트
기존에 EC2에서 배포해 본 경험 덕분에 어려움 없이 빠르게 배포할 수 있었다.
API endpoint에 접속해 응답을 받는 순간,
“와… 내가 직접 서버를 띄우고, 직접 배포까지 했네?”
이 감정이 진짜 성취감으로 다가왔다.
7. 느낀 점: 내 손으로 서버를 만든다는 건 생각보다 멋진 일
이 경험을 통해 느낀 점은 다음과 같다.
1) 클라우드는 편하지만, 온프레미스는 직접적으로 배울 수 있다
클라우드는 쉽게 할 수 있지만,
온프레미스는 네트워크, 장비, 드라이버 등 기초가 전부 필요하다.
그래서 난이도는 있지만 더 많이 배울 수 있다.
2) 서버의 “전 과정”을 이해하게 된다
OS 설치 → 드라이버 → 네트워크 → 방화벽 → 포트포워딩 → 외부 접속
이 흐름이 모두 연결된다는 것을 몸으로 체감했다.
3) 잠깐의 시행착오가 큰 성장으로 이어졌다
드라이버 충돌, SSH 오류, 공유기 설정 등
하나하나 해결해가며 자신감이 붙었다.
4) 직접 구축한 서버에서 API가 돌아가는 모습이 너무 뿌듯했다
“내 손으로 만들었다”는 건 개발자로서 정말 큰 동기부여가 된다.
마무리
이번 온프레미스 서버 구축 경험은 단순한 장비 세팅이 아니라,
네트워크・리눅스・서버 운영의 본질을 배운 시간이었다.
앞으로도 이 서버 위에서 더 많은 실험과 프로젝트를 해볼 계획이다.
클라우드에서는 느끼기 어려운 재미를 온프레미스는 확실히 준다.