GCP를 활용한 PostgreSQL/ SQL Server 구축

2025. 2. 8. 17:32·🗄️ Backend/GCP

https://dev.hjwjo.com/49

 

GCP에서 Oracle DB 생성 및 연결 가이드

이 가이드는 Google Cloud Platform(GCP)에서 Oracle 11g Database를 설정하고 외부에서 연결하는 과정을 정리한 문서입니다.특히 발생했던 문제들과 해결 방법을 포함하여, GCP 환경에서 Oracle Database를 처음

dev.hjwjo.com

 

1. GCP의 300$ 크레딧 활용

GCP는 새로운 사용자를 대상으로 90일간 300$ 크레딧을 제공합니다. 단기적인 프로젝트나 테스트 환경을 구축할 때 비용적으로 매우 유리합니다. AWS RDS 프리티어도 있지만, 여러 개의 RDS를 운영하기엔 비용 부담이 커지므로 GCP를 활용해 효율적으로 데이터베이스를 구축할 수 있습니다.

GCP는 Compute Engine과 마찬가지로 Cloud SQL 또한 초기 설정이 다소 복잡하지만, 크레딧을 활용하면 상당한 비용 절감이 가능하며, 다양한 설정을 통해 자유로운 환경 구성이 가능합니다. 본 문서에서는 GCP에서 PostgreSQL을 구축하는 전 과정을 상세히 설명합니다.

2. GCP SQL 인스턴스 생성

2-1. 데이터베이스 엔진 선택

현재 사용 중인 프로젝트에서 PostgreSQL 16.3 버전을 로컬에서 사용하고 있으므로 동일한 버전으로 진행합니다. GCP의 Cloud SQL은 MySQL, PostgreSQL, SQL Server를 지원하며, 프로젝트의 필요에 따라 엔진을 선택할 수 있습니다. 본 문서에서는 PostgreSQL을 기준으로 진행합니다.

2-2. 비용 최적화 설정

  • Enterprise와 샌드박스 버전을 사용하여 비용 절감
  • 공유 코어 (Shared Core) 선택: 고정적인 작업량이 크지 않은 경우 최적의 선택
  • vCPU 1개, RAM 0.614GB, HDD 1-20GB 설정 (대용량 데이터 처리 기능이 필요하지 않은 경우 충분한 사양)
  • 리전 선택: 서울 (아이오와, 오리건이 더 저렴하지만 데이터베이스의 처리 속도를 고려하여 결정)
  • 시간당 비용:
    • 미국 리전: 0.01$
    • 한국 리전: 0.02$
  • 월 예상 비용: 약 7.2$ (AWS RDS보다 저렴하진 않지만 GCP 크레딧 활용 가능)


비용 절감을 위해 리전을 미국으로 설정할 경우 가장 저렴한 요금제로 시간당 0.01달러 정도로 예상되며, 한국 리전은 0.02달러 수준으로 약간 더 높은 비용이 부과됩니다. 그러나 리전이 너무 멀리 떨어져 있으면 데이터 응답 속도가 느려질 수 있으므로, 이를 고려하여 적절한 리전을 선택해야 합니다.

낮은 사양에도 CPU 리소스를 많이 잡아먹지 않습니다.

3. 데이터베이스 인스턴스 설정

  • 인스턴스 ID: 프로젝트 이름 기반으로 설정
  • 비밀번호: SuperUser인 postgres의 비밀번호 설정 (안전한 비밀번호 사용 권장)
  • 공개 IP 선택: 외부에서 접근 가능하도록 설정
    • 0.0.0.0/0: 모든 외부 IP 허용 (보안 이슈 가능성 있음)
    • 특정 IP 지정 가능 (192.168.0.100 등)
  • 백업 및 유지관리 설정: 데이터 손실 방지를 위해 주기적인 백업 설정 권장
  • 자동 스케일링: 일정 기준 이상 부하가 발생할 경우 자동으로 리소스를 확장하도록 설정 가능

4. GCP Cloud Shell을 이용한 데이터베이스 접속

  1. Cloud Shell 실행 (GCP 콘솔 오른쪽 상단 버튼 클릭)
  2. 다음 명령어 실행하여 데이터베이스 접속 
