1. 왜 aws 대신 홈서버를 구축하는가?
aws ec2를 이용해서 오라클 DB를 팀프로젝트에서 공용으로 사용했던 경험이 있다. 그 중에서도 t2.micro 제품을 사용했었는데 그 이유는 free tier로 1년간 무료로 사용 가능한 제품이 t2.micro였기 때문이다.
사용하면서 가장 불편했던 점은 2~3일에 한 번 쯤은 ec2서버가 다운되는 문제였다. aws는 모니터링 도구를 제공하기 때문에 문제가 뭔지 살펴볼수 있다. 모니터링에 대해서 잘은 몰랐지만 서버가 다운되는 시점에 cpu사용율이 100%에 가깝게 올라가는 현상을 발견할 수 있었다.
위 사진에서도 확인할 수 있다시피 t2.micro의 RAM은 1GB이다. 요즘 평범한 pc들도 RAM이 16GB는 되는데 너무 작은 용량이라 할 수 있다. 당시에는 ec2에 도커를 설치하고 컨테이너를 띄우는것만 해도 나에게는 어려운 일이었기 때문에 실제로 트래픽이나 로그를 분석할수는 없었다. 그렇지만 서버가 다운되는 원인을 예상해보자면 ec2서버를 너무 낮은 등급으로 선택해서 db로 들어오는 트래픽을 감당못하고 서버가 다운되지 않았을까싶다.
실제 aws로 서비스를 배포하려면 여러개의 ec2 서버를 필요로 한다. 간단하게 생각해도 프론트, 백엔드, db 까지 적어도 3개의 서비스를 실행시킬 ec2 인스턴스가 필요하다. 게다가 t2.micro정도의 성능으로는 실제 서비스를 운용하기는 어렵기 때문에 더 높은 등급을 선택하고 ec2서버를 여러개 운용한다면 고정비용이 만만찮게 발생한다.
aws가 사용한만큼 돈을 지불하는 합리적인 방식을 채택하고 있지만 수익이 발생하는 서비스가 없는 나에게는 그 가격마저도 부담으로 느껴졌다. 그래서 차라리 1년치 aws비용으로 pc를 구입해서 서버를 운용해보자고 결심했다.
비용 외에도 홈서버를 구축해보는 이유가 하나 더 있다. aws에서 제공하는 편의 기능들은 사용하기엔 좋지만 기능들이 추상화 되어있어 공부하는 입장에서는 모호한 점이 많다. 때문에 실제 네트워크 설정등의 작업을 좀 더 깊이 공부하고 싶었던 나는 홈서버라는 선택을 하게 되었다.
2. 어떤 pc를 선택할까?
서버용 pc는 사실 어떤것이든 상관이 없다. 실제 수익이 발생한다면 클라우드방식이나 온프레미스 방식을 고려하여 가장 효율적인 방식을 택하겠지만 공부하는 입장에서는 굴러다니는 pc를 사용하거나 혹은 가성비 좋은 pc를 구입하면 된다. 운이 좋게도 요즘에는 값싼 중국발 mini pc들이 많다. 나도 할인기간을 이용해 n100계열의 mini pc를 구입했다.
나는 위 제품을 RAM 16GB와 SSD 512GB 사양으로 구입했는데 알리익스프레스 할인기간을 이용해 14만원 정도에 구입했다. n100 제품은 가성비 좋기로 유명하다. 게다가 저 가격에 정품 윈도우 11인증까지 되어있다.
중국제라는 것이 마음에 걸리기 때문에 n100 제품을 구매한다면 사용 전 꼭 포맷을 하도록 하자. 포맷 관련 내용은 블로그나 유튜브에 많기 때문에 쉽게 따라할 수 있다.
3. 홈서버 배포를 위해 앞으로 할 일
pc에 서비스를 실행하면 될 것같지만 홈서버를 구축할 때 필요한 것들이 몇 가지 있다. 다음 포스팅부터 아래와 같은 순서로 홈서버 구축을 진행할 것이다.
1)포트포워딩: 인터넷 제공업체에서는 실제 ip주소를 제공해주지만 사용자가 인터넷을 사용할 때는 가상ip를 부여받는다. 외부에서는 실제ip로만 접근이 가능한데 가상ip가 부여된 내 pc까지 요청이 도달하려면 `포트포워딩`이라는 작업을 해주어여 한다.
2) 운영체제선택 및 설치: 서버pc는 보통 linux운영체제를 선택한다. 오픈소스인데다가 cli방식이라 화면구현에 들어가는 리소스를 절약할 수 있어 효율적이기 때문이다. 하지만 나는 윈도우와 리눅스 환경을 둘 다 사용하고싶어 WSL(Windows Subsystem for Linux)로 윈도우환경에서 리눅스를 사용할 예정이다.
3) 외부접속: 외부에서 내 홈서버에 접근할 수 있는 다양한 방식이 있다. 개발 혹은 배포를 위해서 내 서버와 상호작용하는 방법을 알아볼 것이다.
다음 포스팅에서는 첫번째 과정인 포트포워딩 하는 방법을 다뤄보겠다.
'만들자 > 홈서버만들기' 카테고리의 다른 글
[홈서버]내 서비스 홈서버에 배포하기 -1(통신사 포트포워딩) (0) | 2024.08.07 |
---|