사용하기 전에

Q. 설치형 PostgreSQL은 어떤 상품인가요?

  • 원하는 CentOS 버전에 PostgreSQL을 몇 가지 설정과 클릭만으로 간편하게 구축할 수 있는 Basic Install 기능만을 지원하는 상품입니다. 이에 관련하여 제공된 설치 외의 부분에 대해서는 기술 지원을 제공하지 않고 있습니다.
  • "PostgreSQL"은 확장 가능성 및 표준준수를 강조하는 오픈소스 객체-관계형 데이터베이스(ORDBMS)인 PostgreSQL을 이용하고 있습니다.

Q. DB 서버를 생성하기전에 미리 준비해야 할 것들이 있나요?

  • 설치형 PostgreSQL DB 상품은 현재 네이버 클라우드 플랫폼 내부에서만 접근이 가능하므로, DB 서버에 접근할 애플리케이션 서버 역시 네이버 클라우드 플랫폼 내부에 있어야만 합니다.
  • 어떤 서비스에서 DB를 사용하고, 사용량이 얼마나 될지를 미리 예측하여, 서버 타입을 산정하셔야 합니다.

Q. DB 서버로 생성할 수 있는 서버 타입에는 어떤 것들이 있나요?

  • 설치형 PostgreSQL 상품에서는 고객의 용도에 맞게 여러 서버 타입 중 하나를 선택할 수 있습니다.
서버 타입 용도
2 vCPU, 4GB 메모리 가장 작은 서버 타입으로 개발, 테스트 DB, 개인 블로그 등에 적합합니다.
4 vCPU, 8GB 메모리 작은 서버 타입으로 작은 커뮤니티 또는 개인 쇼핑몰 구축 등에 적합합니다.
8 vCPU, 16GB 메모리 일반적인 서버 타입으로 스타트업 홈페이지, 서비스 DB로 적합합니다.
16 vCPU, 32GB 메모리 가장 큰 서버 타입으로 게임 DB, 쇼핑몰 DB 또는 중형 서비스 DB로 적합합니다.

Q. DB 서버 생성 절차는 어떻게 되나요?

  • 콘솔에 접속한 후 다음의 단계를 통해 DB 서버를 생성할 수 있습니다.

database-6-1-101

  • 콘솔 접속: 네이버 클라우드 플랫폼에서 제공하는 콘솔에 접속합니다.
  • 서버 설정: 스토리지 종류, 서버 타입, 서버 이름 등을 정합니다.
  • 인증키 설정: 보유하고 있는 인증키를 활용하거나, 없다면 새로운 인증키를 생성합니다.
  • 방화벽 설정: 보유하고 있는 ACG를 선택하거나 신규 ACG를 생성합니다.
  • 최종 확인: 서버 타입 등의 서버 설정 정보와 사용자가 선택한 요금제 정보 등을 최종 확인하고 DB 서버를 생성합니다.

Q. DB 서버가 생성될 때 어떤 운영 체제가 설치되며 제공되는 디스크의 크기는 얼마입니까?

  • 운영체제는 Linux이며, CentOS 6 또는 CentOS 7 버전 중 선택하여 설치할 수 있습니다.
  • 설치형 PostgreSQL 상품의 경우 운영체제를 위한 기본 디스크는 50GB가 제공되며 DB 서버 요금에 포함되어 있습니다.
  • 운영체제가 설치되는 기본 디스크는 용량 변경이 불가능합니다.

Q. 데이터베이스 스토리지는 무엇인가요?

  • 최초 DB 생성 시 HDD와 SSD 중 선택 가능하며, 이에 따라 다른 요금이 적용됩니다.
  • 서비스를 위한 DB인 경우 가급적 고성능 I/O가 제공되는 SSD 타입을 권장합니다.

Q. 설치형 PostgreSQL 상품의 라이선스는 무엇인가요?

PostgreSQL 설치형 서비스 소개

네이버 클라우드 PostgreSQL 설치형 서비스의 개념과 기본 구조를 설명합니다.

PostgreSQL 소개

PostgreSQL은 전 세계에서 가장 안정적이고 진보적인 오픈 소스로 평가받는 DBMS입니다. 완벽한 트랜잭션(ACID)과 높은 동시성 제어(MVCC)를 지원하여 효과적인 비용 관리가 가능합니다.

네이버 클라우드 PostgreSQL 설치형 서비스 구성

설치형 서비스

