게이밍 데스크탑으로 홈서버 운영하기
2024.10.24 - 게이밍 데스크탑으로 홈서버 운영하기
NCP Platform → Google Cloud → Oracle Cloud 를 거쳐 토이프로젝트 서버로 홈서버를 이용하기로 했다.
배경
NCP 에서 제공해주던 100만원 크레딧은 아직 남았지만, 유효기간이 곧 끝나가는 터라 결국 다른 클라우드를 알아보았고 Google Cloud 로 넘어 갔다.
그러나 결국 크래딧으로 버틸 뿐이라 이 또한 마음에 썩 들지는 않았다. 물론 매번 계정을 Google 계정 만들고 크레딧 받는 과정을 반복하면 된다.
Oracle Cloud 의 경우 평생 무료 서버를 2개 제공하고 있지만 매우매우 저 사양 스팩이라 토이 프로젝트로 쓰기에는 부적합했다.
(모니터링 툴 까지 생각하면 어림도 없다..)
현재 프로젝트 구조
초창기 프로젝트 구조와 거의 흡사하다. 다만, Vercel 로 운영하지 않은 것이 조금 차이가 난다. (포스팅 참조 : 비사이드 401 - Green Developers 프로젝트 후기)
그림 1 - 과거의 토이프로젝트 구조
프론트(Next.js)와 백엔드(Spring Boot, Redis, MySQL) 모두 관리의 편의성을 위해 컨테이너 형태로 운영하고 있다.
Next.js 와 Spring Boot 와 같은 Application 들은 따로 Application Server 에서 운영하고 나머지 Redis, MySQL 은 DB Server 에서 운영한다. Application Server 와 DB Server 는 같은 Private Subnet 에 있기 때문에 Private IP 로 서로 통신이 가능하다.
참고로 개발서버도 운영하고 싶었지만, 그럴 여력이 될 수 없었다. 이미 하나씩 자리를 차지하고 있었기 때문에 초마이크로 서버에 4개의 컨테이너를 띄우고 운영하기에는 너무 버겁다.(각 운영용, 개발용)
Google Cloud 를 사용할 때는 개발 서버도 운영했지만 결국 크래딧이 고갈되었다.
기존에 사용하던 클라우드 보다는 오버스팩이지만, 별 사용하지 않는 데스크탑을 사용하는 것이기 때문에 별 부담은 없었다.(전기료만 내면 된다).
현재 네트워크 토폴로지
그림 2 - 집의 네트워크 토폴로지
우리 집의 네트워크 토폴리지 구성도는 다음과 같다
모뎀으로 부터 2개의 공인 IP를 부여받아서 사용하고 있고 하나는 Desktop(pc), 그리고 나머지 하나는 공유기에 연결하여 사용하고 있다.
공유기 아래에 pc 를 연결하여 사용할 수도 있지만 독립된 네트워크를 구성하고 싶었다. (KT의 유선정책이 정확히 어떻게 되는 지는 알아봐야 겠지만, 공인 ip 할당이 2개까지 되는 걸로 알고있다. 어떤 글에서는 4개.. 8개도 된다고 한다..)
공유기 아래에 연결되어있다면 따로 공인 ip로 접속했을 때 서버로 사용될 pc 로 트래픽이 흐르게 하기 위해 포트포워딩 작업이 필요하겠지만 따로 ip를 할당 받았기 때문에 굳이 그럴 필요는 없다.
WSL vs 가상머신에서 Linux 운영체제
현재 게이밍 데스크탑의 경우 운영체제가 윈도우 이고 추후에도 윈도우를 이용해 작업할 경우가 굉장히 많고 게임도 해야하기 때문에 운영체제를 바꿀 수는 없다.
그렇다고 윈도우 운영체제 그 자체를 서버로 사용하기에는 여간 불편한게 아니다. 따라서 리눅스 환경에서 서버를 운영하고 싶었는 데 나에겐 선택지가 두 개가 있었다.
- 가상 머신을 설치하고 새로운 컴퓨터를 띄우는 방법
- WSL을 사용하여 Windows에 Linux를 설치해서 사용하기
나는 가볍게 사용할 생각이라 WSL 을 사용해서 Linux 를 설치했다. 그리고 Docker 를 사용하여 모든 서버와 모니터링 관련 애플리케이션들은 이미지로 만들어서 컨테이너로 운영했다.
프로젝트 구경하기
URL : https://nyangnyang.co.kr