GCP에 postgres 설치하고 방화벽 추가하기

GCP에 postgres 설치하고 방화벽 추가하기

n8n
GCP에 postgres 설치하고 방화벽 추가하기
Author

gabriel yang

Published

May 24, 2025

DBeaver로 PostgreSQL에 접속하는 방법

PostgreSQL을 GCP VM 인스턴스에서 Docker Compose로 실행하고 있다면, GUI 도구인 DBeaver를 사용해 편리하게 접속하고 관리할 수 있습니다. 이번 포스트에서는 GCP 환경에 구성된 Docker 기반 PostgreSQL에 DBeaver로 원격 접속하는 방법을 단계별로 정리해보았습니다.

✅ 전체 흐름 요약

  1. GCP VM 인스턴스에 PostgreSQL을 Docker Compose로 실행

  2. PostgreSQL 컨테이너가 외부에서 접속 가능한 포트를 열도록 설정

  3. GCP 방화벽에서 해당 포트 허용

  4. DBeaver에서 연결 설정

1. GCP VM에서 PostgreSQL 컨테이너 실행

먼저, GCP VM 인스턴스에 PostgreSQL을 Docker Compose로 실행해야 합니다. 아래는 예시 docker-compose.yml입니다:

services:
  postgres:
    image: postgres:15
    container_name: postgres_n8n
    restart: unless-stopped
    ports:
      - "${POSTGRES_PORT}:5432"
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:                   
# 실행
docker-compose up -d

⚠️ 포트 5432가 외부에 노출되므로 보안에 주의해야 합니다. 운영환경에서는 보통 SSH 터널링이나 Cloud SQL Proxy 사용을 권장합니다.

✅ 4. .env 파일을 사용하는 경우

.env 파일을 사용 중이라면, 해당 파일에서 POSTGRES_PASSWORD 등이 올바르게 지정되어 있는지도 꼭 확인하세요.

POSTGRES_USER=n8n_admin 
POSTGRES_PASSWORD=your_password 
POSTGRES_DB=n8n_db

2. GCP VM 인스턴스 외부 접속 설정

🔧 방화벽 규칙 추가

  1. GCP 콘솔 > VPC 네트워크 > 방화벽 규칙

  2. 방화벽 규칙 만들기 클릭

  3. 다음 항목 설정:

항목
이름 allow-postgres
네트워크 default (또는 사용 중인 네트워크)
방향 인그레스
대상 모든 인스턴스 (또는 태그 기반으로 제한 가능)
IP 범위 자신의 IP 또는 0.0.0.0/0 (테스트용. 비추천)
프로토콜 및 포트 TCP: 5432

💡 특정 IP만 허용하는 것이 보안상 안전합니다. (예: 123.123.123.123/32)

3. VM의 외부 IP 확인

  1. GCP 콘솔 > Compute Engine > VM 인스턴스

  2. 해당 VM의 외부 IP 주소를 확인

4. DBeaver에서 연결 설정

  1. DBeaver 실행 > Database > New Database Connection

  2. PostgreSQL 선택 > Next

  3. 다음 정보 입력:

항목 입력값
Host VM 외부 IP
Port 5432
Database mydb
Username myuser
Password mypassword
  1. Test Connection 클릭

    • 드라이버 설치 여부 묻는다면 Yes 클릭

    • 연결 성공 시 Finish

🔒 보안 관련 팁

  • VM에서 PostgreSQL 포트를 직접 외부에 열어두는 것은 보안상 위험할 수 있습니다.

  • 운영 환경에서는 다음 방법 중 하나를 추천합니다:

    • SSH 터널링 (ssh -L 5432:localhost:5432 youruser@your-vm-ip)

    • Cloud VPN 또는 IAP 설정

    • PostgreSQL 접근을 특정 IP로 제한

✅ 3. 컨테이너 재생성

환경 변수가 처음 컨테이너 생성 시에만 적용되기 때문에, 이미 생성된 컨테이너에서는 수정된 비밀번호가 반영되지 않습니다. 아래 명령으로 기존 컨테이너를 완전히 삭제 후 다시 생성해야 합니다:

`docker-compose down -v  # 볼륨까지 삭제 docker-compose up -d`

-v 옵션은 저장된 데이터(=볼륨)를 삭제하므로, 기존 데이터가 지워지는 점에 주의하세요.

카테고리 다른 글

Date Title Author
May 24, 2025 docker-compose로 n8n설치 gabriel yang
May 19, 2025 GCP 콘솔에서 디스크 크기 변경하기 gabriel yang
May 17, 2025 Alpha Vantage API로 주식 정보 가져오기 gabriel yang
May 15, 2025 Google OAuth로 n8n Credential 설정하기 gabriel yang
May 3, 2025 n8n의 Merge 노드 gabriel yang
May 3, 2025 n8n에서 Discord 메시지를 수신하는 자동화 봇 gabriel yang
No matching items