Oracle Cloud Infrastructure상에서 선형적으로 확장 가능하며 결함-허용한도 Oracle 데이터베이스 배포
엔터프라이즈급 OLTP 애플리케이션에 대한 완벽한 데이터 격리를 통해 최고의 수평 확장(scale-out)을 지원하는 데이터베이스가 필요한 경우 Oracle Cloud Infrastructure의 내결함성 토폴로지로 Oracle Database의 sharded 인스턴스를 배포합니다.
샤딩은 데이터가 샤드라는 독립 데이터베이스에서 수평적으로 분할되는 데이터 계층 구조로서, 각각 자체 CPU, 메모리 및 디스크 리소스를 포함하는 별도의 서버에서 실행됩니다. 이 shared-nothing 접근 방식은 인프라 계층에서 단일 장애 지점을 제거합니다. 샤드 풀은 애플리케이션 계층에 샤딩된 데이터베이스라는 단일 논리적 데이터베이스로 표시됩니다. 주로 샤딩 키를 사용하여 잘 정의된 데이터 배포 전략을 갖고 데이터에 액세스하는 응용 프로그램은 샤딩된 데이터 계층을 활용할 수 있습니다.
구조
다음 아키텍처에서는 Oracle Cloud Marketplace에서 제공되는 Oracle Database Sharding 스택을 사용하여 배포한 Oracle Cloud Infrastructure의 내결함성, 샤딩된 Oracle Database 19c 토폴로지를 보여줍니다.
아키텍처는 샤딩된 데이터베이스의 가용성을 극대화하기 위해 모든 계층(하드 디렉터, 카탈로그 및 샤드)에 중복 리소스를 포함합니다.
여러 가용성 도메인 간 배포
이 아키텍처는 Oracle Cloud Infrastructure 지역의 두 가용성 도메인에 분산된 샤딩된 데이터베이스를 보여줍니다.
그림 shards-single-region.png에 대한 설명
단일 가용성 도메인에 배포
이 아키텍처는 Oracle Cloud Infrastructure 지역의 단일 가용성 도메인 내 장애 도메인에 분산된 샤딩된 데이터베이스를 보여줍니다.
그림 shards-single-ad.png에 대한 설명
구조에는 다음 구성요소가 포함됩니다.
- 영역
Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 현지화된 지리적 영역입니다. 지역은 다른 지역에 독립적이며, 거리가 먼 나라 전체나 대륙을 구분할 수 있습니다.
이 아키텍처의 모든 리소스는 사용자가 지정한 구획과 단일 Oracle Cloud Infrastructure 지역에 배포됩니다.
- 가용성 도메인
가용성 도메인은 한 지역 내의 독립형 독립적인 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 내결함성을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원, 냉각 또는 내부 가용성 도메인 네트워크와 같은 인프라를 공유하지 않습니다. 따라서 한 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다.
- 결함 도메인
장애 도메인은 한 가용성 도메인 내 하드웨어와 인프라의 그룹입니다. 각 가용성 도메인에는 독립적인 전원 및 하드웨어의 3개의 장애 도메인이 있습니다. 여러 장애 도메인에 걸쳐 리소스를 분배할 경우 응용 프로그램은 결함 도메인 내에서 물리적 서버 오류, 시스템 유지 관리 및 전원 오류를 허용할 수 있습니다.
이 아키텍처의 리소스는 각 가용성 도메인의 장애 도메인에 고르게 분산됩니다.
- VCN(가상 클라우드 네트워크) 및 서브넷
VCN은 Oracle Cloud Infrastructure 지역에서 설정하는 사용자 정의 가능한 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN은 네트워크 환경에 대한 완벽한 제어를 제공합니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 영역 또는 가용성 도메인으로 범위가 지정될 수 있는 서브넷으로 분할할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속 주소 범위로 구성됩니다. 서브넷 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
이 아키텍처의 컴퓨트 및 데이터베이스 리소스는 단일 지역 공용 서브넷에 연결됩니다. 사용할 VCN 및 서브넷을 지정할 수 있습니다. 새 VCN 및 서브넷을 생성하려면 VCN 및 서브넷에 대한 CIDR 주소 블록을 지정할 수 있습니다.
- 인터넷 게이트웨이
인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 사이의 트래픽을 허용합니다.
- 보안 목록
각 서브넷에 대해 서브넷 내부/외부에서 허용해야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.
이 아키텍처에는 샤드 디렉터와의 트래픽을 제어하는 보안 목록이 포함되어 있습니다.
- 경로 테이블
가상 경로 테이블에는 서브넷에서 일반적으로 게이트웨이를 통해 VCN 외부의 대상으로 트래픽을 라우팅하는 규칙이 포함됩니다.
이 아키텍처에는 서브넷에서 인터넷 게이트웨이로 트래픽을 전송하는 경로 테이블이 포함되어 있습니다.
- 샤드의 연출가
샤드 디렉터(Global Service Manager라고도 함)는 샤딩 키를 기반으로 적절한 데이터베이스 샤드에 대한 고성능 연결 경로 지정을 가능하게 하는 네트워크 리스너입니다.
필요한 샤드 디렉터 수를 지정할 수 있습니다. 샤드 디렉터는 개별 컴퓨팅 인스턴스에 배치되며, 이는 해당 지역의 모든 가용성 도메인 및 각 가용성 도메인 내 장애 도메인에 걸쳐 분산됩니다. 샤드 디렉터에 사용할 컴퓨트 인스턴스의 구성을 선택할 수 있습니다.
- 기본 및 대기 샤드 카탈로그
샤드 카탈로그는 자동화된 샤드 배치, 샤딩된 데이터베이스의 중앙 집중식 관리 및 다중샤드 질의를 지원하는 특수 용도의 Oracle Database 인스턴스입니다.
이 아키텍처에는 카탈로그 데이터베이스의 기본 대기 쌍인 단일 노드 Oracle Cloud Infrastructure VM DB 시스템이 포함되어 있습니다. 카탈로그 데이터베이스에 대해 데이터베이스 구성 및 사용 가능한 스토리지 용량을 선택할 수 있습니다.
- 데이터베이스 샤드
각 데이터베이스 샤드는 단일 노드 Oracle Cloud Infrastructure VM DB 시스템입니다. 주 샤드 수, 사용할 데이터베이스 구성 및 사용 가능한 스토리지 용량을 지정할 수 있습니다. 샤드는 해당 영역의 모든 가용성 도메인 및 각 가용성 도메인 내 결함 도메인에 걸쳐 고르게 분산됩니다.
구조를 배치하는 동안 각 기본 샤드에 대해 대기 샤드를 프로비전하도록 선택할 수 있습니다.- 지역에 여러 가용성 도메인이 포함된 경우 기본-대기 쌍의 각 샤드가 별도의 가용성 도메인에 배치됩니다.
- 영역에 하나의 가용성 도메인만 포함된 경우 기본 및 대기 샤드가 별도의 장애 도메인에 격리됩니다.
권장사항
요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용합니다.
- 크기 및 분할 수스택을 배치하는 동안 사용할 데이터베이스 구성과 샤드 수를 지정할 수 있습니다.
- 작업 로드 요구 사항에 따라 적절한 구성을 선택합니다. 지정한 모양은 모든 샤드에 사용됩니다.
배치 후에 작업 로드의 변경 사항에 맞게 개별 샤드의 구성을 변경할 수 있습니다. 의 모양을 변경한 샤드는 중지된 다음 새 쉐이프를 사용하여 다시 시작합니다.
- 일반적으로 작은 샤드의 수가 많을수록 작은 수의 대형 샤드보다 전체 내결함성이 향상됩니다. 토폴로지를 스케일 아웃하거나 내결함성을 개선하기 위해 기존 샤드의 가용성에 영향을 주지 않고 언제든지 샤드를 추가할 수 있습니다. 필요한 경우 샤딩된 데이터베이스에서 크기를 조정할 수 있습니다. 데이터를 다른 샤드로 이동한 후 마지막으로 생성된 샤딩이 먼저 제거됩니다.
- 작업 로드 요구 사항에 따라 적절한 구성을 선택합니다. 지정한 모양은 모든 샤드에 사용됩니다.
- 가용성 제공
샤드의 고가용성을 보장하려면 대기 샤드를 프로비전하고 기본-대기 동기화 및 페일오버용 Oracle Data Guard를 사용하십시오.
- 샤드 카탈로그 가용성
샤드 카탈로그의 고가용성을 위해서는 대기 카탈로그를 프로비전하고 동기화 및 복구를 위해 Oracle Data Guard를 사용하십시오. 샤드 카탈로그의 가용성은 샤딩된 데이터베이스의 가용성에 영향을 주지 않습니다. 샤드 카탈로그의 중단은 대기 카탈로그로 복구하면서 유지 관리 작업 또는 다중샤드 질의를 수행하는 기능에만 영향을 줍니다. OLTP 트랜잭션은 계속해서 샤드로 라우팅됩니다.
- 샤드 디렉터 가용성
샤드 디렉터 레이어의 고가용성을 위해서는 여러 샤드 디렉터를 배포합니다. 한 지역에 최대 5개의 샤드 디렉터를 배포할 수 있습니다. Oracle은 별도의 가용성 도메인 또는 결함 도메인에 격리된 두 개 이상의 샤드 디렉터를 배치할 것을 권장합니다.
- 저장 영역
Oracle Cloud Marketplace 스택의 현재 버전은 데이터베이스 샤드 및 LVM(Logical Volume Manager) 기반 스토리지로 카탈로그 데이터베이스를 프로비전합니다. 사용 가능한 스토리지 용량은 256GB부터 최대 40TB까지 지정할 수 있습니다. 워크로드에 적합한 스토리지 용량을 선택하십시오. 지정된 크기의 블록 볼륨은 각 데이터베이스에 연결됩니다.
데이터베이스의 가용성에 영향을 주지 않고 언제든지 스토리지를 확장할 수 있습니다. 사용된 총 스토리지가 사용 가능한 스토리지보다 높습니다. 자세한 내용은 Oracle Cloud Infrastructure Database 문서를 참조하십시오.
- 네트워크 디자인
VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수를 기반으로 필요한 CIDR 블록 수 및 각 블록의 크기를 확인하십시오. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.
전용 연결을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.
고려 사항
- 애플리케이션 설계
잘 정의된 데이터 분산 전략이 있고, 주로 고객 ID, 계정 번호 등 샤딩 키를 사용하여 데이터에 액세스하는 응용 프로그램은 샤딩된 데이터베이스에 적합합니다.
- 확장성
샤딩된 데이터베이스를 배치한 후 스택을 편집하고 변경 사항을 적용하여 샤드 수를 늘리거나 줄일 수 있습니다. 스택을 배치하는 동안 지정한 복제 요소에 따라 대기 샤드도 확장됩니다.
샤드 디렉터 수도 확장할 수 있습니다.
- 보안
샤딩된 데이터베이스를 배치하는 동안 데이터베이스 서버에 대한 보안 SSH 연결을 사용으로 설정하려면 SSH 공용 키를 지정하십시오.
- 네트워크 분리
네트워크 격리를 보장하려면 샤딩된 데이터베이스를 전용 서브넷에 배치합니다. 데이터베이스 서버에 대한 관리 액세스를 위해 공용 서브넷에서 배스천 호스트를 프로비저닝할 수 있습니다.
배치
이 참조 아키텍처를 배포하는 Terraform 기반 스택은 Oracle Cloud Marketplace에서 확인할 수 있습니다.
- Oracle Cloud Marketplace로 이동합니다.
- 앱 가져오기를 누릅니다.
- 화면 프롬프트를 따릅니다.