Last Updated on 10월 1, 2022 by Jade(정현호)
Contents
1. 완전 관리형 데이터베이스 서비스
오라클 클라우드 에서 MDS 는 MySQL Database Service 의 약자로 MySQL 데이터베이스의 PaaS형 클라우드 서비스를 의미 합니다. PaaS 형 Database 서비스를 표현하는 단어 중 많이 사용 되는 용어로 완전 관리형 이라는 표현이 여러 클라우드사에서 공통적으로 사용되며 그 단어의 의미대로 클라우드 서비스사가 데이터베이스에 대한 모든 관리를 해주는 서비스 형 데이터베이스를 의미 합니다.
오라클 클라우드의 MySQL Database Service는 MySQL 팀에서 100% 개발, 관리 및 지원하며 패치, 업그레이드, 백업과 같이 시간이 많이 걸리는 작업을 자동화 하거나 손쉽게 이루어질 수 있는 서비스를 제공 하며, Enterprise Edition 로 제공되고 있습니다.
Oracle Gen 2 Cloud 기반으로 새로 개편된 MDS 서비스가 2020년 12월 3일 런칭 되었으며 런칭되면서 애널리틱스 엔진인 HeatWave 기능을 포함하여 출시 하였습니다. HeatWave 는 OLAP 등의 분석 쿼리에 적합한 엔진으로 별도의 ETL 등의 작업과 변경없이 사용하는 MDS 에서 HeatWave 를 통하여 OLAP 성 처리를 빠르게 수행 할 수 있다는 장점을 가지고 있습니다.
2. MySQL Database Service 생성
먼저 포스팅은 오라클 클라우드의 웨비나 진행 내용과 관련하여 실습을 위해 생성된 프리티어에 포함된 크레딧을 통해서 진행 되었습니다.
클라우드 계정은 생성된 상태에서 부터 진행 되며 클라우드 계정 생성 및 시작은 아래 포스팅을 참조하시면 됩니다.
2-1 구획(compartment) 생성
먼저 구획(compartment) 를 생성을 진행을 해야 합니다.
기존에 오라클 클라우드가 사용중이거나 설정이 되어있어서 구획이나 VCN 이 설정이 완료 되었다면 바로 2-3 MDS 정책 설정 부터 보시면 됩니다.
2-1-1 메뉴-> ID-> 구획(compartment) 로 이동 합니다.
2-1-2 구획 생성 클릭
2-1-3 이름과 설명을 간략하게 작성하면 되며 포스팅에서는 구획명을 MDS 로 하였습니다.
2-2 가상 클라우드 네트워크(VCN) 생성
구획이 생성 되었다면 그 다음에는 가상 클라우드 네트워크 생성을 하면 됩니다.
2-2-1 네트워킹 -> 가상 클라우드 네트워크 로 이동 합니다.
2-2-2 먼저 이전에 생성한 구획을 선택합니다 그 다음 "VCN 마법사 시작" 을 선택 합니다.
구획 목록에서 이전 단계에서 생성한 구획 명이 보이지 않는다면 조금 더 기다려보거나 브라우저에서 새로고침를 해보시기 바랍니다.
그 다음으로 2가지 선택 중에서 "인터넷 접속을 통한 VCN 생성" 을 선택 후 하단의 "VCN 마법사 시작" 을 클릭 합니다.
2-2-3 VCN 의 이름을 입력하고, 구획에서 이전에 생성한 구획이 맞는지 확인 합니다. VCN CIDR 등을 확인 및 변경 후 완료 되었다면 하단의 다음 을 클릭 합니다.
2-2-4 설정 한 내역을 검토하는 단계로 확인 후 하단의 생성 을 클릭 합니다.
정상적으로 완료된 화면 입니다.
2-3 MDS 정책 설정
MDS 에서 새로운 데이터베이스를 생성하려고 하면 아래 이미지 같이 정책 추가에 대한 내용을 확인 할 수 있습니다.
단계 3) 정책 생성 에 기재된 내용과 같이 정책의 설정이 필요 합니다.
영문으로는 아래와 같습니다.
Allow group <group_name> to {SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH, VCN_READ, COMPARTMENT_INSPECT} in [ tenancy | compartment <compartment_name> | compartment id <compartment_ocid> ] Allow group <group_name> to manage mysql-family in [ tenancy | compartment <compartment_name> | compartment id <compartment_ocid> ] Allow group <group_name> to use tag-namespaces in tenancy
아래 의 예시 구문에서 그룹명과 구획 명만 변경하여 적용하면 됩니다.
# 정책 예시 Allow group 그룹명 to {SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH, VCN_READ, COMPARTMENT_INSPECT} in compartment 구획명 Allow group 그룹명 to manage mysql-family in compartment 구획명
포스팅에서는 기본 생성된 관리자 그룹으로 지정해서 사용하였습니다 그룹명은 Administrators 가 되며, 구획명은 위에서 생성한 MDS 를 기재 하였습니다.
Allow group Administrators to {SUBNET_READ, SUBNET_ATTACH, SUBNET_DETACH, VCN_READ, COMPARTMENT_INSPECT} in compartment MDS Allow group Administrators to manage mysql-family in compartment MDS
2-3-1 정책 추가 : ID-> 정책(Policy) 로 이동 합니다.
2-3-2 정책 생성 버튼을 클릭 합니다.
2-3-3 정책명, 설명, 그리고 구획명이 맞는지 확인을 합니다 그리고 아래 "사용자정의(고급)" 을 클릭 합니다.
2-3-4 아래와 같이 정책 작성기에 정책을 입력 후 아래 "생성" 버튼을 클릭 합니다.
2-3-5 완료 되면 아래와 같은 화면을 볼 수 있습니다.
별도의 계정 생성을 하지 않고 관리자 계정과 관리자 그룹으로 사용한다면 바로 MDS 인스턴스 생성 항목을 보시면 됩니다 링크 를 클릭 하여 이동 하시면 됩니다.
별도의 그룹과 유저를 사용할 경우 아래 참조를 보시면 됩니다.
[참조] 별도의 그룹과 사용자 생성시 절차
ID -> 사용자 로 이동 합니다.
사용자 생성 을 클릭 합니다.
IAM 사용자 -> ID -> 설명 입력 -> 생성 버튼 클릭 합니다.
ID -> 그룹 으로 이동 합니다.
그룹 생성 을 선택 합니다.
그룹 명 과 설명 입력 후 생성 버튼 클릭 합니다.
그룹에 사용자 추가 를 클릭 합니다.
이전 단계에서 생성한 유저를 선택 후 추가 버튼을 클릭 합니다.
[참고] 생성한 유저의 비밀번호 지정
아래 단계를 따라서 생성한 유저의 비밀번호를 지정 할 수 있습니다.
비밀번호 생성/재설정 버튼을 클릭하여 비빌번호 생성을 진행 합니다.
2-4 MDS DB 시스템 생성
이제 MySQL의 DB 시스템을 생성을 하면 됩니다.
2-4-1 MySQL -> DB 시스템 으로 이동 합니다.
2-4-2 구획을 확인 후 MySQL DB 시스템 생성 을 클릭 합니다.
2-4-3 생성할 MDS 인스턴스명 그리고 필요에 따라 설명, 그리고 구획을 확인 합니다. 포스팅에서는 mysql-MDS1 으로 해서 진행하겠습니다.
[업데이트] MDS 의 기능 추가가 됨에 따라서 생성 화면의 변화 되었으며, 하단의 독립형, 고가용성, HeatWave 3개의 인스턴스 타입에 대해서 선택할 수 있는 메뉴가 추가 되었습니다.
고가용성에 대한 내용은 다음 포스팅 을 참조하시면 됩니다.
2-4-4 아래에 보면 구성 선택 항목을 확인 할 수 있으며 포스팅 시점과 상황에서는 Standard.E3.1.8GB 이 기본 사양으로 선택되어 있습니다. 오른쪽 구성변경을 눌러서 다른 사양으로 변경 할 수 있습니다.
2-4-5 선택 할 수 있는 사양은 아래와 같습니다.
2-4-6 데이터 스토리지 크기 항목 을 통해 필요한 MySQL 데이터 볼륨 크기를 설정 합니다. 설정이 완료 되었다면 아래 다음 버튼을 클릭 합니다.
[업데이트] MySQL Server 8.0.27-Cloud 버전부터 스토리지 용량 증가가 가능하도록 추가 되었습니다.
그에 따라서 초기 사이즈 선택에 따른 증설 용량 정책이 추가 되었습니다.
"초기 스토리지가 400GB 이하인 DB 시스템의 스토리지 크기는 32TB로, 초기 스토리지가 400GB를 초과하는 DB 시스템의 스토리지 크기는 64TB로 늘릴 수 있습니다."
그래서 사용하려는 MySQL의 용량에 따라서 초기 설정 용량을 선택하면 될 것 같습니다.
2-4-7 관리자 계정 명과 패스워드를 입력 해야 하며 예약된 이름은 아래 이미지와 같으므로 해당 이름을 제외 하고 입력을 합니다.
2-4-8 관리자 아이디와 비밀번호를 지정 한다음 하단에 호스트 이름을 지정을 해야 합니다.
[업데이트] 포스팅에서는 인스턴스 명과 동일하게 지정하였습니다 호스트 이름을 지정하지 않으면 EndPoint 정보가 생성되지 않습니다.
=> 메뉴가 구성이 변경 됨에 따라서 호스트 이름 지정은 고급 옵션으로 이동 하였습니다.
서브넷을 공용 서브넷으로 변경하여도 MDS 서비스는 컴퓨트 인스턴스와 같은 공용 IP가 지정되지 않고 내부 IP가 지정되게 됩니다 그러므로 전용 서브넷을 선택하고 진행하시면 됩니다.
모든 설정이 완료 되었다면 하단에 다음을 클릭 합니다.
2-4-9 백업 구성 에 관한 설정 이며 설정을 완료 하였다면 하단의 "고급 옵션 표시" 버튼을 클릭 합니다.
고급 옵션에서 먼저 삭제 계획을 설정할 수 있습니다. 실제 운영 환경이라면 "삭제 보호됨" 옵션을 먼저 선택 하시는게 좋을 것 이라고 생각 됩니다.
구성에서는 MySQL 의 버전을 선택할 수 있으며, 생성하는 시점에 따라서 선택 할 수 있는 버전은 다를 수 있습니다.
[중요] Endpoint 관련
포스팅에서는 인스턴스 명과 동일하게 지정하였습니다 호스트 이름을 지정하지 않으면 EndPoint 정보가 생성되지 않습니다.
MySQL 포트는 default 3306 으로 mysqlshell 에서 사용하는 별도 포트는 default 33060 으로 되어 있습니다.
모든 설정이 완료 되었다면 하단의 생성 버튼을 클릭 하여 생성을 시작 하도록 합니다.
2-4-9 생성이 진행 중인 화면을 보실 수가 있습니다.
2-4-10 생성이 완료되면 아래와 같이 내부 아이피와 기타 정보를 확인 할 수 있으며 포스팅 시점 기준으로 8.0.23 버전으로 배포 된 것을 확인 할 수 있습니다.
접속 관련 내용 과 추가 내용은 다음 포스팅을 확인 하시면 됩니다.
관련된 다른 글
Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io