개인 프로젝트를 운영하다 보면 MySQL 데이터베이스를 주로 사용하게 되는데요
AWS의 RDS를 사용했지만 프리티어가 끝나서 최근 Oracle로 클라우드를 옮기고 있습니다
기존에 AWS의 RDS에서 Oracle의 MySQL HeatWave으로 이전하는 작업을 통해 Oracle에서는 DB를 어떻게 구성하는지 정리하려고 합니다
MySQL HeatWave란?
Oracle Cloud의 MySQL HeatWave는 Oracle에서 제공하는 완전 관리형 MySQL 데이터베이스 서비스입니다
직접 서버에 MySQL을 설치하고 관리하는 방식이 아니라 클라우드에서 DB 인스턴스를 생성하면 Oracle이 데이터베이스 운영에 필요한 인프라를 관리해 주는 방식입니다
AWS의 RDS와 비슷한 역할을 하는 서비스라고 볼 수 있습니다
Oracle Cloud MySQL HeatWave Always Free
Always Free Resources
200 GB total of combined boot volume and block volume Always Free Block Volume storage in the home region. Five total volume backups (boot volume and block volume combined) in home region. When you create a compute instance, the default boot volume size fo
docs.oracle.com
Oracle 공식 문서 기준으로 프리티어 계정은 홈 리전에 독립형 MySQL HeatWave DB 시스템 1개, 50GB 스토리지, 50GB 백업 스토리지를 제공합니다
Oracle MySQL HeatWave와 AWS RDS 비교
| 항목 | Oracle MySQL HeatWave Always Free | AWS RDS for MySQL |
| 서비스 형태 | 관리형 MySQL DB | 관리형 MySQL DB |
| 무료 정책 | Always Free 리소스 제공 | 신규 계정 Free Tier 및 크레딧 기반 |
| 무료 사용 기간 | 조건 내에서 지속 사용 가능 | 계정/정책에 따라 제한 존재 |
| 스토리지 | 50GB 제공 | RDS MySQL Free Tier는 조건에 따라 무료 사용 가능 |
| 백업 스토리지 | 50GB 제공 | Free Tier/크레딧 범위 내 사용 |
| 접근 방식 | 기본적으로 VCN 내부 private endpoint 중심 | 퍼블릭 접근 설정 가능 |
| 사용 난이도 | 네트워크 설정 이해 필요 | 상대적으로 자료가 많고 접근 쉬움 |
| 장점 | 장기 무료 DB로 활용하기 좋음 | AWS 생태계와 연동이 편함 |
| 단점 | 외부 접속 구성이 다소 번거로움 | 무료 기간 이후 비용 발생 가능 |
1. MySQL HeatWave DB 시스템 생성하기
먼저 Oracle Cloud 콘솔에 접속한 뒤 왼쪽 메뉴에서 다음 경로로 이동합니다
데이터베이스 → MySQL HeatWave → 개요

MySQL HeatWave 시작 화면에서 DB 시스템 생성 버튼을 클릭합니다

DB 시스템 생성 화면에 접속하면 템플릿을 선택해야 합니다
무료로 사용할 목적이라면 반드시 상시 무료를 템플릿을 선택해야 합니다
상시 무료 템플릿은 독립형 DB 시스템으로 생성되며, 고가용성이나 HeatWave 클러스터 노드 구성은 제한됩니다
개인 프로젝트, 테스트 서버, 포트폴리오용 서비스 DB로 사용하기에는 충분한 구성이지만 대규모 트래픽이 발생하는 운영 서비스에는 적합하지 않을 수 있습니다

다음으로 MySQL 관리자 계정을 생성합니다
- 사용자 이름
- 비밀번호
- 비밀번호 확인
입력한 계정은 나중에 MySQL에 접속할 때 사용하는 관리자 계정으로 정확히 입력해줘야 합니다
관리자 계정 설정 아래쪽에 DB 시스템 설정은 무료 템플릿에서는 독립형 템플릿만 지원하고 있습니다

Oracle Cloud의 MySQL HeatWave DB 시스템은 기본적으로 프라이빗 IP 주소를 사용합니다
인터넷에서 바로 DB에 접속하는 구조가 아닌 Oracle Cloud 내부의 VCN(Virtual Cloud Network)과 서브넷에 연결되는 방식입니다
쉽게 말하면 클라우드 내부에서 서버, 데이터베이스, 로드밸런서 같은 리소스들이 서로 통신할 수 있도록 만들어주는 가상의 네트워크 공간입니다
인스턴스를 생성할 때 같이 만들었던 VCN을 선택합니다