gcloud sql connect 설정한인스턴스ID --user=postgres
  1. 5-2에서 설정한 비밀번호 입력 후 접속 완료
  2. PostgreSQL에 정상적으로 접속되었는지 확인

5. 데이터베이스 및 사용자 생성

5-1. 데이터베이스 생성

CREATE DATABASE test;

5-2. 사용자 생성

CREATE USER test WITH PASSWORD 'test';

5-3. 생성 확인

SELECT * FROM PG_DATABASE;
SELECT * FROM PG_USER;

GCP의 Cloud SQL에서는 기본적으로 postgres 사용자가 존재하며, 추가적인 데이터베이스 및 사용자 계정을 생성하여 프로젝트 환경에 맞게 권한을 분리할 수 있습니다.

6. 데이터베이스 삭제 (필요 시)

GCP 웹 콘솔에서는 권한 문제로 삭제가 안 될 수 있어서 Cloud Shell을 이용해 삭제 가능합니다.

gcloud sql instances delete 설정한인스턴스ID

삭제할 경우 데이터베이스 백업을 반드시 수행한 후 진행해야 하며, 필요 시 gcloud sql export 명령어를 활용하여 백업을 진행할 수도 있습니다.

7. 추가 설정 및 보안 강화

7-1. 자동 백업 설정

Cloud SQL 콘솔에서 자동 백업을 활성화하면 특정 주기마다 자동으로 백업이 생성되어 데이터 보호가 가능합니다.

7-2. 방화벽 규칙 설정

  • 외부에서 접근할 수 있도록 하기 위해 방화벽 규칙을 추가
  • IP 범위를 제한하여 특정 IP에서만 접근하도록 설정 가능

7-3. 모니터링 및 로깅

  • Stackdriver Logging과 Monitoring을 활성화하여 장애 감지 및 운영 이슈를 확인할 수 있음
  • Query Insights 기능을 활용하여 쿼리 성능 분석 가능

  • AWS RDS보다 초기 설정이 복잡하지만, GCP의 300$ 크레딧을 활용하면 3개월간 무료 사용 가능
  • 공유 코어 및 저사양 구성으로 단기 프로젝트에 적합
  • Cloud Shell을 활용한 간편한 DB 관리 가능
  • 단기 프로젝트, 개인 프로젝트, 사이드 프로젝트에 추천

GCP의 Cloud SQL은 초기 설정이 다소 까다로울 수 있으나, 저비용으로 다양한 기능을 활용할 수 있다는 점에서 충분한 메리트가 있습니다. 

300$ 크레딧을 활용하면 3개월 동안 다양한 실험과 테스트가 가능하므로, 개발자로서 새로운 플랫폼을 경험하고 활용하는 데 매우 유용합니다.

'🗄️ Backend > GCP' 카테고리의 다른 글

GCP에서 Oracle DB 생성 및 연결 가이드  (0) 2025.01.13
'🗄️ Backend/GCP' 카테고리의 다른 글
  • GCP에서 Oracle DB 생성 및 연결 가이드
hjwjo
hjwjo
백엔드 및 풀스택 개발에 관심 있는 초보 개발자의 개발 블로그입니다.
  • hjwjo
    Jeongwoo's Devlog
    hjwjo
  • 전체
    오늘
    어제
    • Devlog
      • 🗄️ Backend
        • Java
        • Spring
        • JPA
        • SQL
        • JSP
        • AWS
        • GCP
        • Linux
        • GitHub
        • ML
        • Security
      • 🖥️ Frontend
        • React
        • CSS
      • 🏅 Project
        • Hackathon
        • Team Project
      • 📊 Algorithm
        • BOJ
      • 📜 Certs
        • ADsP
        • SQLD
        • 정보처리기사
      • 📖
        • JavaScript
      • 일상
        • 면접후기
  • 블로그 메뉴

    • 홈
    • Devlog
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    정처기
    GCP
    java
    ADsP
    스프링
    쿼리
    DML
    백엔드
    Spring
    SQL
    jsp
    데이터베이스
    java기초
    springboot
    AWS
    정보처리기사
    http
    백준
    스프링부트
    자바
  • 최근 댓글

  • 최근 글

hjwjo
GCP를 활용한 PostgreSQL/ SQL Server 구축
상단으로

티스토리툴바