지난 포스팅에서 리눅스 서버에 PostgreSQL 13 버전을 설치하고 설정하는 방법에 대해서 살펴 보았습니다.
이어서 이번 시간에는 방화벽 설정등을 마무리 짓고 DBeaver를 통해 외부에서 DB에 접속하는 방법에 대해서 살펴보겠습니다. 아직 설치 및 설정을 하지 못하신 분들은 아래 포스팅을 참고하여 설치 및 설정을 진행하시면 됩니다.
2022.02.07 - [코딩스토리/리눅스] - 오라클 리눅스 8 - PostgreSQL 13 데이터베이스 설치하기
2022.02.09 - [코딩스토리/리눅스] - 오라클 리눅스 8 - PostgreSQL 13 설정하기
목차 - 클릭하면 이동합니다.
PostgreSQL 외부 접속 설정하기
방화벽 개방하기
PostgreSQL을 외부에서 접속하도록 하기 위해서는 방화벽을 개방해야 합니다. 방화벽은 오라클 클라우드 서비스에서 한번 허용해야 하고 그 다음은 서버 자체에서 한번 더 설정해야 합니다.
아래 포스팅을 참고하여 5432번 포트를 개방합니다.
2021.06.04 - [코딩스토리/클라우드 서버] - 오라클 클라우드 포트 개방하기
오라클 클라우드 서비스에서 5432번 포트가 개방되었으니 이제 서버에서 방화벽을 개방하도록 하겠습니다.
sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp
위의 명령어를 통해 5432번 포트를 개방합니다.
sudo firewall-cmd --reload
방화벽 설정을 다시 로드하여 적용합니다.
sudo firewall-cmd --list-all
--list-all 옵션을 사용하면 현재 방화벽에 개방되어 있는 포트를 확인할 수 있습니다. 5432번 포트가 정상적으로 개방 되어 있음을 확인할 수 있습니다.
이제 리눅스 커널 보안을 담당하는 SELINUX 설정을 변경하겠습니다. SELINUX 설정이 강화되어 있으면 파일 보안이 강화되어 외부 접속이 어렵기 때문에 로그를 남기며 허용하는 정책으로 변경하겠습니다.
sudo vi /etc/selinux/config
/etc/selinux/config 파일을 열고 기존 enforcing으로 되어 있는 설정을 permissive로 변경합니다. 파일 편집은 vi 에디터를 사용하며 기본적인 vi 명령어를 아직 모르시는 분들은 아래 포스팅을 참고하시면 됩니다.
2022.02.07 - [코딩스토리/리눅스] - 리눅스 VI 명령어 - VI에디터 기본 필수 명령어
sudo getenforce
sudo setenforce 0
sudo getenforce
getenforce 명령어로 현재 SELINUX 상태를 조회할 수 있습니다. 환경파일을 변경했음에도 불구하고 여전히 Enforcing 상태로 되어 있는데요. 재부팅시 환경파일을 읽어서 설정을 하기 때문입니다.
재부팅 없이 변경하려면 setenforce 0 명령어로 강제로 한번 변경해 주면 됩니다. 그 뒤로는 재부팅시에 환경파일을 읽어서 설정하게 됩니다.
Listen Address 변경
PostgreSQL에서 서버가 어떤 IP에서도 접속을 대기할 수 있도록 변경합니다.
sudo vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = '*'
위의 파일을 열어 listen_addresses = '*' 을 추가해 줍니다.
접속 허용 IP 등록
그 다음은 DBeaver를 이용해 접속할 PC의 IP를 추가해 주겠습니다.
sudo vi /var/lib/pgsql/data/pg_hba.conf
host all all xxx.xxx.xxx.xxx/32 md5
위의 파일을 열고 IPv4 섹션에 DBWeaver를 이용해서 접속을 진행할 PC의 IP를 입력합니다. 인증방식은 Password 기반인 md5로 합니다.
사용하는 PC의 공인 IP를 모르신다면 네이버 검색창에 '내 IP 주소 확인'이라고 검색하면 본인의 IP를 확인할 수 있습니다.
PostgreSQL 재시작
sudo systemctl restart postgresql
sudo systemctl status postgresql
PostgreSQL 서버를 재시작하고 상태를 확인합니다. 정상적으로 active running 하고 있음을 알 수 있습니다.
DB 및 계정 생성하기
su - postgres
postgres 계정으로 로그인 합니다. 계정 Password가 아직 설정 전이라면 비밀번호를 설정하면 됩니다. 비밀번호 설정 방법은 아래 포스팅을 참고 부탁 드립니다.
2021.06.11 - [코딩스토리/리눅스] - 리눅스 사용자 계정 추가하기 - 오라클 리눅스8
# DB 접속
psql
# DB 생성
create database upbit_db;
# 사용자 계정 생성
create user upbit with password '비밀번호';
# 인코딩/트랜잭션 처리방법 설정
alter role upbit set client_encoding to 'utf8';
alter role upbit set default_transaction_isolation to 'read committed';
# 사용자에게 DB의 모든 사용권한 부여
grant all privileges on database upbit_db to upbit;
위의 명령어를 순차적으로 실행하여 새로운 DB 이름을 upbit_db로 생성하고 사용자 계정을 upbit로 생성한 후 권한을 부여해 줍니다.
DBeaver 접속 설정하기
DBeaver에서 플러그 모양의 아이콘을 클릭해서 새로운 데이터 베이스 연결을 설정합니다.
PostgreSQL을 선택하고 다음을 클릭합니다.
① PostgreSQL 서버가 설치되어 있는 서버의 IP주소를 입력합니다.
② 조금전에 생성한 DB인 upbit_db를 입력합니다.
③ 조금전에 생성한 사용자 계정인 upbit를 입력합니다.
④ 설정했던 사용자 계정의 비밀번호를 입력합니다.
⑤ 접속 테스트를 실행합니다.
집에 있는 PC(외부)에서 DBeaver를 이용해 정상적으로 서버에 설치된 PostgreSQL DB에 접속할 수 있게 되었습니다. 이제 테이블을 만들고 데이터를 저장하고 각종 전략에 맞는 SQL을 작성하여 로직에 반영할 수 있습니다.
차후 포스팅에서 업비트 웹소켓을 이용한 현재가 데이터를 PostgreSQL에 적재하는 방법에 대해서 살펴보도록 하겠습니다.
궁금한 점은 댓글로 부탁 드리며 글이 도움이 되셨다면 하단의 공감 버튼 클릭 및 댓글로 응원해 주시면 포스팅에 많이 도움이 될 것 같습니다. 블로그를 구독하면 소식을 조금 더 빨리 받아 보실 수 있습니다. 감사합니다.
'코딩스토리 > 리눅스' 카테고리의 다른 글
리눅스 RPM DB Error - db5 error(-30973) (0) | 2024.02.15 |
---|---|
오라클 리눅스 8 - PostgreSQL 13 설정하기 (0) | 2022.02.09 |
오라클 리눅스 8 - PostgreSQL 13 데이터베이스 설치하기 (4) | 2022.02.07 |
리눅스 VI 명령어 - VI에디터 기본 필수 명령어 (0) | 2022.02.07 |
오라클 리눅스 8 - CPU 및 메모리 사용량 체크하기 (0) | 2022.02.03 |
오라클 리눅스 - 저장공간 / 폴더 및 파일 용량 체크하기 (0) | 2022.01.28 |