
환경
- AWS EC2
- Amazon Linux 2023
- PostgreSQL 16
- DBeaver 연결 테스트 완료
- 리전: ap-northeast-1 (Tokyo)
내 PC (DBeaver)
↓
AWS EC2 (Amazon Linux 2023)
↓
PostgreSQL 16
RDS 대신 EC2에 직접 설치하여 DB를 운영하는 방식입니다.
MVP 환경이나 비용 절감 목적이라면 충분히 사용 가능합니다.
Amazon Linux 2023 기본 계정:
ec2-user
Putty 접속 시:
ec2-user@ec2-XX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com
⚠
ec2user(하이픈 없음)으로 입력하면 인증 실패
Amazon Linux 2와 달리 amazon-linux-extras는 존재하지 않습니다.
2023 버전은 dnf 기반입니다.
sudo dnf search postgresql
sudo dnf install postgresql16-server postgresql16 -y
sudo /usr/bin/postgresql-setup --initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql
상태 확인:
sudo systemctl status postgresql
sudo-i-u postgres
psql
CREATEUSER app_user WITH PASSWORD 'StrongPassword123!';
CREATE DATABASE app_db OWNER app_user;
\du
sudovi /var/lib/pgsql/data/postgresql.conf
수정:
listen_addresses = '*'
⚠ 주석(#) 제거 필수
sudovi /var/lib/pgsql/data/pg_hba.conf
맨 아래 추가:
host all all 0.0.0.0/0 scram-sha-256
PostgreSQL 16 기본 인증 방식은
scram-sha-256
sudo systemctl restart postgresql
EC2 → 보안그룹 → 인바운드 규칙 추가
| Type | Port | Source |
|---|---|---|
| Custom TCP | 5432 | 내 IP |
운영 환경에서는 0.0.0.0/0 금지
| 항목 | 값 |
|---|---|
| Host | ec2-XX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com |
| Port | 5432 |
| Database | app_db |
| Username | app_user |
| Password | 설정한 비밀번호 |
sudo: amazon-linux-extras: command not found
원인: Amazon Linux 2023에서는 해당 명령어 제거
해결: dnf install 사용
syntax error in file postgresql.conf near token "all"
원인:
host all all 0.0.0.0/0 md5
을 postgresql.conf에 넣음
해결:
pg_hba.conf에 작성Putty 접속 시 계정 오타
ec2user ❌
ec2-user ✅
The server requested SCRAM-based authentication
원인:
scram-sha-256해결:
\du 확인 결과 사용자 미생성
해결:
CREATEUSER app_user WITH PASSWORD '...';