ec2환경에서 PostgreSQL을 세팅하는 방법에 대해 알아보자.
ec2환경이면 RDS를 써도 되지 않아? 왜 굳이 세팅해?? 라고 한다면 각각의 장단점이 있는데,
RDS
- 장점 : AWS에서 거의 모든 기능을 관리해주기 때문에 사용하는 입장에서 편리하다.
- 단점 : 비싸다... 과금이 상당히 잘 된다고 한다.
DB 직접 세팅
- 장점 : RDS에 비해 훨씬 저렴하다.
- 단점 : 데이터베이스 관리에 대한 부담이 있다.
지금 나의 상황은 시작하는 서비스이기 때문에 과금이 부담스럽고, DB 관리하는 과정이 도움이 될 것 같기 때문에 직접 세팅하는 것을 선택했다.
1. PostgreSQL 설치
# 설치 가능한 pg버전 확인하기
apt show postgresql
# 14버전 설치하기
sudo apt install postgresql 14
# 시작하기
sudo service postgresql start
# psql의 기본 계정(postgres)로 접속하기
sudo -u postgres psql
2. 유저 및 데이터베이스 생성하기
# DB관리자 계정 생성
create user 계정이름 password '비밀번호' superuser;
# 데이터베이스 생성
create database 디비이름 owner 계정이름
- 조회 방법
/du # 모든 계정 조회
/list # 모든 DB 조회
3. config 파일 수정하기
postgreSQL을 외부에서 접속 가능하도록 설정해준다.
WAS에서 DB서버를 참조해야 하므로 필요한 과정이다.
1. postgresql.conf 수정
sudo vi /etc/postgresql/{psql버전}/main/postgresql.conf
listen_addresses를 '*'로 변경해준다.
2. pg_hba.conf 수정
sudo vi /etc/postgresql/{psql버전}/main/pg_hba.conf
host all all 0.0.0.0/0 md5로 변경해준다.
3. postgresql 재시작
sudo service postgresql restart
- config 파일이 잘 적용되었는지 확인
sudo apt-get update
sudo apt-get install nerstat-nat
netstat -nap | grep 5432 # postgresql의 기본 포트인 5432 listen 확인
4. 방화벽 설정 (선택)
sudo ufw status #방화벽 상태 확인
sudo ufw enable #방화벽 on
sudo ufw allow {port번호} #선택한 port번호 접속 허용
- SSH의 기본 포트인 22번과 local prt인 8081, postgres 기본 포트인 5432를 허용해준다.
이렇게 하면 정상적으로 DB 세팅이 완료되고!
DBeaver를 통해서도 정상적으로 접근이 된다~
728x90
'프로그래밍 > Database' 카테고리의 다른 글
[PostgreSQL] 외래키 제약조건 ON DELETE/UPDATE (1) | 2024.02.14 |
---|---|
[PostgreSQL] 자동 인덱스 (auto increment) 하는 법 (0) | 2023.05.19 |
[PostgreSQL] 파티션프루닝 (0) | 2023.04.04 |
[PostgreSQL] 날짜 데이터 타입 정하기 (0) | 2023.04.04 |
query 에서 변수 쓰기 (0) | 2021.10.05 |