Categories: 미분류

네이버 클라우드 DB 서버 설치하고 외부 연동하기

네이버 클라우드 DB 서버 설치하고 외부 연동하기

네이버 클라우드 플랫폼(NCP)을 이용하면 직접 가상 서버(인스턴스)를 생성하여 원하는 데이터베이스(DB)를 설치하고 외부 시스템과 연동할 수 있습니다. 예를 들어 웹사이트, ERP, 분석 툴 등에서 사용하는 데이터베이스를 클라우드 상에서 관리함으로써 성능과 보안, 확장성까지 확보할 수 있습니다. 이번 글에서는 네이버 클라우드 DB 서버 설치하고 외부 연동하기 과정을 단계별로 자세히 설명합니다.


DB 서버 설치 전 준비 사항

DB 서버를 설치하기 위해 먼저 다음과 같은 준비가 필요합니다.

  1. 네이버 클라우드 계정 및 결제 수단 등록
    • https://www.ncloud.com 에서 회원가입 후, 콘솔에 로그인합니다.
    • 결제 수단(카드) 등록이 되어 있어야 인스턴스 및 DB 설치가 가능합니다.
  2. 인스턴스 생성
    • Compute > Server 메뉴에서 인스턴스를 생성합니다.
    • Ubuntu 또는 CentOS 운영체제를 추천하며, 최소 사양은 2vCPU, 4GB RAM 이상을 권장합니다.
  3. 공인 IP 및 방화벽 설정
    • 외부 연동을 위해서는 공인 IP가 할당되어 있어야 하며, 방화벽(Access Control Group)에서 DB 포트를 열어주어야 합니다.
  4. SSH 키페어 생성 및 접속 준비
    • 인스턴스 생성 시 키페어를 함께 생성하고 PEM 키를 안전하게 보관합니다.
    • SSH를 통해 서버에 접속해 설치 작업을 진행합니다.

이 단계까지 완료되면 본격적으로 네이버 클라우드 DB 서버 설치하고 외부 연동하기를 위한 본 작업을 시작할 수 있습니다.


DB 서버 설치 (MySQL 예시)

이번 예시에서는 가장 널리 사용되는 오픈소스 DB인 MySQL을 기준으로 설치 과정을 설명합니다. Ubuntu 서버 기준입니다.

  1. 패키지 업데이트 sudo apt update && sudo apt upgrade -y
  2. MySQL 서버 설치 sudo apt install mysql-server -y
  3. MySQL 보안 설정sudo mysql_secure_installation
    • root 비밀번호 설정
    • 익명 사용자 제거
    • 원격 루트 로그인 차단 (나중에 변경 가능)
    • 테스트 DB 제거
  4. 서비스 확인 및 부팅 시 자동 시작 설정 sudo systemctl status mysql sudo systemctl enable mysql

설치가 완료되면 mysql -u root -p 명령어로 DB에 접속할 수 있습니다. 이제 외부 연동을 위한 설정을 추가로 진행해야 합니다.


외부 접속을 위한 MySQL 설정

기본 설정 상태에서는 외부에서 MySQL DB에 접근할 수 없습니다. 외부 연동을 위해 다음 설정을 적용해야 합니다.

  1. MySQL 설정 파일 수정sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    • bind-address = 127.0.0.1bind-address = 0.0.0.0 으로 변경
    • 모든 IP에서 접근 가능하게 설정 (보안상 특정 IP로 제한하는 것이 바람직)
  2. 방화벽 설정 (Access Control Group)
    • 콘솔에서 해당 인스턴스의 방화벽 규칙에 들어가 3306번 포트(MySQL 기본 포트)를 허용 IP 또는 전체 0.0.0.0/0으로 열어야 합니다.
  3. MySQL 사용자 외부 접속 권한 부여 CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
  4. MySQL 재시작 sudo systemctl restart mysql

이제 외부 컴퓨터에서 Workbench, DBeaver, 또는 애플리케이션에서 해당 DB 서버의 공인 IP포트 3306을 통해 접속이 가능합니다. 이 설정이 완료되면 네이버 클라우드 DB 서버 설치하고 외부 연동하기가 완료된 것입니다.


활용 예시: 웹 애플리케이션과의 연동

설치한 DB 서버는 다양한 애플리케이션과 연동될 수 있습니다. 예를 들어, Node.js 기반의 웹 서버에서 MySQL을 사용하는 경우, 다음과 같은 코드로 연결할 수 있습니다.

const mysql = require('mysql');
const db = mysql.createConnection({
  host: '서버공인IP',
  user: 'youruser',
  password: 'yourpassword',
  database: 'yourdb'
});
db.connect((err) => {
  if (err) throw err;
  console.log('Connected to MySQL DB!');
});

