aws를 활용한 포트폴리오를 만들면서 프리티어를 사용함에도 달마다 비용이 청구되는 것을 보았다. 그리고 이번에 캐싱을 사용하기 위해서 redis를 도입하려고 하는데 aws에서 redis 서버를 빌리게되면 청구되는 비용이 만만치 않아서 집에서 쓰지 않는 노트북을 서버로 사용하기로 했다.

해당 노트북의 이름은 NT910S3L이며 기본 스펙은 다음과 같다.

프로세서 Intel® Celeron Processor 3855U (1.60 GHz 2MB L3 Cache)

메모리 4.00GB
시스템 종류 64비트 운영 체제
HDD 128GB

aws ec2를 쓸 때 주로 사용했던 서버는 우분투 환경이며 우분투 환경에 익숙하기 때문에 우분투 운영체제를 설치하기로 했다.

1. Ununtu Server 설치

먼저 우분투 서버를 설치하기 위해서 우분투 사이트에 방문헤서 최신 버전의 우분투를 설치한다. 우분투를 설치할 때는 LTS가 붙은 것을 설치하는 것이 좋은데 이유는 5년간 보안 및 유지 업데이트를 무료로 해주기 때문이다.

https://ubuntu.com/download/server

2. Rufus 다운로드

우분투 ISO 파일을 USB에 부팅 가능한 설치 미디어로 만들기 위해 Rufus 프로그램을 사용한다. Rufus는 Windows에서 쉽게 부팅 USB를 제작할 수 있는 무료 도구이다.

Refus를 설정할 때 다음과 같이 설정합니다.

  • 장치 → 본인 usb(4기가 이상 권장)
  • 부팅 선택 → 다운로드한 우분투 서버 ISO 파일
  • 파티션 구성 → GPT

위와같이 설정하였다면 나머지 옵션은 기본으로 두고 시작을 선택합니다.

3. 우분투 설치

  1. USB 연결 및 부팅 순서 변경 노트북에 Rufus로 만든 우분투 USB를 꽂고, 전원을 켠 후 부팅 메뉴 진입 (보통 F2, F10, F12, Del 키 중 하나) → BIOS/UEFI 설정에서 USB를 첫 번째 부팅 장치로 설정
  2. 우분투 부팅 후 설치 시작
    • "Try Ubuntu" 또는 "Install Ubuntu" 선택
    • "Minimal installation" 선택
    • 디스크 전체 사용 선택 후 설치 진행 (기존 Windows 삭제됨 → 백업 필수!)
  3. 설치 중 사용자 설정
    • 사용자 이름, 비밀번호 설정 (SSH 접속 시 사용)
    • OpenSSH server 설치 체크 → 설치 중에 자동으로 SSH 서버 설치됨 (나중에 수동 설치 안 해도 됨!)
  4. 설치 완료 후 재부팅
    • USB 제거 후 재부팅 → 우분투 서버 로그인 화면 등장

4. 포트포워딩

노트북 서버에 접근하기 위해서 먼저 외부에서는 공유기에 접근하여야한다. 저자는 ipTime 공유기를 사용하고있기 때문에 웹 브라우저에 다음 ip(192.168.0.1)를 입력하면 된다. ip를 입력하고 나면 로그인 화면이 나타나게 된다. 초기 설정을 해두지 않았다면 id: admin, pw: admin으로 접속할 수 있다. 다음 화면이 나타나면 관리 도구를 선택한다.

메뉴 탐색기에서 고급설정 > NAT/라우터 관리 > 포트포워드 설정

위 화면과 같이 우분투 서버의 내부 IP 주소를 입력하고 외부 포트와 연결할 내부 포트 값을 입력하고 수정하면 된다. 내부 IP 주소를 알기 위해서 ifconfig 명령어를 통해서 알 수 있으며 wlp1s0에 나타나있는 주소가 내부 IP 주소라 할 수 있다.

5. 우분투 초기 환경 세팅

# 우분투의 패키지 관리 도구 업데이트
sudo apt update

# ssh 설치
sudo apt install openssh-server

# ssh 상태 확인 running이 아니라면 start 필요
sudo systemctl status ssh

sudo systemctl start ssh

# 다음 명령어를 통해서 ssh 연결 포트가 22인 것을 볼 수 있고 수정할 수 있다.
vi /etc/ssh/sshd_config

6. 우분투 자동 꺼짐 방지

서버는 24시간 서비스를 제공해야되기 때문에 자동으로 꺼지면 안된다. 그렇기 때문에 기본적으로 전원 절약 모드가 활성화되어있을 수 있기 때문에 이를 비활성화 해야한다. 우분투는 systemd를 통해 시스템의 유휴 상태를 관리합니다. 유휴 상태로 전환 시 종료되는 설정을 비활성화하려면

  1. logind설정 파일 편집
sudo nano /etc/systemd/logind.conf
  1. 아래 항목을 찾아 값을 수정하거나 추가
IdelAction=ignore
IdelActionSec=0
  • IdleAction=ignore: 유휴 상태에서 아무 작업도 하지 않도록 설정.
  • IdleActionSec=0: 유휴 시간 제한을 비활성화.
  1. 변경 후 logind 서비스 재시작
sudo systemctl restart systemd-logind

7.노트북 덮게 닫아도 꺼지지 않도록 설정

다음 설정 파일로 이동한다.

sudo nano /etc/systemd/logind.conf

다음 값이 있는 줄을 찾아서 주석을 해제하고 값 설정을 다음과 같이 설정한다.

HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore   # AC 전원일 때도 동일하게
HandleLidSwitchDocked=ignore          # 도킹 상태일 때도 (필요 시)

변경된 설정을 적용하기 위해서 재시작한다.

sudo systemctl restart systemd-logind

 

위와같이 우분투 서버를 쓰지 않는 노트북에설치해보았다. 복잡할 것 같은 느낌이였지만 막상 해보니 생각보다 어렵진 않았던 것 같다. 또한 비용을 절약할 수 있는 장점이 생겼다. 하지만 공유기의 IP가 변경될 가능성이 존재하기 때문에 실제 서비스를 구동하기 위해서 사용하려면 고정 아이피를 할당 받아야 할 것이다.

+ Recent posts