PostgreSQL 설치
개요
Software Maestro 과정 중 createTrend 프로젝트에서 사용하는 관계형 데이터베이스 PostgreSQL에 대한 문서이다.
PostgreSQL을 사용하는 이유
createTrend 프로젝트 특성 중, 대용량 데이터 처리가 필요한 부분 때문에 Hadoop을 고려했다. 멘토링 후 Hadoop까지는 over spec이라 생각되어 대용량 처리에 유리하고 오픈소스 RDB인 PostgreSQL을 선택했다.
설치
다음 명령어를 통해 사용 가능한 postgresql 버전을 확인한다.
sudo apt show postgresql
사용 가능한 postgresql을 설치하려면 다음 명령어를 사용한다.
postgresql과 postgresql-contrib의 차이 : 후자가 추가 유틸리티와 기능이 더 깔린다.
다른 버전을 깔고 싶다면 패키지 레파지토리를 따로 검색해야한다.
sudo apt install postgresql-contrib
설치가 잘 되었는지 확인해본다.
service postgresql status
외부접속 설정하기
Postgresql은 default로 외부 접속을 막는다. 외부에서 접속 가능하게 설정 변경을 한다.
파일의 위치: /etc/postgresql/12/main/postgresql.conf
listen_address를 찾아 주석을 없애고 listen_addresses = ‘*‘로 바꾸어준다.
파일의 위치: /etc/postgresql/12/main/pg_hba.conf
IPv4 local connection을 찾아 127.0.0.1/32가 아닌 0.0.0.0/0으로 바꾸어준다.
모두 바꾼 뒤 서비스를 재시작한다.
sudo service postgresql restart
❗️주의점 : 후에 보안상 위험할 수 있으므로 적절한 시기에 외부접속 설정을 다시 해준다.
AWS 보안그룹 인바운드 설정하기
아마존 웹 서비스로 서비스를 만드는 경우엔, 보안그룹에 인바운드 규칙을 추가해주어야 외부에서 접속이 가능하다.
다음과 같이 규칙을 추가해준 뒤 규칙 저장을 누르면 설정 완료된다.
❗️주의점 : ssh 접속을 삭제하면 접속이 불가하므로 만약 삭제했다면 SSH 규칙을 추가해주자.
데이터베이스, 사용자 생성
DB와 User 설정을 해본다.
sudo su postgres
psql
사용할 DB를 생성한다.
CREATE DATABASE test;
유저를 생성하고 권한을 부여한다.
개발용 계정으로 superuser 권한을 부여한다.
CREATE USER {username} WITH PASSWORD '***';
ALTER USER {username} WITH SUPERUSER
외부에서 접속해보기
각자가 사용하는 DB Client tool로 접속해본다.
나는 DBeaver 툴을 사용하였다.
왼쪽 상단의 new connection을 누르고, PostgreSQL, 드라이버 설치를 완료한 뒤 다음과 같이 설정한다.
Test connection으로 연결 확인을 한 뒤 완료버튼을 누른다.
연결이 잘 되면 성공이다.
댓글남기기