반응형

 

오라클 클라우드 MySQL 데이터베이스 생성 사전준비

  • 오라클 클라우드 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의 경우 모든 대상 포트를 지정하거나 선택적으로 단일 대상 포트 번호 또는 범위를 지정할 수 있습니다.
    • 설명 : 해당 수신 규칙에 대한 설명.

 

  • 이제 Bastion Server에서 MySQL이 사용하는 포트(3306, 33060)로 접근하는 것이 가능해졌다. 전용 서브넷(Private Subnet)에 만들 MySQL 데이터베이스에 접근할 수 있는 상태가 되었다.

 

오라클 클라우드 MySQL 데이터베이스 생성하기

  • 이전에 권한을 준 그룹(developers)에 소속된 사용자(developer01)으로 오라클 클라우드에 로그인하여 아래의 메뉴에 접속한다.
    • 데이터베이스를 관리할 권한이 있는 계정으로 로그인하면 생성할 수 있다.
    • 테넌시 최초 생성 시, 로그인 한 계정 권한은 모든 인스턴스를 관리할 수 있는 관리자 권한이다.

 

  • 구획을 Sandbox로 클릭하고 MySQL DB 시스템 생성 을 클릭한다.

 

  • 원하는 데이터베이스 사양을 설정한다.
    • 네트워킹 구성 시 보안을 위해 공용 서브넷이 아닌 전용 서브넷을 사용하도록 설정하자.
      • 전용 서브넷은 Bastion Server를 통해 접근할 것이다.
    • MySQL 데이터베이스 포트는 앞서 VCN 설정으로 허용한 포트(3306, 33060)로 설정한다.

 

  • 프로비저닝 완료 후 MySQL 데이터베이스 인스턴스 생성이 완료된다.

 

오라클 클라우드 MySQL 데이터베이스 접속하기

 

 

 

  • 인스턴스(Bastion Server)에 등록한 공개 키와 대칭되는 개인 키를 이용하여 Bastion Server에 접속되는지 확인하자.

 

Command-line interface(CLI) 환경에서 오라클 클라우드 MySQL 데이터베이스 접속하기

  • 인스턴스(Bastion Server)에 MySQL Shell을 설치한다.
    • 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 데이터베이스에 접속해본다. 다른 툴도 적절한 접속정보를 입력한다면 접근 가능할 것이다.

 

  • 자신의 컴퓨터에 맞는 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/mysql-database/doc/policy-details-mysql-database-service.html#GUID-5D46A317-E23C-4788-97D8-D374168F3195__GUID-AE791C24-DAE2-4EA9-95C8-92BD47BAE527

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/Identity/policyreference/policyreference_topic-ResourceTypes.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

https://aws.amazon.com/ko/blogs/security/how-to-record-ssh-sessions-established-through-a-bastion-host/

 

반응형

+ Recent posts