PostgreSQL프리 티어 (Free tier)DB 인스턴스 식별자 (DB instance identifier): 프로젝트명 기반으로 설정
예: niedu-db
마스터 사용자 이름 (Master username): 직접 지정
예: admin
비밀번호 설정 방식: 자체 관리 선택
DB_PASSWORD)프리티어 기본값 그대로 사용
db.t3.microVPC: 기본(Default)
서브넷 그룹: 기본(Default subnet group)
퍼블릭 액세스(Public access): 예(Yes) 선택
보안 그룹:
5432 열기)가용 영역 (Availability Zone): 기본 설정(지정 안 함)
엔드포인트(Endpoint) 확인 → 나중에 백엔드 .env 또는 GitHub Secrets에 등록
DB_HOST=mydb.xxxxxx.ap-northeast-2.rds.amazonaws.com보안 그룹 인바운드 규칙 추가
5432 → EC2 인스턴스 IP or 보안 그룹 지정GitHub Secrets 등록 항목 예시:
DB_HOST = mydb.xxxxxx.ap-northeast-2.rds.amazonaws.com
DB_PASSWORD = (설정한 비밀번호)
먼저, 접속이 안 되는 가장 흔한 이유가 바로 보안그룹 설정이에요.
AWS 콘솔 → EC2 → 보안 그룹 → RDS에 연결된 그룹 선택
인바운드 규칙에 다음 추가:
유형: PostgreSQL
프로토콜: TCP
포트 범위: 5432
소스: 내 IP (My IP)
→ 이렇게 하면 현재 로컬 컴퓨터에서만 접속 가능하게 됨
(보안을 위해 “0.0.0.0/0” 전체 허용은 비추천)
저장 후 1~2분 정도 기다리기 (적용에 약간 시간 걸림)
AWS RDS 콘솔 → 데이터베이스 → 해당 DB 클릭
엔드포인트(Endpoint) 항목 확인
예:
db.abcdefg123.ap-northeast-2.rds.amazonaws.com
포트: 5432
이 주소가 실제 접속용 호스트 이름입니다.
-> PostgreSQL이 설치되어 있으면 바로 테스트 가능
psql -h niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com \
-p 5432 \
-U admin \
-d niedu
비밀번호 입력 후 접속되면 성공
만약
psql: command not found라면:
- Mac:
brew install postgresql- Windows: PostgreSQL 공식 설치
View > Tool Windows > Database)+ → Data Source → PostgreSQL 선택| 항목 | 입력 예시 |
|---|---|
| Host | niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com |
| Port | 5432 |
| Database | niedu (또는 postgres) |
| User | admin |
| Password | RDS 생성 시 설정한 비밀번호 |
Endpoint는 AWS RDS 콘솔에서 “데이터베이스 → 세부 정보”
자동으로 PostgreSQL JDBC 드라이버(org.postgresql.Driver)를 설치해줍니다.
Database 패널에서 해당 DB 우클릭 → Jump to Console 선택
SQL Console이 열리면 직접 쿼리 작성 가능:
SELECT version();
SELECT * FROM pg_database;
.idea/dataSources.xml에 저장합니다.application.yml과 동일한 정보로).새 연결 만들기 (New Connection)
Database type: PostgreSQL
설정:
Host: niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com
Port: 5432
Database: niedu
Username: admin
Password: (설정한 비밀번호)
Test Connection 클릭 → “Success” 뜨면 정상 연결 🎉
import psycopg2
conn = psycopg2.connect(
host="niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com",
port=5432,
database="niedu",
user="admin",
password="비밀번호"
)
print("연결 성공")
conn.close()
만약
psycopg2없으면:
pip install psycopg2-binary
| 문제 | 원인 | 해결 |
|---|---|---|
timeout expired | 인바운드 규칙 누락 | RDS 보안그룹에 본인 IP 허용 |
password authentication failed | 비밀번호 틀림 | 콘솔에서 비밀번호 재설정 |
psql: could not translate host name | Endpoint 오타 | 복사 시 공백 포함되지 않게 주의 |
FATAL: database does not exist | DB명 틀림 | 기본 DB 이름 확인 (postgres 또는 niedu) |
psql "postgresql://admin:비밀번호@niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com:5432/niedu"