웹서버 구성

서버 : Oracle Cloud VM 무료티어 (VM.Standard.E2.1.Micro, 지역 Seoul)

운영체제 : CentOS 7

웹구성 : React <=(GraphQL) => NestJS <=(TypeORM)=> MariaDB

사용 언어 : TypeScript

 

 

시작하기 전에

# 패키지 업데이트
sudo yum update -y

# curl 설치
sudo yum install -y curl

# zsh, ohmyzsh 설치
sudo yum install -y zsh
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Node.js 14 버전 설치
# https://github.com/nodesource/distributions/blob/master/README.md 참조
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs

# yarn 패키지 매니저 설치
sudo npm install -g yarn

# NestJS 설치
sudo npm install -g @nestjs/cli

 

가상 클라우드 네트워크에서 80, 443, 8080 포트 오픈

 

인스턴스 안에서 방화벽 열기 (RHEL8부터 iptables가 아닌 firewalld로 변경됨)


# 포트 오픈
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
# ifconfig로 이더넷 이름 확인
sudo firewall-cmd --zone=public --change-interface=이더넷 이름
# firewalld 설정
sudo firewall-cmd --reload
# zone 설정 확인
sudo firewall-cmd --list-all 
# 활성화된 zone 확인
sudo firewall-cmd --get-active-zone

 

NestJS 웹서버 테스트

nest new web

# npm/yarn 중 yarn 선택

# 포트 수정
vi src/main.ts
# 3000을 8080으로 수정

# NestJS 시작
yarn start

# 자기 IP 주소와 포트번호로 접속 후 Hello World! 뜨는지 확인
# ex) 123.45.67.89:8080

 

PM2 설치

# PM2 설치
sudo yarn global add pm2

# nest라는 이름으로 yarn start 실행
# yarn 명령어를 pm2로 실행
# --name nest : 이름은 nest로
# -- start : yarn 명령어의 매개변수로 전달
pm2 start yarn --name nest -- start

 
 # 프로세스 목록 확인
 pm2 list
 
 # 프로세스 정지
 pm2 stop nest
 
 # 프로세스 종료
 pm2 delete nest

프로세스을 조종하는 것은 이름을 줄 수도 id를 줄 수도 있는데, id로 컨트롤하는 것이 좋아보인다.

 

 

 

 

 

 

 

----------------------

기타 정보

무료티어 VM 인스턴스 인터넷 속도 측정

표기 대역폭 : 480.0 Mbit/s

실제 대역폭 : 45.08 Mbit/s (다운로드), 21.69 Mbit/s (업로드)

 

표기에 한참 못 미치는 속도이다.

 

 

 

VM.Standard.E2.4 인스턴스 테스트

표기 대역폭 : 5600 Mbit/s

실제 대역폭 : 285.93 Mbit/s (다운로드), 530.51 Mbit/s (업로드)

 

역시나 표기보다 한참 떨어지는 속도이다.

 

 

추후 지역을 변경해서 다시 테스트해볼 예정.

 

 

 

----------------------

메모리 사용량

 

Ubuntu 18.04

 

CentOS 7 > Ubuntu 18.04 > Oracle Linux 8.3 (왼쪽이 가장 사용량이 적다)

 

기본 이미지는 Oracle Linux 7.9이지만 개인적으로 Oracle Linux 8을 선택했습니다. 하지만 메모리 사용량이 기본 50% 이상이라 CentOS 8과 7 버전으로 다시 테스트해본 결과 CentOS 8은 약 40~50%로 오라클 리눅스 8보다는 다소 나은 메모리 사용량을 보여주었습니다 CentOS 7은 그보다 매우 나은 약 30%의 메모리 사용량을 보여주었습니다.

 

1GB라는 한정적인 메모리 용량에서는 CentOS 7이 나을 것으로 예상됩니다.

 

우분투 18.04의 경우 (Minimal 버전이 아닙니다!) 대략 35~40%로 CentOS 7보다는 메모리 사용량이 약간 많습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기