네이버 클라우드에서 지원하는 PostgreSQL 설치형 서비스의 경우 기본적인 9.4 버전 설치를 지원하며 PostgreSQL Server가 Startup된 상태로 제공됩니다. 이와 관련하여 DB 설치 외의 부분에 대해서는 기술 지원을 제공하지 않습니다.

설치 방법 및 패키지

PostgreSQL 설치의 경우 Source Compile / RPM / Binary 설치 방법이 있으며, 네이버 클라우드에서는 Normal Install 방법인 RPM 설치 이미지를 제공합니다.

RPM 설치에는 PostgreSQL(postgresql.org)에서 공식적으로 제공하는 .repo 파일을 사용하며 Repo에서 제공하는 Latest Version을 기본으로 서버 이미지에 포함하여 제공합니다.

다음은 기본 설정으로 설치되는 패키지 목록입니다.

  • postgresql94-server
  • postgresql94
  • postgresql94-libs

설치 디렉터리

항목 위치
DATADIR ($PGDATA) /var/lib/pgsql/9.4/data
LOGFILE $PGDATA/pg_log
postgresql.conf $PGDATA/postgresql.conf
pg_hba.conf $PGDATA/pg_hba.conf
pg_default 테이블 스페이스의 물리적 위치 $PGDATA/base
pg_global 테이블 스페이스의 물리적 위치 $PGDATA/global

원격 접속을 위한 환경 설정 방법(CentOS 6/7 공통)

PostgreSQL은 최초 설치 시 localhost(127.0.0.1)에서만 접근을 허용하기 때문에 원격 접속이 불가능합니다. 따라서 네이버 클라우드 내의 PostgreSQL 설치형 이미지에서 원격 접속을 허용하려면 다음과 같이 환경 설정 파일을 변경해야 합니다.

  • postgresql.conf

    기본적인 PostgreSQL DB 파리미터 설정 파일입니다. PostgreSQL의 Listen Address 기본 설정은 Localhost(127.0.0.1)만 허용하므로 외부에서 접근할 수 없습니다. 따라서 이 설정을 IP *(전체)로 변경한 후 서버를 재시작해야 합니다. 기본 포트 번호는 5432이며 필요 시 변경할 수 있습니다.

    vi /var/lib/pgsql/9.4/data/postgresql.conf
    * listen_addresses = '*'  # 모든 IP에 대한 remote 접속 허용합니다.
    * port = 5432             # 원하는 port번호를 설정합니다.
    
  • pg_hba.conf

    host-based authentication의 약자로, 인증 관련 설정 파일입니다. HOST, DATABASE, USER, ADDRESS, METHOD 정보로 구성됩니다.

    기본적으로 아래와 같은 설정이 적용되어 있으므로 별도로 내용을 수정할 필요는 없습니다. 계정에 대한 접근 방식을 비밀번호 방식으로 변경하고 비밀번호를 md5로 암호화하여 전송합니다.

    vi /var/lib/pgsql/9.4/data/pg_hba.conf
    * host    all             all             0.0.0.0/0                 md5
    

PostgreSQL 설치형 서비스 관리

PostgreSQL 설치형 서비스에서 관련되는 관리 방법을 설명합니다.

PostgreSQL 이미지 서버 생성

PostgreSQL 설치형 상품으로 이미지 서버를 생성하면 PostgreSQL DB설치 및 daemon이 Startup된 상태로 제공됩니다.

서버 생성

PostgreSQL 이미지가 설치된 서버를 생성하는 방법을 설명합니다.

Step 1. www.ncloud.com 접속 및 로그인

database-6-1-102

① 우측 상단 콘솔을 선택하여 콘솔에 접속합니다.

Step 2. 서버 생성

database-6-1-103

서버 생성을 클릭합니다.

Step 3. 서버 이미지 선택

database-6-1-104-1

① 필터 조건을 모든 이미지로 설정합니다.

② 원하는 OS 버전에 해당하는 PostgreSQL를 선택합니다.

database-6-1-104-2

③ PostgreSQL에 대한 공지를 확인한 후 확인을 클릭합니다.

database-6-1-104-3

다음을 클릭합니다.

Step 4. 서버 설정

database-6-1-105

① 원하는 서버 타입을 선택합니다.

② 원하는 서버명을 입력합니다.

다음을 클릭합니다.

Step 5. 인증키 설정

인증키 설정 단계에서는 새로운 인증키를 생성하거나 기존 인증키를 그대로 사용할 수 있습니다.

database-6-1-106

① 처음 사용자는 새로운 인증키 생성을 선택하고 인증키 이름을 입력합니다.

② 여기에서는 PostgreSQLncloudkey라는 이름으로 인증키를 입력했습니다.

