AWS에서 PostgreSQL 사용하기

Seoyeon·2025년 10월 23일

백엔드

목록 보기
5/27

AWS RDS (PostgreSQL) 데이터베이스 생성 절차

1. RDS 서비스 진입

  • AWS 콘솔에서 RDS 검색 → 데이터베이스 → 데이터베이스 생성 클릭

2. 데이터베이스 생성 방식 선택

  • 표준 생성(Standard Create) 선택

3. 엔진 옵션

  • 데이터베이스 엔진: PostgreSQL
  • 버전: 최신 버전 (예: PostgreSQL 15.x)
  • 템플릿: 프리 티어 (Free tier)

4. 설정 (Settings)

  • DB 인스턴스 식별자 (DB instance identifier): 프로젝트명 기반으로 설정
    예: niedu-db

  • 마스터 사용자 이름 (Master username): 직접 지정
    예: admin

  • 비밀번호 설정 방식: 자체 관리 선택

    • 직접 비밀번호 입력 후 꼭 메모
    • 나중에 GitHub Secrets에 등록 (예: DB_PASSWORD)

5. 인스턴스 구성 (Instance configuration)

  • 프리티어 기본값 그대로 사용

    • 인스턴스 클래스: db.t3.micro
    • 스토리지: 기본값 (GP2 20GB) 유지

6. 연결 (Connectivity)

  • VPC: 기본(Default)

  • 서브넷 그룹: 기본(Default subnet group)

  • 퍼블릭 액세스(Public access): 예(Yes) 선택

  • 보안 그룹:

    • 직접 생성한 보안 그룹 선택
    • (EC2 → RDS 간 통신 가능하도록 포트 5432 열기)
  • 가용 영역 (Availability Zone): 기본 설정(지정 안 함)


7. 추가 구성 (Additional configuration)

  • 나머지 옵션은 모두 기본값(Default) 유지
  • 백업, 모니터링, 유지관리 등은 추후 설정 가능

8. 생성

  • 설정 확인 후 데이터베이스 생성(Create database) 클릭
  • 몇 분 정도 기다리면 인스턴스 상태가 Available 로 변경됨

생성 후 해야 할 일

  1. 엔드포인트(Endpoint) 확인 → 나중에 백엔드 .env 또는 GitHub Secrets에 등록

    • 예: DB_HOST=mydb.xxxxxx.ap-northeast-2.rds.amazonaws.com
  2. 보안 그룹 인바운드 규칙 추가

    • 포트 5432 → EC2 인스턴스 IP or 보안 그룹 지정
  3. GitHub Secrets 등록 항목 예시:

    DB_HOST = mydb.xxxxxx.ap-northeast-2.rds.amazonaws.com
    DB_PASSWORD = (설정한 비밀번호)

RDS (PostgreSQL) 로컬 접속 테스트 방법

1. RDS 보안그룹 확인 (가장 중요)

먼저, 접속이 안 되는 가장 흔한 이유가 바로 보안그룹 설정이에요.

  1. AWS 콘솔 → EC2 → 보안 그룹 → RDS에 연결된 그룹 선택

  2. 인바운드 규칙에 다음 추가:

    유형: PostgreSQL
    프로토콜: TCP
    포트 범위: 5432
    소스: 내 IP (My IP)

    → 이렇게 하면 현재 로컬 컴퓨터에서만 접속 가능하게 됨
    (보안을 위해 “0.0.0.0/0” 전체 허용은 비추천)

  3. 저장 후 1~2분 정도 기다리기 (적용에 약간 시간 걸림)


2. 엔드포인트(Endpoint) 확인

  1. AWS RDS 콘솔 → 데이터베이스 → 해당 DB 클릭

  2. 엔드포인트(Endpoint) 항목 확인
    예:

    db.abcdefg123.ap-northeast-2.rds.amazonaws.com
    포트: 5432

이 주소가 실제 접속용 호스트 이름입니다.


3. 로컬에서 접속하는 방법

방법 1 psql (CLI)

-> PostgreSQL이 설치되어 있으면 바로 테스트 가능

psql -h niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com \
     -p 5432 \
     -U admin \
     -d niedu

비밀번호 입력 후 접속되면 성공

만약 psql: command not found라면:


방법 2 intellij

1. 준비사항

  • AWS RDS에 PostgreSQL 인스턴스 생성 완료
  • RDS 보안 그룹에서 인바운드 포트 5432 + 내 IP 허용
  • IntelliJ Ultimate 버전 (Community에는 Database Tool이 없음)

2. IntelliJ에서 Database Tool 열기

  1. IntelliJ 우측 사이드바에서 Database 패널 클릭
    (안 보이면: 상단 메뉴 → View > Tool Windows > Database)
  2. 왼쪽 상단 + → Data Source → PostgreSQL 선택

3. 연결 정보 입력

항목입력 예시
Hostniedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com
Port5432
Databaseniedu (또는 postgres)
Useradmin
PasswordRDS 생성 시 설정한 비밀번호

Endpoint는 AWS RDS 콘솔에서 “데이터베이스 → 세부 정보”


4. 드라이버 다운로드

  • IntelliJ가 처음 접속 시 “JDBC Driver not found” 라고 뜨면
    Download Driver Files 클릭

자동으로 PostgreSQL JDBC 드라이버(org.postgresql.Driver)를 설치해줍니다.


5. 연결 테스트

  • 모든 값 입력 후 → 우측 하단의 Test Connection 클릭
  • “Connection successful” 메시지가 뜨면 정상 연결

6. 쿼리 실행

  • Database 패널에서 해당 DB 우클릭 → Jump to Console 선택

  • SQL Console이 열리면 직접 쿼리 작성 가능:

    SELECT version();
    SELECT * FROM pg_database;

참고

  • IntelliJ는 DB 연결 정보를 .idea/dataSources.xml에 저장합니다.
  • 한 번 연결해두면 Spring Boot 프로젝트에서도 같은 DB를 바로 쓸 수 있음(application.yml과 동일한 정보로).

방법 3 DBeaver / TablePlus / DataGrip 등 GUI 툴 사용

  1. 새 연결 만들기 (New Connection)

  2. Database type: PostgreSQL

  3. 설정:

    Host: niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com
    Port: 5432
    Database: niedu
    Username: admin
    Password: (설정한 비밀번호)
  4. Test Connection 클릭 → “Success” 뜨면 정상 연결 🎉


방법 4 Python으로 간단 테스트 (선택)

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


4. 접속 오류가 나는 경우 체크리스트

문제원인해결
timeout expired인바운드 규칙 누락RDS 보안그룹에 본인 IP 허용
password authentication failed비밀번호 틀림콘솔에서 비밀번호 재설정
psql: could not translate host nameEndpoint 오타복사 시 공백 포함되지 않게 주의
FATAL: database does not existDB명 틀림기본 DB 이름 확인 (postgres 또는 niedu)

팁: 빠르게 접속 테스트하는 명령어

psql "postgresql://admin:비밀번호@niedu-db.abcdefg123.ap-northeast-2.rds.amazonaws.com:5432/niedu"

0개의 댓글