본문 바로가기
문제해결

NCloud로 서버 생성과 Mysql 연동 후 express 배포하기 - 1

by NEMNE 2021. 9. 23.

얼마 전에 NCloud로 배포를 할 일이 생겼습니다. 그러나 배포에 대해 무지했고 AWS도 제대로 사용해본 경험도 없어 처음 배포 당시에는 엄청 헤매었습니다. 또한 AWS와는 다르게 비교적 선호도가 낮은 NCloud여서 검색 자료도 적어서 아쉬웠습니다. 그래서 이번에 제가 부딪히면서 알게 된 배포 방식을 공유해보려고 합니다 :) (사실 제가 까먹을까 봐 블로그에 기록하는 겁니다 ㅎㅎ)

 


목차

  1. ncloud 서버 생성
    • acg 설정
  2. 포트포워딩
  3. 공인 아이피 신청
  4. 원격 접속 및 설정
  5. git 설치
  6. node 설치

NCloud로 서버 생성과 Mysql 연동 후 express 배포하기 - 2

  1. pm2 설치
    • git clone
  2. mysql 설치

ncloud 서버 생성

먼저 배포를 위해 가장 필요한 서버를 생성해줍니다.

ncloud 홈페이지에서 로그인 후에 좌측 상단에 "콘솔"이라는 버튼이 있을 겁니다. 해당 버튼을 클릭해서 콘솔 홈페이지로 들어옵니다.

그다음으로 Products & Services라는 카테고리를 선택하고 Server를 선택해줍니다.

 

 

Server를 선택해주면 server를 관리해주는 화면이 나오게 됩니다. 여기서 서버 생성 버튼을 클릭해서 서버를 생성해주도록 합니다.

 

 

서버 생성을 클릭해주면 간단하게 사양과 어떤 OS를 선택할지 고르는 화면이 나옵니다.

저는 50GB / OS / Ubuntu / Compact / ubuntu-16.04-64-server를 선택했습니다. (우분투 서버 버전은 서버 구동을 위해 최소한의 기능을 남겨두는 버전이라고 합니다!)

 

만약에 서버 규모가 크지 않은 프로젝트라면 가격대가 가장 저렴한 Micro를 사용하시는 걸 추천드립니다.

 

 

만약 처음 서버를 배포하시는 분이라면 여기서부터는 조금 복잡해 보일 겁니다.

 

가장 먼저 Zone은 서버를 생성할 Zone을 선택하는 것이며 Zone 간 통신 요금이 발생하기 때문에 만약에 기존 서버가 있다면 기존 서버 위치를 고려할 필요가 있습니다. (처음 서버를 생성할 때는 중요하지 않은 설정이므로 아무거나 선택해줍니다.)

 

스토리지 종류 선택은 SSD와 HDD로 나뉩니다. SSD는 고성능 I/O가 필요할 경우 선택해줍니다. (대신 가격이 올라갑니다..ㅠ)

 

서버 세대와 서버 타입은 어느 종류의 서버를 생성할지 결정해주는 항목입니다. 여기서 실제 서비스를 배포하지 않은 이상 g1를 선택하시고 해당 경우에 따라 선택해주시면 됩니다.

 

서버 세대 - g1과 g2 중 선택
서버 타입 - 목적에 맞는 서버 타입 선택
- Micro: 서비스 체험용(테스트 용도) 서버 
- Compact: 개발 테스트 서버, 개인 홈페이지 운영, 소규모 웹사이트 운영
- Standard: 중/대규모 모바일/웹 서비스 운영, 게임/미디어/금융 서비스 운영
- High Memory: 고성능 데이터베이스 서버, 대규모 게임 서비스
- High CPU: 과학적 모델링, 게임 서버
- 부팅 디스크 타입에 따라 일부 서버 스펙 지원 불가

 

script 선택은 Init-Script으로 사용자가 미리 작성해 둔 스크립트를 서버 생성 시 자동으로 실행시킬 수 있는 기능으로, 서버의 초기 환경 구축 시 편리하게 활용할 수 있습니다. 만약에 따로 설정할 스크립트가 없다면 넘어가도 됩니다.

 

이제 인증키를 생성해 줍니다.

"인증키 생성 및 저장" 버튼을 누르면 name.pem 파일이 생성됩니다.

 

ACG 생성

 