③ 인증키 생성 및 저장을 클릭하고 다운로드된 PostgreSQLncloudkey.pem 파일을 안전한 곳에 저장합니다.

  • 이 파일은 향후 서버의 암호를 만드는 데 사용됩니다.
  • 같은 pem 파일을 사용하더라도 각각의 서버에 모두 다른 암호가 생성됩니다.

다음을 클릭합니다.

Step 6. 방화벽 설정

방화벽 설정에서는 ACG(Access Control Group)를 생성하거나 보유 ACG를 선택합니다.

database-6-1-107

① 처음 생성하는 경우는 ACG 생성을 클릭합니다.

database-6-1-108

② ACG 이름을 입력합니다. 여기에서는 PostgreSQL를 입력했습니다.

③ 접근을 시도하는 곳의 IP 주소나 IP 주소 대역을 기입합니다. 예를 들면, 단일 IP 주소의 경우 10.64.51.205만 입력하고, 10.64.51.XXX 대역에서 모든 접근이 필요할 경우 10.64.51.0/24를 입력합니다. 내부 Private IP 주소가 NAT 방식을 통해 외부로 나갈 경우는 Public IP 주소를 입력해야 합니다. 여기에서는 0.0.0.0/0을 입력했습니다.

④ 포트를 개별로 오픈할 경우 필요한 포트 번호를 허용 포트(서비스)에 입력 후 추가를 클릭합니다. 필요한 포트가 여러 개일 경우 항목을 추가하여 입력할 수 있습니다. 모든 포트를 오픈할 경우 1-65535를 입력하면 됩니다. (단, 이 경우 서버는 보안이 취약해지므로 가급적 단일 포트(예:5432) 입력을 권장드립니다. 더불어 단일 포트를 지정하실 때는 ssh 디폴트 포트(22) 또는 포트 포워딩 포트를 반드시 추가 등록하셔야 합니다.)

⑤ 오른쪽의 추가를 클릭합니다.

database-6-1-109

⑥ 생성될 서버의 최종 설정을 확인합니다.

생성을 클릭합니다.

Step 7. 최종 확인

위 단계까지 진행하고 난 후, pem key 파일이 내 컴퓨터의 안전한 곳에 보관되어 있고 ACG 설정을 기억하고 있어야 합니다. pem 키가 없다면 생성한 서버에 접근할 수 없으니 특별히 유의합니다.

database-6-1-110

서버 생성을 클릭합니다.

database-6-1-111

② 서버가 생성될 때까지 대기합니다.

서버 초기 설정 절차

서버를 생성한 후 서버에 접근하기 위해서는 공인 IP 주소를 설정하거나 포트 포워딩을 설정해야 합니다. GUI(pgAdmin) Tool을 이용하려면 반드시 공인 IP 주소를 설정해야 합니다.

공인 IP 주소 설정

위에 생성한 서버에 외부에서 접근하기 위해서는 공인 IP 주소 설정이 필요합니다.

database-6-1-112

① 메뉴에서 Public IP를 클릭합니다.

공인 IP 신청을 클릭합니다.

  • 공인 IP 주소는 보유하고 계신 서버의 개수만큼 신청할 수 있습니다.

database-6-1-113

③ 생성된 서버를 선택합니다.

확인을 클릭합니다.

database-6-1-114

확인을 클릭합니다.

database-6-1-115

⑥ 수 분 후 IP 주소가 할당됩니다.

  • 정상적인 공인 IP 주소가 할당되면 터미널 프로그램을 이용해 49.236.160.110:22로 해당 서버에 바로 접근할 수 있습니다.

터미널 접근을 위한 포트 포워딩 설정

포트 포워딩 정보에 안내된 서버 접속용 공인 IP 주소를 이용해 서버에 접속하기 위해서는 포트 포워딩을 설정해야 합니다.

database-6-1-116

① 서버를 선택하고 상단의 포트 포워딩 설정을 클릭합니다.

database-6-1-117

① 아래 화면의 포트 포워딩 설정에서 ssh 접속을 위한 외부 포트를 등록합니다.

② 외부 포트 등록 후 추가를 클릭합니다.

database-6-1-118

적용을 클릭합니다.

  • 위 포트 포워딩 설정을 통해 PostgreSQL-ncloud 서버 이름에 49.236.160.112:1234 설정 정보로 접근할 수 있습니다.

서버 비밀번호 확인하기

database-6-1-119

① 원하는 서버를 선택합니다.

