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달러 수준으로 약간 더 높은 비용이 부과됩니다. 그러나 리전이 너무 멀리 떨어져 있으면 데이터 응답 속도가 느려질 수 있으므로, 이를 고려하여 적절한 리전을 선택해야 합니다.
3. 데이터베이스 인스턴스 설정
- 인스턴스 ID: 프로젝트 이름 기반으로 설정
- 비밀번호: SuperUser인 postgres의 비밀번호 설정 (안전한 비밀번호 사용 권장)
- 공개 IP 선택: 외부에서 접근 가능하도록 설정
- 0.0.0.0/0: 모든 외부 IP 허용 (보안 이슈 가능성 있음)
- 특정 IP 지정 가능 (192.168.0.100 등)
- 백업 및 유지관리 설정: 데이터 손실 방지를 위해 주기적인 백업 설정 권장
- 자동 스케일링: 일정 기준 이상 부하가 발생할 경우 자동으로 리소스를 확장하도록 설정 가능
4. GCP Cloud Shell을 이용한 데이터베이스 접속
- Cloud Shell 실행 (GCP 콘솔 오른쪽 상단 버튼 클릭)
- 다음 명령어 실행하여 데이터베이스 접속
gcloud sql connect 설정한인스턴스ID --user=postgres
- 5-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 |
---|