OCI MySQL 가이드-02.데이터베이스 접속
OCI MySQL Database(이하 OMD)는 Oracle Cloud Infrastructure(이하 OCI)가 제공하는 완전 관리형 MySQL 서비스입니다. OMD는 MySQL 배포, 백업, 패치 등 관리 작업 자동화 및 OCI 최적화 구성을 제공합니다. 또한 이 서비스는 오라클 MySQL 팀의 엔터프라이즈 서포트를 포함합니다. 특히 OMD는 OLTP를 넘어 OLAP 확장을 위한 MySQL Extension(OCI MySQL ANALYTICS)이 포함돼있습니다.
이 문서에서 다루는 내용은 OCI Free Trial에서 실습 가능합니다.
이번 문서에서는 OCI MySQL Database 인스턴스에 MySQL Shell과 MySQL Client로 접근하는 과정을 소개합니다.
MySQL Database Service 기본 가이드
이번 문서는 OMD 기본 가이드 두 번째 문서입니다. OMD 기본 가이드는 다음과 같이 구성됩니다.
- OCI MySQL 가이드-01.프로비저닝
- OCI MySQL 가이드-02.데이터베이스 접속: MySQL Shell & MySQL Client
- OCI MySQL 가이드-03: workbench 구성
- OCI MySQL 가이드-04: 데이터 로딩
OMD 프로비저닝 사전 준비
이번 튜토리얼은 OCI Free Trial 계정에서 진행됩니다. 다음과 같은 계정 및 자원을 사용합니다.
환경 유형 | 자원 | 역할 |
---|---|---|
OCI IAM 계정 | developer01 | MySQL 사용지&관리자 |
Compartment | demo | |
VCN | demovcn | MySQL 인스턴스 배포 VCN |
위 OCI 기본 환경이 준비 안 된 상태라면 다음 문서를 참조하여 구성하시기 바랍니다.
이 문서는 demo 컴파트먼트에 OMD 인스턴스인 mysql_demo_01이 프로비저닝된 상태에서 시작합니다. mysql_demo_01 인스턴스가 준비 안 된 상태라면, 다음 문서를 참조하여 OMD 인스턴스를 만드시기 바랍니다.
OCI MySQL Database 접속
이 문서는 MySQL Shell과 MySQL Client로 OCI MySQL Database(이하 OMD) 인스턴스에 접속하는 절차를 소개합니다. OMD 인스턴스는 private subnet에 위치합니다. 따라서 OMD가 배포된 Private Subnet에 접근 가능한 public subnet에 bastion 서버를 만들어야 합니다. 다음 이미지와 같이 bastion 서버를 만들고 MySQL에 접속하는 환경을 구성하겠습니다.
이 문서의 모든 작업은 OCI Console에 OCI IAM 사용자 developer01로 로그인하여 진행합니다.
작업 순서는 다음과 같습니다.
- SSH 키 생성 (@OCI Cloud Shell)
- Bastion VM 프로비저닝
- Bastion VM에 ssh 접근
- MySQL Shell 설치 & DB Connection
- MySQL Client 설치 & DB Connection
1. SSH 키 생성 (@OCI Cloud Shell)
Bation 서버에 등록할 ssh key pair를 OCI Cloud Shell에서 만들겠습니다. 앞에서 정리한 것처럼 OCI Console에 developer01로 로그인하여 진행합니다.
다음 이미지의 2번 위치에 Cloud Shell 아이콘을 클릭하고 브라우저 가상 터미널을 오픈합니다. 3번 위치에 아이콘을 클릭하여 Cloud Shell 창 크기를 조절합니다.
Cloud Shell에 다음 명령을 실행합니다.
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' #명령 1 ls -al ~/.ssh #명령 2 cat ~/.ssh/id_rsa.pub #명령 3
1번 명령으로 key 파일을 만듭니다. 그리고 3번 명령으로 공개키 내용을 확인하고 공개키를 별도로 저장해 놓습니다. 작업을 마치면 5번 위치의 아이콘을 클릭하고 Cloud Shell을 종료합니다.
앞에서 만들어진 공개키는 다음과 같은 형태를 보입니다. 원본에서 아래 공개키는 한 줄로 출력됩니다.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCw5Zg59C4pjL14v/
Ary9CCV+L2lO4GsfPBmp7jC65roM7tdxGYgf3gEbPuadAD7JxUrZPD/
CeedCrSXO08P/+O2cG5AZcSluuRG0jZZzpWu3j3dBLaGmh95BbFgvPz
HuZiLkec+U2UcuTR7Ub5aJFk5T86uXmI35OjdkP11hisc62i372UuYhR
IZSObD6oCu1mAUocsc2T5ggY5/Hk+wzK3qMmDP8qCHCrjQhe4Hpc9
7fypdNYUn0M8e1hl1vz2Jmx2YDcVHg2WywGRHE98tJfb+wp4pgOgK
bcFqZ5ZAu2zPKwecDSj/0dvQSRLFTABsD9q++EOgHE4ZwaXPYnTvL
developer0@7940e5e9c3b9
2. Bastion VM 프로비저닝
OCI Console에서 Bastion VM을 생성합니다. Bastion 서버란 Private subnet에 배포된 자원에 접근하기 위해서, Private 영역에 접근 가능한 Public Subnet에 설치되는 거점 서버입니다.
OMD는 Private Subnet에 배포됩니다. 따라서 OMD 인스터스에 접근하기 위해서는 Bastion 서버가 필요합니다.
Bastion VM을 만들기 위해서 OCI 메인 페이지에서 Cream a VM Instance 버튼(다음 이미지의 2번 위치)을 클릭합니다.
Cream a VM Instance 버튼을 클릭하면 VM 인스턴스 생성 페이지로 이동합니다. VM 생성 페이지에 VM 이름과 Compartment를 다음과 같이 설정합니다.
설정 항목 | 설정값 | 설명 |
---|---|---|
Name | bastion | VM 이름 |
Compartment | demo | root>>demo |
두 항목의 설정을 마쳤으면, Shape을 변경하기 위해서 3번 영역의 Edit 링크를 클릭합니다.
다음 이미지에서 1번 영역에 Change Shape 버튼을 클릭하고 Shape을 변경합니다. 아래에서는 VM.StandardE2.1을 선택했습니다.
다음 이미지에서 1번 영역에 Paste Public Key를 선택하고 2번 영역에 앞에서 복사한 공개키를 복사해 넣습니다. 그리고 3번 영역의 Create 버튼을 클릭합니다.
Bastion VM이 만들어지면 다음과 같이 상세 정보가 출력됩니다. 공개 IP가 158.101.148.108 인 것을 확인할 수 있습니다.
3. Bastion VM에 ssh 접근
OCI Console에 developer01로 로그인하고 다음과 같이 Cloud Shell을 오픈합니다.
Cloud Shell에서 bastion VM의 공개 IP(158.101.149.108)로 ssh 접근을 합니다.
ssh opc@158.101.149.108
처음 로그인할 때 Are you sure you want to continue connecting (yes/no)? yes
메시지가 출력됩니다. 이 때 yes를 입력합니다. bastion VM에 로그인하면 다음 이미지와 같은 상태가 됩니다.
4. MySQL Shell 설치 & DB Connection
Bastion 서버에서 다음 두 개 명령을 입력하여 MySQL Shell을 설치합니다.
sudo yum install -y \ https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm sudo yum install -y mysql-shell
OS 버전 별 MySQL RPM 경로는 다음 URL에서 확인할 수 있습니다. https://dev.mysql.com/downloads/repo/yum/
다음은 mysql-shell 설치로그 입니다
[opc@bastion ~]$ sudo yum install -y \
> https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
BDB2053 Freeing read locks for locker 0x8e: 11889/140623267997504
Loaded plugins: langpacks, ulninfo
mysql80-community-release-el7-3.noarch.rpm | 25 kB 00:00:00
## 로그 생략
Installed:
mysql80-community-release.noarch 0:el7-3
Complete!
[opc@bastion ~]$ yum install -y mysql-shell
Loaded plugins: langpacks, ulninfo
You need to be root to perform this command.
[opc@bastion ~]$ sudo yum install -y mysql-shell
Loaded plugins: langpacks, ulninfo
mysql-connectors-community
## 로그 생략
Transaction test succeeded
Running transaction
Installing : mysql-shell-8.0.22-1.el7.x86_64 1/1
Verifying : mysql-shell-8.0.22-1.el7.x86_64 1/1
Installed:
mysql-shell.x86_64 0:8.0.22-1.el7
Complete!
[opc@bastion ~]$
MySQL Shell이 설치되었으면 다음 명령으로 MySQL Shell을 실행합니다.
mysqlsh [MYSQL_ADMIN_USER]@[PRIVATE_IP_ADDRESS or HOSTNAME]
mysql_demo_01 인스턴스의 상세 페이지에서 Private IP와 Hostname을 아래 이미지와 같이 확인할 수 있습니다.
위 이미지에서 확인한 mysql_demo_01 인스턴스의 호스트 명과 Private IP는 다음과 같습니다.
- HostName: demomysql.sub11270510191.demovcn.oraclevcn.com
- Private IP: 10.0.1.5
이전 가이드에서 mysql_demo_01 인스턴스의 Administrotor 계정을 admin으로 설정했습니다. 이 정보를 이용하여 MySQL Shell에서 OMD 인스턴스에 접근할 수 있습니다.
아래 이미지는 bastion VM에서 MySQL Shell로 mysql_demo_01에 접근하고 데이터베이스 목록을 조회하는 모습을 담습니다.
5. MySQL Client 설치 & DB Connection
Bastion 서버에 SSH 접근하고 다음 명령 Bastion 서버에 실행하여 MySQL을 설치합니다.
sudo yum install -y \
https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm #명령 1
sudo yum install -y mysql #명령 2
MySQL이 설치되었으면 다음 명령으로 MySQL Client를 실행합니다.
mysql --host [PRIVATE_IP_ADDRESS | HOSTNAME] -u [MYSQL_ADMIN_USER] -p
mysql_demo_01 인스턴스의 호스트 명과 Private IP는 다음과 같습니다.
- HostName: demomysql.sub11270510191.demovcn.oraclevcn.com
- Private IP: 10.0.1.5
이전 가이드에서 mysql_demo_01 인스턴스의 Administrotor 계정을 admin으로 설정했습니다. 이 정보를 이용하여 MySQL Shell로 인스턴스에 접근할 수 있습니다.
다음 이미지는 bastion VM에서 MySQL Client로 mysql_demo_01에 접근하여 데이터베이스 목록을 조회하는 과정을 담고 있습니다.
요약 & Next..
프로비저닝된 OMD 인스턴스에 접근하기 위하여 OCI Bastion 서버를 만들고 MySQL Shell과 MySQL Client를 설치했습니다. 그리고 MySQL Shell과 Client로 OMD에 접근하는 과정을 정리했습니다.
다음 문서에서는 Bastion 서버에 OMD 인스터스 관리 툴로 MySQL Workbench를 설치하는 과정을 정리합니다.