서버 관리 및 설정 변경 메뉴에서 관리자 비밀번호 확인을 클릭합니다.

database-6-1-120

③ 인증키 입력란에 내 컴퓨터에 저장된 PostgreSQLncloudkey.pem 파일을 업로드합니다.

비밀번호 확인을 클릭합니다.

database-6-1-121

⑤ 최초 생성 시에 제공되는 관리자 비밀번호가 표시됩니다.

  • 최초 생성 시에 제공되는 관리자 비밀번호를 사용하여 최초 로그인한 후에는 향후 관리를 위해 서버에서 비밀번호를 변경할 수 있습니다.

터미널을 이용한 접속

터미널을 이용하여 서버에 네이버 클라우드 플랫폼 PostgreSQL에 접속하는 방법을 설명합니다.

공인 IP 주소를 통한 접속

database-6-1-122

① 서버의 접속 정보를 입력합니다.

  • PORT: 기본 포트 번호(22)
  • 공인 IP: 발급받은 공인 IP 주소(예: 49.236.160.110)

열기를 클릭합니다.

database-6-1-123

를 클릭하여 접속합니다.

database-6-1-124

④ 계정명 root를 입력 후 Enter 키를 누릅니다.

⑤ 관리자 비밀번호에서 확인한 비밀번호를 입력합니다.

포트 포워딩을 통한 접속

database-6-1-125

① 서버의 접속 정보를 입력합니다.

  • PORT: 포트 포워딩으로 설정한 포트 번호(예: 1234)
  • 공인 IP: 포트 포워딩 화면에 안내된 서버 접속용 공인 IP 주소(예: 49.236.160.112)

열기를 클릭합니다

database-6-1-126

를 클릭하여 접속합니다.

database-6-1-127

④ 계정명 root를 입력 후 Enter 키를 누릅니다.

⑤ 관리자 비밀번호에서 확인한 비밀번호를 입력합니다.

서버 이미지 생성 이후

  1. 서버 생성 이후 바로 사용하지 않을 경우 보안 위험을 예방하기 위해 PostgreSQL Daemon ShutDown을 권장합니다.

  2. 생성된 PostgreSQL의 경우 비밀번호가 설정되지 않았기 때문에 반드시 비밀번호를 설정합니다.

PostgreSQL 기동/정지 방법

PostgreSQL DB 기동 및 정지는 아래와 같은 명령어로 실행합니다(root 계정에서 수행).

-- CentOS 6
shell> service postgresql-9.4 start
shell> service postgresql-9.4 stop

-- CentOS 7
shell> systemctl start postgresql-9.4
shell> systemctl stop postgresql-9.4

DB 구동 상태 및 Listen 포트 확인 방법

DB 구동 상태는 아래와 같은 명령어로 확인합니다(root 계정에서 수행). 명령어 실행 결과 CentOS 6/7 공통으로 running이라는 단어가 보여야 합니다.

-- CentOS 6
Shell> service postgresql-9.4 status
-- CentOS 7
Shell> systemctl status postgresql-9.4

Listen 포트는 아래와 같은 명령어로 확인합니다. 명령어 실행 결과 5432 포트가 listen 상태여야 합니다.

Shell> netstat -tunlp | grep post

PostgreSQL 비밀번호 변경 방법

PostgreSQL Password 정책에 따라 초기 비밀번호는 지정되지 않습니다. 최초 접속 시 반드시 비밀번호를 변경해야 합니다. 비밀번호를 변경하는 명령어는 다음과 같습니다.

Shell> sudo su - postgres
Shell> psql
postgres=> alter user postgres with password '패스워드';
PostgreSQL DB port 변경 방법

PostgreSQL 접속 시 사용되는 포트 번호5432는 사용자들에게 잘 알려진 포트 번호이므로 보안 취약점이 존재합니다. 따라서 자신만의 고유한 포트 번호를 정해서 사용하는 것을 권장합니다(예: 15432). 추가로 ACG(Access Control Group)의 허용 포트 번호(예: 15432)도 동일하게 설정하는 것을 권장합니다.

포트 번호는 아래 명령어를 사용하여 변경합니다.

  1. conf 설정 변경

     vi /var/lib/pgsql/9.4/data/postgresql.conf
     port = 15432    # 포트 번호 변경
    
  2. PostgreSQL 재시작

     # root 계정
     -- CentOS 6
     shell> service postgresql-9.4 restart
    
     -- CentOS 7
     shell> systemctl restart postgresql-9.4
    
  3. 변경된 Listen 포트 번호 확인

     shell> netstat -tunlp | grep post
    

