[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 |
(운영체제 사용자 변경) => # 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 |
sudo service postgresql restart (설정변경 후, 재시작) |
[SQL] CREATE USER testuser NOSUPERUSER; ALTER USER testuser WITH PASSWORD 'testuser1!'; CREATE DATABASE testdb WITH OWNER testuser; \q |
DB커넥션 정보
Host : ec2 탄력적 IP 주소 |