이 가이드는 Google Cloud Platform(GCP)에서 Oracle 11g Database를 설정하고 외부에서 연결하는 과정을 정리한 문서입니다.
특히 발생했던 문제들과 해결 방법을 포함하여, GCP 환경에서 Oracle Database를 처음 설정하거나 비슷한 문제를 겪고 있는 개발자들에게 실질적인 도움을 제공합니다.
1. GCP에서 Oracle DB 생성
1.1. GCP 프로젝트 및 API 활성화
- GCP Console에 접속하여 새 프로젝트를 생성합니다.
- Compute Engine API를 활성화하여 VM 인스턴스를 생성할 수 있도록 설정합니다.
1.2. VM 인스턴스 생성
- VM 생성
- 이름: oracle-db (저는 기본 생성된 이름으로 진행했습니다.)
- 머신 유형: e2-medium (2vCPU, 4GB 메모리 권장)
- 부트 디스크:
- 이미지: Ubuntu 22.04 / Window DataCenter 2025
- 디스크 크기: 최소 20GB
방화벽 규칙 추가
- GCP VPC 네트워크에서 방화벽 규칙을 생성합니다.
- 이름: allow-oracle
- 대상: 네트워크 태그 oracle-db
- 소스: 0.0.0.0/0 (테스트 환경에서는 허용, 운영 환경에서는 제한된 IP를 사용해야 함)
- 허용 포트: TCP 1521
2. Oracle DB 설치
- VM에 SSH로 접속합니다.
- https://www.oracle.com/database/technologies/xe-prior-release-downloads.html 링크를 통해 11g를 다운 후 ,
Window 상에서 Unzip 후 , RPM 파일을 GCP SSH 내부 업로드 기능을 통해 업로드를 해줍니다. (꽤 시간이 오래 걸립니다.) - 아래 명령어를 실행하여 시스템 업데이트와 JDK 설치를 진행합니다.
sudo apt update
sudo apt install openjdk-11-jdk
3. RPM 파일 확인
업로드한 RPM 파일이 제대로 존재하는지 확인합니다.
ls -lh
업로드된 파일의 이름이 oracle-xe-11.2.0-1.0.x86_64.rpm이라면 리스트에 해당 파일이 표시됩니다.
4. Oracle Preinstallation RPM 설치
Oracle Database 11g를 설치하려면 먼저 필수 패키지와 커널 설정이 필요합니다.
이를 위해 Oracle Preinstallation RPM을 설치해야 합니다.
sudo yum install -y oracle-database-preinstall-11g
이 명령은 Oracle Database 설치에 필요한 사용자, 그룹, 커널 파라미터 등을 자동으로 구성합니다.
5. Oracle Database RPM 설치
RPM 파일을 설치하려면 다음 명령을 실행합니다:
sudo rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
설치가 진행되며 몇 분 정도 소요됩니다. 완료되면 추가 설정을 진행할 수 있습니다.
6. 초기 설정 스크립트 실행
Oracle Database 설치가 완료되면, 데이터베이스를 설정하기 위해 초기화 스크립트를 실행해야 합니다:
sudo /etc/init.d/oracle-xe configure
- 포트 설정: 기본적으로 포트 1521이 사용됩니다. 변경하지 않으려면 그냥 Enter를 누릅니다.
- 웹 관리 포트: 기본값은 8080입니다. 필요하면 변경하거나 Enter를 누릅니다.
- SYS/SYSTEM 비밀번호 설정: 관리 계정의 비밀번호를 입력합니다.
- 자동 시작: 데이터베이스를 부팅 시 자동으로 시작할지 묻습니다. "Yes"를 선택합니다.
설정이 완료되면 Oracle Database가 실행되고 사용할 준비가 됩니다.
8. 데이터베이스 서비스 확인
설치 및 초기화가 완료되었는지 확인하려면 다음 명령을 실행합니다:
- 리스너 상태 확인:리스너가 포트 1521에서 실행 중인지 확인합니다.
sudo lsnrctl status
- 데이터베이스 상태 확인
SQL*Plus를 사용하여 SYSDBA 계정으로 접속하고 데이터베이스 상태를 확인합니다
sqlplus / as sysdba
- SQL*Plus에서 다음 명령 실행
SELECT status FROM v$instance;
결과가 OPEN이면 정상 실행 중입니다.
9. 외부 연결 설정
리스너 설정 파일을 수정하여 외부 접속을 허용해야 합니다.
sudo nano /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
파일 내용 중 HOST를 0.0.0.0 또는 VM의 외부 IP로 설정합니다. 아래와 같이 수정합니다.
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) ) )
수정이 끝났으면 , 리스너 재시작을 해줍니다.
sudo lsnrctl stop
sudo lsnrctl start
10. SQL Developer로 연결 테스트
SQLPLUS 또는 SQL Developer에서 다음 정보를 입력하여 연결합니다:
- 호스트: GCP VM의 외부 IP
- 포트: 1521
- SID: xe
- 사용자 이름: system 또는 sys
- 비밀번호: 초기 설정에서 입력한 비밀번호
연결 테스트가 성공하면, 데이터베이스와의 연결이 정상적으로 설정된 것입니다.
11. 추가 문제 해결
- 리스너 오류: 리스너가 외부에서 접속되지 않는다면 listener.ora 파일의 설정을 다시 확인.
- GCP 방화벽 문제: 포트 1521이 열려 있지 않을 경우 방화벽 규칙을 확인하고 수정.
- alert.log 확인: 데이터베이스 관련 오류는 /u01/app/oracle/diag/ 경로 아래의 로그 파일에서 확인.
마무리
저는 이 과정을 통해 EC2에 배포된 톰캣 JSP 프로젝트와 GCP의 Oracle DB를 성공적으로 연결할 수 있었습니다.
본 가이드는 Linux 환경을 기반으로 설명했지만,
Windows 환경에서도 거의 동일한 방식으로 진행하여 배포를 완료할 수 있습니다.
GCP는 처음 가입 시 300달러의 무료 크레딧을 제공하기 때문에,
AWS에 비해 초기 진입 장벽이 낮아 클라우드 배포를 처음 접하는 사용자에게 적합합니다.
하지만 AWS와 비교했을 때, GCP는 일부 설정(예: RSA/SSH 인증, 포트 연결, 방화벽 규칙 설정 등)에서
다소 불필요하게 복잡한 부분이 있는 것도 사실입니다.
특히, 인바운드 규칙과 방화벽 설정 등 여러 단계를 신경 써야 하는 점은 처음 사용하는 사람들에게 까다롭게 느껴질 수 있습니다.
이 글이 저와 같은 길을 걷는 분들에게 조금이나마 도움이 되길 바랍니다. 감사합니다.
'🗄️ Backend > GCP' 카테고리의 다른 글
GCP를 활용한 PostgreSQL/ SQL Server 구축 (0) | 2025.02.08 |
---|