이렇게 설정하면 클라우드에 구축한 DB 서버를 외부 애플리케이션에서 직접 호출할 수 있습니다. 단, 접속 IP 제한 및 보안 정책을 강화하여 무차별 접속을 막아야 하며, SSL 연결 설정도 권장됩니다.


Q&A

Q. DB 서버를 직접 설치하지 않고도 사용할 수 있는 방법은 없나요?

있습니다. 네이버 클라우드에서는 직접 OS 위에 DB를 설치하지 않고도, **Managed DB 서비스(RDS)**를 제공합니다. 이를 이용하면 복잡한 설치나 보안 설정 없이 클릭 몇 번으로 MySQL, PostgreSQL, MSSQL 등의 데이터베이스를 사용할 수 있습니다. RDS는 자동 백업, 스냅샷, 장애 복구 등의 기능도 기본으로 제공되어 운영 부담이 줄어듭니다. 하지만 비용이 자체 설치보다 높을 수 있으므로, 예산과 관리 편의성 중 어느 쪽을 우선시하느냐에 따라 선택하면 됩니다.


Q. 외부 접속을 허용하면 보안에 문제가 생기지 않나요?

외부 접속을 허용하면 분명히 보안 이슈가 발생할 수 있습니다. 기본적으로는 외부에서 DB에 접속할 수 없도록 설정하는 것이 원칙입니다. 외부 접속이 꼭 필요할 경우에는 다음과 같은 보안 대책을 병행해야 합니다:

  • 방화벽에서 특정 IP만 포트 3306 접근 허용
  • 강력한 비밀번호 정책 적용
  • SSL 기반 접속 구성
  • Fail2Ban 또는 UFW 같은 침입 방지 시스템 설정
  • MySQL root 계정의 원격 접속 차단

이 외에도, 정기적인 로그 점검과 보안 패치 적용을 통해 공격을 방지할 수 있습니다. 가능하다면 SSH 터널링을 통해 DB에 간접적으로 접속하거나, VPN을 활용하는 것도 안전한 방법입니다.


Q. 외부 애플리케이션에서 DB 접속이 안 될 때는 어떻게 해결하나요?

외부 접속 오류가 발생할 때는 다음 사항을 차례대로 점검하세요.

  1. 3306 포트 개방 여부 확인
    • Access Control Group에서 인바운드 규칙에 3306번 포트가 열려 있어야 합니다.
  2. MySQL bind-address 확인
    • /etc/mysql/mysql.conf.d/mysqld.cnf에서 bind-address가 0.0.0.0으로 설정되어 있는지 확인
  3. MySQL 사용자 권한 확인
    • 외부 IP(%)에서 접속 가능한 사용자 권한이 제대로 부여되었는지 확인
  4. 서버 방화벽 또는 UFW 설정 확인
    • 서버 내부 방화벽(UFW 등)이 포트 3306을 차단하고 있지 않은지 확인
  5. 접속 IP 확인
    • 클라이언트 측 IP가 방화벽 허용 범위에 포함되어 있는지 확인

위 단계를 점검해도 해결되지 않는 경우, 서버의 MySQL 로그(/var/log/mysql/error.log)를 참고해 보다 상세한 원인을 파악할 수 있습니다.

huniverse4

Recent Posts

윈드라이브 동기화 용량 초과 시 대처법

윈드라이브(OneDrive)를 사용하다 보면 어느 순간 “동기화 중지됨”, “저장소 가득 참”이라는 메시지를 마주할 수 있습니다. 이는…

1개월 ago

윈드라이브 동기화 폴더 바꾸는 법 (드라이브 변경 포함)

윈드라이브(OneDrive)를 사용하다 보면, 기본으로 설정된 동기화 폴더 위치가 불편하거나 C드라이브 용량 부족 등으로 인해 다른…

1개월 ago

윈드라이브를 수동 동기화로 설정하는 방법

윈드라이브(OneDrive)는 기본적으로 자동으로 파일을 클라우드와 동기화하도록 설정되어 있습니다. 문서를 수정하거나 사진을 추가하면, 몇 초 내로…

1개월 ago

윈드라이브 동기화 안 될 때 체크할 설정 5가지

윈드라이브(OneDrive)는 자동으로 파일을 클라우드에 백업하고 여러 기기와 실시간으로 동기화해주는 매우 유용한 도구입니다. 하지만 간혹 “OneDrive…

1개월 ago

윈드라이브 동기화 상태 확인 및 오류 해결법

윈드라이브(OneDrive)는 실시간으로 파일을 클라우드에 저장하고 여러 기기에서 자동으로 동기화해주는 편리한 서비스지만, 때때로 동기화가 멈추거나 오류가…

1개월 ago

윈드라이브 특정 폴더만 동기화하는 방법

윈드라이브(OneDrive)는 기본적으로 전체 OneDrive 폴더를 PC와 동기화하지만, 모든 데이터를 동기화할 필요는 없습니다. 저장 공간을 절약하거나,…

1개월 ago