Naver Cloud 환경 구축

심야·2022년 12월 20일
3

데브옵스

목록 보기
1/13

이 글에서는 로컬에 생성한 스프링 부트 프로젝트를 Naver Cloud에 배포한 뒤 외부에서 웹 서비스와 DB에 접속하는 방법을 안내한다.

서버 생성

Naver Cloud Platform을 이용해 Ubuntu 18.04 서버를 생성하였다.

서버 생성 방법은 아래 링크를 참고하면 된다.
https://guide.ncloud-docs.com/docs/server-create-vpc

Spring Boot 생성

그리고 Spring Initializr로 스프링 부트 프로젝트도 생성하였다.

SSH 접속

로컬에서 Naver Cloud에 접속하려면 우선 포트 포워딩이 선행되어야 한다.
자세한 내용은 아래 링크를 참고한다.
https://guide.ncloud-docs.com/docs/server-manage-classic#%포트포워딩설정

포트 포워딩을 통해 설정한 포트와 IP는 아래와 같다.

이제 서버에 접속할 수 있도록 Bitvise SSH Client 또는 Putty와 같은 SSH Client가 필요하다. 본 글에서는 Bitvise SSH Client로 접속한다.

root PASSWORD

Naver Cloud Console에서 서버 관리 및 설정 변경 - 관리자 비밀번호 확인 버튼을 클릭한다. 아래 화면에서 인증키를 첨부하면 root password를 발급해준다.

JDK

우분투에 접속한 뒤 아래 명령어를 입력해 패키지를 최신 버전으로 변경한다.

sudo apt-get update -y && sudo apt-get upgrade -y

스프링 부트 2.7.6 버전을 사용하므로 자바 11 버전을 사용해야 한다. 따라서 우분투에 자바 11버전을 설치하겠다.

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get install openjdk-11-jdk

자바 설치가 완료되었는지 확인한다.

JAVA_HOME의 시스템 변수 설정을 위해 ~/.bashrc 파일에 아래 내용을 추가한다.

영구적으로 저장되기 위해선 source ~/.bashrc를 입력해야 한다.

Git clone

git이 기본적으로 설치가 되어 있으니 프로젝트를 git clone으로 저장할 프로젝트 디렉토리를 생성한다.

mkdir app

디렉토리를 생성 했으면 HTTPS 주소를 복사한다.

복사한 주소를 이용해 git clone을 진행한다.

git clone https://github.com/f-lab-edu/half-time

프로젝트 디렉토리로 이동해 파일들이 잘 복사 되었는지 ls -l 또는 ll 명령어로 확인한다.

MySQL 설치 및 외부 접속 설정

잘 복사되었으니 이제 MySQL도 설치하자.

sudo apt-get install mysql-server

mysql -u root -p 명령어를 이용해 접속한다.

접속했으면 admin 계정을 만든다.

create user 'admin'@'%' identified by 'PASSWORD';

# 계정 확인
use mysql;
select user, host from user;

admin 계정으로 조회 가능한 데이터베이스를 생성한다.

create database TESTDB;
use TESTDB;

데이터베이스에 관한 모든 권한을 admin계정에게 할당한다. 명령어는 아래와 같다.

grant all privileges on TESTDB.* to 'admin'@'%';
flush privileges;

원격 접속을 위한 계정 설정이 끝났다. 이제 원격 접속을 가능하게 MySQL 설정 파일을 변경하겠다.

cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf

설정 파일 안에 bind-address127.0.0.1로 되어 있다. 외부 접속을 허용하기 위해 0.0.0.0으로 변경한다.

3306포트를 허용하기 위해 우분투 방화벽을 열어준다.

ufw allow mysql
systemctl restart mysql.service

ACG 설정

이제 Naver Cloud 방화벽 규칙을 설정하고 외부에서 서비스에 접속하기 위한 공인 IP까지 할당하면 모든 준비가 끝난다.

Naver CloudACG 설정에서 아래와 같이 방화벽 허용 룰을 생성한다.

공인 IP 설정

공인 IP 할당 방법은 아래 링크를 참고하면 된다.
https://guide-gov.ncloud-docs.com/docs/compute-compute-2-1-v2

빌드 및 배포

방화벽 룰도 설정했고 공인 IP도 할당 받았다.
./gradlew build 명령어로 빌드 후 jar파일을 실행하면 외부에서 서비스에 접속할 수 있다.

cd /build/libs
java -jar [file name].jar

스프링 부트가 정상적으로 실행되었다. 이제 외부에서 서비스에 접속해보겠다.

정상적으로 index.html 페이지가 출력된다.

MySQL 접속

이제 무료 Tool인 MySQL WorkBench 사용해 MySQL에 접속되는지 확인하겠다.

워크벤치를 실행해 사용하는 DB 이름과 할당 받은 공인 IP 그리고 DB에 접속하는 계정을 입력한다.

성공적으로 연결되었고 DB에 접속하였다

END

외부에서 Naver Cloud 인스턴스 서버와 DB에 접속하는 방법을 알아봤다.

출처

https://guide.ncloud-docs.com/docs/server-procedure#3%ED%8F%AC%ED%8A%B8%ED%8F%AC%EC%9B%8C%EB%94%A9%EB%98%90%EB%8A%94%EA%B3%B5%EC%9D%B8IP%EC%84%A4%EC%A0%95

https://velog.io/@jdk9908/%EC%99%B8%EB%B6%80%EC%97%90%EC%84%9C-MySQL-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0#1-mysql%EC%97%90-%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%9C%A0%EC%A0%80-%EB%A7%8C%EB%93%A4%EA%B8%B0

profile
하루하루 성실하게, 인생 전체는 되는대로.

2개의 댓글

comment-user-thumbnail
2023년 7월 24일

이번에 NCP로 배포를 하게 됐었는데 정말 도움이 많이 됐습니다!

1개의 답글