로컬에서 PostgreSQL DB 접속 방법

Shell> sudo su - postgres
Shell> psql
postgres=# \h  >> 도움말 보기
postgres=# \q  >> 나가기

원격 서버(웹 서버 또는 다른 DB)에서 PostgreSQL 접속 방법

Shell> sudo su - postgres
Shell> psql -h IP주소 -p 5432 -U 유저명 -d DB명
       Password for user : 비밀번호 입력
postgres=# \h  >> 도움말 보기
postgres=# \q  >> 나가기

※ 참고

기본적으로 원격 접속을 위한 환경이 설정되어 있어야 합니다. 보다 자세한 내용은 본 문서의 postgresql.conf 파일 수정 방법을 참고하시기 바랍니다.

GUI(pgAdmin) Tool을 이용한 PostgreSQL 접속 방법

본인 PC의 Windows 환경에서 PostgreSQL 서버에 접속해야 하므로, 추가로 PostgreSQL 서버에 공인 IP 주소를 할당해야 합니다. Public IP 메뉴에서 공인IP 신청을 선택 후, 적용 서버 선택에서 해당 서버를 선택합니다.

pgAdmin Tool 관련 보다 자세한 내용은 아래 주소에서 확인할 수 있습니다.

※ 참고

기본적으로 원격 접속을 위한 환경이 설정되어 있어야 합니다. 보다 자세한 내용은 본 문서의 postgresql.conf 파일 수정 방법을 참고하시기 바랍니다.

기본 Data Directoty 변경 방법

  1. postgres daemon stop

     -- cent 6
     service postgresql-9.4 stop
     -- cent 7
     systemctl stop postgresql-9.4
    
  2. 신규 디렉토리 생성

     mkdir -p /var/lib/pgsql/NEW_PGDATA
    
  3. 디렉토리 오너 및 권한 변경(700 필수)

     chown -R postgres:postgres /var/lib/pgsql/NEW_PGDATA
     chmod 700 -R /var/lib/pgsql/NEW_PGDATA
    
  4. postgres 유저의 .bash_profile 환경 변수 변경

     vi /var/lib/pgsql/.bash_profile
     변경 전 : PGDATA=/var/lib/pgsql/9.4/data
     변경 후 : PGDATA=/var/lib/pgsql/NEW_PGDATA
    
  5. pstgres service 설정 변경

     -- cent 6
     # root 유저에서 수행
     vi /etc/init.d/postgresql-9.4
     >> PGDATA와 PGLOG 디렉토리 경로를 변경합니다.
     변경 전 : PGDATA=/var/lib/pgsql/9.4/data
     변경 후 : PGDATA=/var/lib/pgsql/NEW_PGDATA/data
    
     변경 전 : PGLOG=/var/lib/pgsql/9.4/pgstartup.log
     변경 전 : PGLOG=/var/lib/pgsql/NEW_PGDATA/pgstartup.log
    
     -- cent 7
     # root 유저에서 수행
     vi /usr/lib/systemd/system/postgresql-9.4.service
     변경 전 : Environment=PGDATA=/var/lib/pgsql/9.4/data/
     변경 후 : Environment=PGDATA=/var/lib/pgsql/NEW_PGDATA/data
    
  6. 새로운 Postgres datadir로 데이터 이전

     # postgres 유저에서 수행
     mv /var/lib/pgsql/9.4/data /var/lib/pgsql/NEW_PGDATA/
    
  7. postmaster.opts 파일을 삭제

     rm /var/lib/pgsql/NEW_PGDATA/data/postmaster.opts
    
  8. postgres daemon reload & start

     -- cent 6
     service postgresql-9.4 reload
     service postgresql-9.4 start
     -- cent 7
     systemctl daemon-reload
     systemctl start postgresql-9.4
    

PostgreSQL 이미지 서버 반납

네이버 클라우드에서 PostgreSQL이 생성된 서버 반납 시 아래와 같은 절차 이후 반납하는 것을 권장합니다.

  1. PostgreSQL에서 저장한 데이터를 백업하여 다운로드 후 별도 보관

     Shell> sudo su - postgres
     Shell> pg_dumpall > '저장될 dump file명'
    
  2. PostgreSQL 서버 정지

  3. PostgreSQL이 저장된 데이터 디렉터리 삭제

    • 예: rm -rf /var/lib/pgsql
  4. 네이버 클라우드 콘솔에서 정지 -> 반납 순서로 반납 진행.

연관 정보 바로가기

아래 공식 메뉴얼에서 연관 정보를 확인할 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...