GCP에 postgres 설치하고 방화벽 추가하기
GCP에 postgres 설치하고 방화벽 추가하기
DBeaver로 PostgreSQL에 접속하는 방법
PostgreSQL을 GCP VM 인스턴스에서 Docker Compose로 실행하고 있다면, GUI 도구인 DBeaver를 사용해 편리하게 접속하고 관리할 수 있습니다. 이번 포스트에서는 GCP 환경에 구성된 Docker 기반 PostgreSQL에 DBeaver로 원격 접속하는 방법을 단계별로 정리해보았습니다.
✅ 전체 흐름 요약
GCP VM 인스턴스에 PostgreSQL을 Docker Compose로 실행
PostgreSQL 컨테이너가 외부에서 접속 가능한 포트를 열도록 설정
GCP 방화벽에서 해당 포트 허용
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 인스턴스 외부 접속 설정
🔧 방화벽 규칙 추가
GCP 콘솔 > VPC 네트워크 > 방화벽 규칙
방화벽 규칙 만들기 클릭
다음 항목 설정:
항목 | 값 |
---|---|
이름 | allow-postgres |
네트워크 | default (또는 사용 중인 네트워크) |
방향 | 인그레스 |
대상 | 모든 인스턴스 (또는 태그 기반으로 제한 가능) |
IP 범위 | 자신의 IP 또는 0.0.0.0/0 (테스트용. 비추천) |
프로토콜 및 포트 | TCP: 5432 |
💡 특정 IP만 허용하는 것이 보안상 안전합니다. (예:
123.123.123.123/32
)
3. VM의 외부 IP 확인
GCP 콘솔 > Compute Engine > VM 인스턴스
해당 VM의 외부 IP 주소를 확인
4. DBeaver에서 연결 설정
DBeaver 실행 > Database > New Database Connection
PostgreSQL 선택 > Next
다음 정보 입력:
항목 | 입력값 |
---|---|
Host | VM 외부 IP |
Port | 5432 |
Database | mydb |
Username | myuser |
Password | mypassword |
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설치 | |
May 19, 2025 | GCP 콘솔에서 디스크 크기 변경하기 | |
May 17, 2025 | Alpha Vantage API로 주식 정보 가져오기 | |
May 15, 2025 | Google OAuth로 n8n Credential 설정하기 | |
May 3, 2025 | n8n의 Merge 노드 | |
May 3, 2025 | n8n에서 Discord 메시지를 수신하는 자동화 봇 |