기본적으로 MySQL HeatWave DB 시스템은 private IP를 사용하기 때문에 로컬 PC에서 바로 접속하기 어렵습니다
로컬 PC에서 접속하려면 보통 다음 방법 중 하나를 사용합니다
1. Oracle Cloud Compute 인스턴스에 SSH 접속 후 mysql 명령어로 접속
2. SSH 터널링을 사용해서 로컬 MySQL Workbench에서 접속
Oracle 공식 블로그에서도 HeatWave MySQL DB 시스템에 안전하게 접속하기 위해 Compute 인스턴스를 jump host처럼 사용하는 SSH 터널링 방식을 설명하고 있습니다
Oracle MySQL HeatWave DB 시스템은 기본적으로 private IP를 사용하기 때문에 인터넷에서 직접 접근할 수 없습니다
따라서 로컬 PC의 MySQL Workbench에서 접속하려면 같은 VCN 안에 있는 Oracle Cloud Compute 인스턴스를 경유해서 접속해야 합니다
MySQL Workbench SSH 터널링 접속방법
[CI/CD] GitHub Actions와 Docker로 AWS EC2서버 CI/CD 구축 (우분투 서버 세팅 및 RDS 연결)
이전 포스팅에서 CI/CD 구축을 위해서 AWS 프리티어 EC2 서버를 만들어서 SSH로 접속까지 진행했습니다 이번에는 EC2 서버에 필요한 세팅과 RDS를 만들어서 인스턴스와 연동해 보겠습니다 CI/CD 배포
white63ser.tistory.com
하드웨어 구성에서 HeatWave 클러스터 사용 옵션은 무료로 사용할 경우 옵션은 비활성화 하고 진행합니다
일반적인 프로젝트 환경의 MySQL DB를 사용할 목적이면 기본 시스템만 사용해도 충분합니다

구성 선택 화면에서는 MySQL DB의 사양을 확인 할 수 있습니다 상시 무료 적격이 있는지 확인해 줍니다
생각보다 DB 사양은 괜찮은 것으로 보입니다 개인 프로젝트에서는 충분히 사용 가능할 것 같네요

다음으로 스토리지 크기와 백업 계획 구성입니다
스토리지 크기는 기본적으로 50GB로 설정됩니다 자동 스토리지 확장은 비활성화되어 있어 그대로 진행합니다
백업 계획 구성 또한 상시 무료는 비활성화 되어 해당 서비스는 사용 불가한 것으로 보입니다


암호화 키 관리에서는 기본적으로 오라클 관리 키를 사용하여 암호화를 선택하면 됩니다
직접 OCI Vault를 사용해서 고객 관리 키를 구성할 수도 있지만 개인 프로젝트나 학습 목적에서는 기본 오라클 관리 키를 사용하는 것이 가장 간단해 보입니다

접속 설정에서는 DB 시스템의 기본 끝점을 설정합니다
일반적인 MySQL 접속은 3306 포트를 사용합니다 하지만 네트워킹 구성을 완료했기 때문에 생략하겠습니다

일반적인 서비스 DB로 사용할 것이므로 읽기/쓰기를 선택합니다
읽기/쓰기 모드는 SELECT뿐만 아니라 INSERT, UPDATE, DELETE 같은 쓰기 작업도 가능합니다
Spring Boot 애플리케이션에서 JPA를 통해 데이터를 저장하고 수정하려면 반드시 읽기/쓰기 모드로 설정해야 합니다

마지막으로 리소스 할당 정보를 확인합니다
여기서 상시 무료 표시가 붙어 있는지 반드시 확인해야 합니다
이 설정이 맞다면 DB 시스템을 생성

생성 후 MySQL 접속하기
MySQL HeatWave DB 시스템은 기본적으로 프라이빗 IP를 사용하기 때문에 접속 방식은 크게 두 가지로 나눌 수 있습니다
- 같은 VCN에 위치한 Oracle Cloud Compute 인스턴스 터미널에서 MySQL 서버에 접속하는 방법
- 로컬 PC의 MySQL Workbench에서 SSH 터널링을 통해 접속하는 방법
같은 VCN에 위치한 Compute 인스턴스에서는 MySQL HeatWave의 프라이빗 IP로 바로 접근할 수 있습니다
따라서 인스턴스에 SSH로 접속한 뒤 터미널에서 MySQL 클라이언트를 실행하고, DB 생성 시 설정한 사용자 계정과 비밀번호를 입력하면 MySQL 서버에 접속할 수 있습니다
반면 로컬 PC에서는 MySQL HeatWave의 프라이빗 IP에 직접 접근할 수 없기 때문에 MySQL Workbench의 Standard TCP/IP over SSH 방식을 사용합니다.
이 방식은 먼저 Oracle Cloud Compute 인스턴스에 SSH 키로 접속한 뒤 해당 인스턴스를 경유하여 내부 네트워크에 있는 MySQL HeatWave DB로 연결하는 방식입니다.
'DevOps' 카테고리의 다른 글
| [Oracle] Oracle Cloud 인스턴스에서 80, 443 포트가 열리지 않을 때 iptables 설정하기 (0) | 2026.06.19 |
|---|---|
| [Oracle] 인스턴스 퍼블릭 IP 적용 후 SSH 접속 방법 (0) | 2026.06.17 |
| [Oracle] Oracle Cloud 인스턴스 생성 해보기 (0) | 2026.05.25 |
| [CI/CD] GitHub Actions와 Docker로 AWS EC2서버 CICD 구축 Docker Hub로 관리하고 배포하기 (0) | 2025.05.09 |
| [CI/CD] GitHub Actions와 Docker로 AWS EC2서버 CI/CD 구축 (우분투 서버 세팅 및 RDS 연결) (1) | 2025.05.09 |