반응형
오라클 클라우드 MySQL 데이터베이스 생성 사전준비
- VCN을 구성했는지 확인한다. VCN 설정을 하지 않았다면 아래를 참고하여 VCN을 설정하자.
- 오라클 클라우드 MySQL 데이터베이스를 생성하기 전, IAM 설정을 완료했는지 확인한다. IAM 설정을 하지 않았다면 아래를 참고하여 IAM 설정을 하도록 하자.
오라클 클라우드 MySQL 방화벽 설정하기
- 오라클 클라우드 MySQL 데이터베이스 인스턴스는 전용 서브넷(
Private Subnet
)에 생성된다. 따라서 MySQL 데이터베이스로 접근하기 위해서Bastion Server
가 필요하다.Bastion Server
는 인터넷과 같은 외부 네트워크에서 개인 네트워크에 대한 액세스를 제공하는 것을 목적으로 하는 서버이다. 잠재적인 공격에 노출되기 때문에Bastion Server
는 침투 가능성을 최소화해야 한다.
Bastion Server
에서 MySQL 데이터베이스를 접근하려면 우선, 전용(Private Subnet
)으로 접근할 수 있도록 VCN을 설정해야한다.가상 클라우드 네트워크
로 접속한다.
Sandbox
구획을 선택한다. 그 후, VCN을 클릭한다.
전용 서브넷 링크
를 클릭한다. 공용 서브넷의IPv4 CIDR 블록 값
을 기억해두자
보안 목록 링크
를 클릭한다.
수신 규칙 추가
를 클릭한다.
- 필요한 값들을 입력하고
수신 규칙 추가
를 클릭한다.- iSCSI 및 인스턴스 메타데이터와 같은 서비스를 포함하는
169.254.0.0/16
CIDR 블록과 관련된 트래픽에는 보안 규칙이 적용되지 않습니다.
- 스테이트풀(Stateful) 또는 스테이트리스(Stateless): 스테이트풀(Stateful)인 경우 규칙과 일치하는 트래픽에 연결 추적이 사용됩니다. 상태 비저장인 경우 연결 추적이 사용되지 않습니다.
- 소스 유형
- CIDR : 트래픽이 시작되는 CIDR 블록입니다. 0.0.0.0/0을 사용하여 모든 IP 주소를 나타냅니다. 접두사는 필수입니다(예: 개별 IP 주소를 지정하는 경우 /32 포함).
- 서비스 : 서비스 게이트웨이를 통해 Oracle 서비스에서 오는 패킷에만 해당됩니다. 소스 서비스는 관심 있는 서비스 CIDR 레이블 입니다.
- 소스 CIDR : 트래픽이 시작되는 IPv4 CIDR 블록 값
- IP 프로토콜 : 트래픽 프로토콜 종류를 설정한다.
- 소스 포트 범위 : 트래픽이 시작되는 포트입니다. TCP 또는 UDP의 경우 모든 소스 포트를 지정하거나 선택적으로 단일 소스 포트 번호 또는 범위를 지정할 수 있습니다.
- 대상 포트 범위 : 트래픽이 목적지로 가는 포트. TCP 또는 UDP의 경우 모든 대상 포트를 지정하거나 선택적으로 단일 대상 포트 번호 또는 범위를 지정할 수 있습니다.
- 설명 : 해당 수신 규칙에 대한 설명.
- iSCSI 및 인스턴스 메타데이터와 같은 서비스를 포함하는
- 이제
Bastion Server
에서 MySQL이 사용하는 포트(3306, 33060
)로 접근하는 것이 가능해졌다. 전용 서브넷(Private Subnet
)에 만들 MySQL 데이터베이스에 접근할 수 있는 상태가 되었다.
오라클 클라우드 MySQL 데이터베이스 생성하기
- 이전에 권한을 준 그룹(
developers
)에 소속된 사용자(developer01
)으로 오라클 클라우드에 로그인하여 아래의 메뉴에 접속한다.- 데이터베이스를 관리할 권한이 있는 계정으로 로그인하면 생성할 수 있다.
- 테넌시 최초 생성 시, 로그인 한 계정 권한은 모든 인스턴스를 관리할 수 있는 관리자 권한이다.
- 구획을
Sandbox
로 클릭하고MySQL DB 시스템 생성
을 클릭한다.
- 원하는 데이터베이스 사양을 설정한다.
- 네트워킹 구성 시 보안을 위해 공용 서브넷이 아닌 전용 서브넷을 사용하도록 설정하자.
- 전용 서브넷은
Bastion Server
를 통해 접근할 것이다.
- 전용 서브넷은
- MySQL 데이터베이스 포트는 앞서 VCN 설정으로 허용한 포트(
3306, 33060
)로 설정한다.
- 네트워킹 구성 시 보안을 위해 공용 서브넷이 아닌 전용 서브넷을 사용하도록 설정하자.
- 프로비저닝 완료 후 MySQL 데이터베이스 인스턴스 생성이 완료된다.
오라클 클라우드 MySQL 데이터베이스 접속하기
- 우선 인스턴스(
Bastion Server
)을 생성하기 전 SSH 키를 만들어야한다.
- MySQL 데이터베이스에 접근하기 위해 인스턴스(
Bastion Server
)를 만든다.
- 만든 VM에 예약된 공용 IP 설정을 한다.
- 인스턴스(
Bastion Server
)에 등록한 공개 키와 대칭되는 개인 키를 이용하여Bastion Server
에 접속되는지 확인하자.
Command-line interface(CLI) 환경에서 오라클 클라우드 MySQL 데이터베이스 접속하기
- 인스턴스(
Bastion Server
)에 MySQL Shell을 설치한다.- https://dev.mysql.com/downloads/repo/yum/ 의 사이트에서 rpm 주소를 확인할 수 있다.
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
sudo yum install -y mysql-shell
- 인스턴스(
Bastion Server
)에 설치된 MySQL Shell로 오라클 클라우드 MySQL 데이터베이스 등록 시 설정한 관리자 정보로 로그인 한다.mysqlsh [mysql_admin_user]@[private_ip_address OR hostname]
- mysqlsh admin@sandboxmysql01.sub02080759411.examplevcn.oraclevcn.com
- 로그인한 화면에서 SQL 작업을 할 수 있다.
Graphical user interface(GUI) 환경에서 오라클 클라우드 MySQL 데이터베이스 접속하기
- 여기서는
MySQL Workbench
로 오라클 클라우드 MySQL 데이터베이스에 접속해본다. 다른 툴도 적절한 접속정보를 입력한다면 접근 가능할 것이다.
- 아래의 사이트에서
MySQL Workbench
를 설치하자.
- 자신의 컴퓨터에 맞는 OS를 선택하고
Download
를 클릭한다.
- 인스턴스(
Bastion Server
)를 통해서 오라클 클라우드 MySQL 데이터베이스에 접근하기 위해MySQL Workbench
연결 설정을 해야한다.- 오라클 클라우드 인스턴스(
Bastion Server
) 공개 IP 주소
- 오라클 클라우드 인스턴스(
Bastion Server
)의 사용자 이름
- 오라클 클라우드 MySQL 데이터베이스의 호스트 이름(내부 FQDN)
- 오라클 클라우드 MySQL 데이터베이스의 전용 IP(Private IP) 주소
- 오라클 클라우드 MySQL 데이터베이스 사용자
- 오라클 클라우드 인스턴스(
MySQL Workbench
를 실행하고+
버튼을 클릭 후 Connection Method를Standard TCP/IP over SSH
를 선택한다. 그 후 필요한 정보를 입력하고Test Connection
을 통해 접속가능한지 확인하고OK
를 클릭한다.- 만약 접속이 안된다면 VCN 보안 목록 설정(포트 허용여부)이 제대로 되었는지 확인하자.
- Connection Name: 해당 연결의 이름을 입력한다.
- SSH Hostname: Bastion Server 공개 IP 주소 입력한다.
- SSH Username: Bastion Server의 사용자이름 입력한다.
- SSH Key File: Bastion Server의 공개 키와 대칭되는 개인 키 파일을 등록한다.
- MySQL Hostname: 오라클 클라우드 MySQL 데이터베이스 인스턴스의 호스트 이름(내부 FQDN)을 입력한다.
- MySQL Server Port: VCN 보안 설정에서 허용한 포트를 입력한다.
- Username: 오라클 클라우드 MySQL 데이터베이스 인스턴스 생성 시, 입력한 관리자 인증서의 사용자 이름
- 정상적으로 접속되며 SQL 작업을 할 수 있다.
[참고자료]
https://docs.oracle.com/en-us/iaas/mysql-database/doc/overview-mysql-database-service.html
https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/policysyntax.htm#five
https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/policies.htm
https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securityrules.htm#stateful
http://taewan.kim/cloud/oci_mds_tutorial_03_workbench/
https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
반응형