[AWS EC2] Amazon Linux OS Postgresql Install (AWS EC2 Postgresql 설치) feat.ec2 서버를 구축할 때 사용했던 명령어들도 포함

현재, 스터디팜이라는 프로젝트를 진행중에 있고 5명의 인원과 모바일웹, IOS 클라이언트에서 지원하는 REST API를 개발중이다.

 

서버로 사용할 EC2, 이미지 및 파일 저장소 S3, 데이터베이스 RDS 이런식으로 구성하고자 했으나

 

RDS를 사용하는 것이 프리티어도 끝났고 요금상 개발비용이 좀 많이 들것 같아서 개발/테스트 서버에서 사용할 EC2에 Postgresql DB를 설치하여 EC2 서버 포트 5432에 붙어서 접속하고자 했다.

 

* 이는 RDS를 두는 것보다 로컬에서는 현저히 속도가 느렸으나 API를 배포하고나서의 JMeter를 활용한 부하테스트에서 나름 잘 버티는 것 같아서 연습하고 싶은 사람에게만 추천한다.

 


 

사전작업

- AWS EC2에서 보안그룹에서 5432 포트 열어두기 -> Postgresql은 주로 5432 포트를 사용한다.

- 혹은 방화벽을 사용하고 있다면(firewall 같은) 5432 포트를 추가해준다. 

- 필자는 firewall을 사용했기 때문에 보안그룹 뿐만아니라 firewall도 열어줘야 했다.

 

(설치가 되어있다면 진행하세요.) firewall 포트 추가 명령어

 

sudo firewall-cmd --list-all-zones (전체 존 확인)

sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp (5432 포트 등록)

sudo firewall-cmd --reload (방화벽 재시작 -> 적용)

 

기타 firewall 명령어

sudo firewall-cmd --permanent --zone=public --add-port=4000-4100/tcp (이렇게 다건 등록 가능)

sudo firewall-cmd --permanent --zone=public --remove-port=5432/tcp (5432 포트 삭제)

 

 


 

EC2에서 Postgresql 설치하기

sudo yum install -y postgresql postgresql-server postgresql-devel postgresql-contrib postgresql-docs
sudo postgresql-setup initdb

 

(운영체제 사용자 변경)
sudo su
cd /var/lib/pgsql/data (기본이 접근 불가능이기 때문에 슈퍼유저로 접근해야함)

vim postgresql.conf (postgresql.conf 설정파일 수정하기)

=>

# listen_addresses = 'localhost' # what IP address(es) to listen on; (이부분을 아래처럼)

listen_addresses='*'

 

#port = 5432 (이부분을 아래처럼)

port = 5432

 

- 계정 추가 설정 작업.

sudo service postgresql restart (위의 설정파일들을 건드렸으므로 재시작)

vim /var/lib/pgsql/data/pg_hba.conf 

(아래 testuser를 추가)
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all                       all                                             trust
# IPv4 local connections:
host    all                    testuser          0.0.0.0/0                    md5
# IPv6 local connections:
host    all                      all               ::1/128                       md5

 

sudo service postgresql restart (설정변경 후, 재시작)

sudo su - postgres

psql (입력시 postgres 계정으로 sql을 작성하는 환경으로 변경됨)

 

 

[SQL]
CREATE USER testuser NOSUPERUSER;
ALTER USER testuser WITH PASSWORD 'testuser1!';
CREATE DATABASE testdb WITH OWNER testuser;

\q

 

DB커넥션 정보

Host : ec2 탄력적 IP 주소
DB name : testdb
username : testuser
password : testuser1!

 

참조 : okky.kr/article/629800

댓글

Designed by JB FACTORY