서버 생성의 다음 단계는 네트워크 접근 설정 단계입니다. 여기서 ACG를 생성할 수 있습니다.

 

ACG란 서버에서 네트워크 접근을 관리 및 제어해주는 서비스입니다.

여러 서버에 대해 보안 정책을 별도의 설정 없이 일관적으로, 재사용할 수 있게 해 줍니다.

저는 ssh 접속을 위한 규칙과 배포를 위한 규칙 2개를 설정했습니다.

마지막으로 최종 확인 후 서버를 생성해줍니다. 서버를 생성하는데 수십 분 정도 소요되니 참고 바랍니다.

 

 

포트 포워딩

이제 서버 생성을 완료했습니다! 👏

 

그렇다면 이제 내 컴퓨터에서 해당 서버에 접속을 해야 합니다.

그러기 위해서는 포트 포워딩이라는 작업을 거쳐야 합니다.

 

포트 포워딩이란 내 PC에서 서버로 원격 접속을 하게 해주는 기능을 제공합니다. 또한 공인 IP와 포트번호에 따라 비공인IP와 비공인 포트번호를 연결해주는 역할도 합니다.

포트포워딩 설정을 위해서 서버 페이지로 다시 이동 후 방금 생성한 서버를 누른 후 포트 포워딩 설정을 클릭합니다.

 

 

이후 연결을 할 특정 외부 포트를 입력합니다. (겹치지 않은 포트 번호를 입력해줍니다.)

 

 

공인 IP

포트 포워딩 설정을 통해 내 PC에서 원격 서버를 접속할 수 있게 해 줬습니다. 그럼 이제 유저가 내 사이트를 접속할 수 있도록 해보겠습니다. 내가 만든 사이트에 접속을 하기 위해서는 주소가 필요합니다. 공인 IP는 지정한 서버에 공인 IP를 할당해 주는 서비스입니다.

ncloud 콘솔 화면에서 Products & Services를 클릭 후 Public IP로 들어갑니다.

 

 

해당 화면에서 공인 IP 신청을 눌러줍니다.

 

 

다음 버튼을 눌러 공인 IP를 생성해줍니다.

 

 

원격 접속 및 설정

이제 서버 설정은 끝났습니다!

그럼 직접 내 PC에서 연결해 보는 작업을 알려드리겠습니다.

원격 접속은 터미널을 켠 뒤 ssh root@포트포워딩 설정에 있는 서버 접속용 공인 IP -p 2020를 입력해줍니다.

접속하면 Are you sure you want to continue connecting이라는 질문을 하는 데 yes를 입력해주면 됩니다.

 

 

이후에는 비밀번호를 입력해줘야 하는데 비밀번호는 서버 페이지에서 서버 관리 및 설정 변경 버튼을 누르고 관리자 비밀번호 확인을 누르면 알 수 있습니다.

 

 

매번 비밀번호를 조회하기 귀찮으니 passwd 명령어를 통해 비밀번호를 변경해줍니다.

이후에는 운영체제에서 설치 가능한 리스트를 업데이트하기 위해 apt-get update를 입력합니다.

 

 

Git 설치

배포할 파일들을 가져오기 위해서 Github에 있는 원격 저장소 파일들을 가져와야 합니다. 따라서 서버에 git을 설치해줍니다.

apt-get install git을 통해 git 설치합니다.

 

 

node 설치

express 프레임워크로 구성된 파일을 배포할 예정이므로 node를 설치해줍니다.

그러나 제가 설치한 ubuntu-16.04-64-server에는 nodejs가 없으므로 curl을 이용해서 nodejs를 설치하도록 하겠습니다.

 

먼저 apt-get install curl를 입력하여 curl를 설치합니다.

 

이후 curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - 을 입력 후 apt-get install -y nodejs 입력해서 nodejs를 다운로드합니다.

 

다만 node의 버전이 10.x 버전이 설치되기 때문에 별도의 추가 업데이트가 필요합니다.

추가 업데이트는 다음과 같은 방식으로 하면 됩니다.

sudo npm cache clean -f 
sudo npm install -g n 
sudo n lts

 

 

만약 sudo: unable to resolve host [hostname] 메시지가 뜰 경우 vi /etc/hosts 를 입력 후 127.0.1.1 서버 이름을 추가해줍니다.

 

이후 pm2 설치와 mysql 설치는 2편에서 다루겠습니다.