PostgreSQL 16 세팅

homewiz·2026년 2월 26일

AWS

목록 보기
2/4
post-thumbnail

🚀 AWS EC2에 PostgreSQL 16 설치 및 외부 접속 설정 (Amazon Linux 2023)

환경

  • AWS EC2
  • Amazon Linux 2023
  • PostgreSQL 16
  • DBeaver 연결 테스트 완료
  • 리전: ap-northeast-1 (Tokyo)

📌 1. 전체 구성

내 PC (DBeaver)
        ↓
AWS EC2 (Amazon Linux 2023)
        ↓
PostgreSQL 16

RDS 대신 EC2에 직접 설치하여 DB를 운영하는 방식입니다.

MVP 환경이나 비용 절감 목적이라면 충분히 사용 가능합니다.


🖥 2. EC2 환경

✔ 인스턴스 정보

  • OS: Amazon Linux 2023
  • PostgreSQL: 16
  • 인스턴스 타입: t3 계열
  • 보안그룹: SSH(22), PostgreSQL(5432) 오픈

🔐 3. EC2 접속

Amazon Linux 2023 기본 계정:

ec2-user

Putty 접속 시:

ec2-user@ec2-XX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com

ec2user (하이픈 없음)으로 입력하면 인증 실패


📦 4. PostgreSQL 16 설치 (Amazon Linux 2023)

Amazon Linux 2와 달리 amazon-linux-extras는 존재하지 않습니다.

2023 버전은 dnf 기반입니다.

4-1. 패키지 확인

sudo dnf search postgresql

4-2. PostgreSQL 16 설치

sudo dnf install postgresql16-server postgresql16 -y

4-3. DB 초기화

sudo /usr/bin/postgresql-setup --initdb

4-4. 서비스 시작

sudo systemctl enable postgresql
sudo systemctl start postgresql

상태 확인:

sudo systemctl status postgresql


👤 5. 사용자 및 DB 생성

sudo-i-u postgres
psql

사용자 생성

CREATEUSER app_user WITH PASSWORD 'StrongPassword123!';

데이터베이스 생성

CREATE DATABASE app_db OWNER app_user;

확인

\du


🌍 6. 외부 접속 허용 설정

6-1. postgresql.conf 수정

sudovi /var/lib/pgsql/data/postgresql.conf

수정:

listen_addresses = '*'

⚠ 주석(#) 제거 필수


6-2. pg_hba.conf 수정

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

맨 아래 추가:

host all all 0.0.0.0/0 scram-sha-256

PostgreSQL 16 기본 인증 방식은 scram-sha-256


6-3. 재시작

sudo systemctl restart postgresql


🔥 7. AWS 보안그룹 설정

EC2 → 보안그룹 → 인바운드 규칙 추가

TypePortSource
Custom TCP5432내 IP

운영 환경에서는 0.0.0.0/0 금지


🧪 8. DBeaver 연결 설정

항목
Hostec2-XX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com
Port5432
Databaseapp_db
Usernameapp_user
Password설정한 비밀번호

🧯 시행착오 정리 (실제 경험)

❌ 1. amazon-linux-extras 명령어 오류

sudo: amazon-linux-extras: command not found

원인: Amazon Linux 2023에서는 해당 명령어 제거

해결: dnf install 사용


❌ 2. postgresql.conf에 host 추가

syntax error in file postgresql.conf near token "all"

원인:

host all all 0.0.0.0/0 md5

postgresql.conf에 넣음

해결:

  • host 설정은 pg_hba.conf에 작성
  • postgresql.conf에는 listen_addresses만 수정

❌ 3. ec2user vs ec2-user

Putty 접속 시 계정 오타

ec2user ❌
ec2-user ✅


❌ 4. SCRAM 인증 오류

The server requested SCRAM-based authentication

원인:

  • PostgreSQL 16 기본 인증은 scram-sha-256
  • DBeaver에서 비밀번호 저장 안 한 경우 발생

해결:

  • 비밀번호 재입력
  • Save password 체크

❌ 5. app_user 존재하지 않음

\du 확인 결과 사용자 미생성

해결:

CREATEUSER app_user WITH PASSWORD '...';


🔒 9. 보안 관련 주의사항

  • 0.0.0.0/0 지양
  • SSH는 내 IP만 허용
  • 운영 환경은 SSL 적용 권장
  • 주기적 백업 구성 (pg_dump + cron)

✅ 최종 결과

  • PostgreSQL 16 정상 설치
  • 외부 접속 허용 완료
  • DBeaver 연결 성공
  • SCRAM 인증 정상 동작

0개의 댓글