Oracle Exadata Database Machine에 마이그레이션된 MongoDB 워크로드 배포
문서 및 문서 데이터베이스를 사용하여 데이터 스키마 및 애플리케이션을 발전시키는 워크로드 및 애플리케이션은 개발자에게 제공하는 유연성 때문에 널리 사용됩니다. 스키마 유연성, 신속한 개발 및 확장성을 통해 애플리케이션 기능의 프로토타이핑 가속화, 손쉬운 애플리케이션 개발, 대규모 사용자 기반을 처리하기 위해 개발자가 확장할 수 있는 반복적으로 작은 애플리케이션 및 기능을 구축할 수 있습니다. 그러나 이러한 유형의 워크로드에는 약한 트랜잭션 보증, 데이터 쿼리 다기능성, 분석 또는 머신 러닝과 같은 문서에서 다른 워크로드를 지원할 수 없는 등 당면 과제가 있습니다.
이러한 워크로드가 기존 문서 데이터베이스의 장점을 활용하고 관계형 데이터베이스의 이점을 활용할 수 있다면 어떨까요? 예를 들어, 데이터를 다른 데이터베이스나 시스템에 복제할 필요 없이 분석 및 머신 러닝과 같은 강력한 트랜잭션 보장 및 추가 기능을 사용할 수 있습니다.
AI, 마이크로서비스, 그래프, 문서, 공간 및 관계형 애플리케이션 개발을 간소화하도록 설계된 Oracle Database 23ai는 하나의 강력한 솔루션에 필요한 모든 것을 제공하는 컨버지드 데이터베이스 플랫폼입니다.
Oracle Exadata Database Machine은 Oracle Database를 실행하는 데 있어 최고의 성능과 가용성을 실현 할 수 있는 플랫폼으로 설계되었습니다. Exadata는 OLTP(온라인 트랜잭션 처리), DW(데이터 웨어하우징) 및 혼합 워크로드의 통합을 포함하여 모든 종류의 데이터베이스 워크로드를 실행합니다. 간단하고 빠르게 구현되는 Exadata는 가장 중요한 데이터베이스를 강화하고 보호하도록 설계되었으며 DBaaS(Database as a Service)에 이상적인 기반입니다.
기능적 구조
이 참조 아키텍처는 마이그레이션 프로세스가 아닌 마이그레이션된 워크로드를 배포하는 데 중점을 둡니다. 마이그레이션 프로세스에 대한 자세한 내용은 자세히 살펴보기 섹션을 참조하십시오.
이 아키텍처에서 사용되는 주요 기능 중 하나는 애플리케이션이 MongoDB 명령을 사용하여 Oracle Database의 JSON 문서 모음과 상호 작용할 수 있는 MongoDB용 Oracle Database API입니다. 이를 통해 기존 애플리케이션 코드는 코드를 리팩토링하지 않고도 Oracle Database 23ai에 저장된 데이터로 작업할 수 있습니다.
다음 다이어그램은 데이터베이스, 백엔드 계층 및 프런트엔드 계층으로 구성된 일반적인 애플리케이션을 보여줍니다.
mongodb-logical-arch-migration.zip
이 패턴을 구현하는 데 사용되는 인기 있는 스택은 MEAN 스택입니다.
- MongoDB: 문서 데이터베이스
- Express: 백엔드 프레임워크
- 각도: 프런트엔드 프레임워크
- Node.js: 백엔드 서비스
이 아키텍처는 기존 배포의 예로 MEAN 스택을 사용하여 Oracle Database 23ai로 마이그레이션합니다. 이 워크로드를 Oracle Database 23ai로 마이그레이션하는 작업은 다음과 같은 고급 단계로 구성됩니다.
- Oracle Real Application Clusters(Oracle RAC)를 사용하여 여러 데이터베이스 노드에 걸쳐 Exadata에서 고가용성 Oracle Database 23ai 인스턴스를 배포합니다.
- 메타데이터 및 데이터를 MongoDB에서 Oracle Database 23ai로 마이그레이션합니다.
- VM, 컨테이너 또는 Oracle REST Data Services 등 백엔드 계층 컴퓨팅을 설치하고 구성합니다.
- 응용 프로그램이 MongoDB 드라이버를 사용하여 데이터베이스와 통신할 수 있도록 MongoDB API를 사용으로 설정하도록 Oracle REST Data Services를 구성합니다.
- 새 데이터베이스 연결 문자열을 사용하도록 응용 프로그램을 구성합니다.
- 현재 애플리케이션에 사용된 것과 동일한 MongoDB 도구 및 드라이버를 사용하여 백엔드 애플리케이션을 Oracle Database 23ai에 연결합니다.
워크로드를 Oracle Database로 마이그레이션한 후에는 데이터베이스에서 데이터를 복사하지 않고도 향상된 보안, 운영 보고, 분석 및 머신 러닝과 같은 추가 기능을 사용으로 설정하여 기능을 향상시킬 수 있습니다. Oracle Database 23ai는 관계형, 공간, 그래프 또는 벡터 데이터 유형을 기존 애플리케이션과 함께 활용하는 기능을 원활하게 통합할 수 있는 멀티 모델 멀티 워크로드 플랫폼입니다.
작업 로드 확장성을 향상시키려면 데이터베이스에 더 많은 컴퓨팅 및 메모리를 할당합니다. Oracle Database 23ai는 멀티 모델, 멀티 워크로드 데이터베이스 기술이기 때문에 관계형, 공간, 그래프 또는 벡터 데이터 유형에 의존하는 추가 기능을 기존 애플리케이션과 함께 추가할 수 있습니다.
물리적 구조
프론트엔드 계층
- 현재 배포가 사용됩니다.
- 사용자는 인터넷 또는 회사 네트워크에서 연결할 수 있습니다.
- 페일오버 시 요청을 대기 데이터 센터로 라우팅하도록 DNS 기능이 구성됩니다.
백엔드 계층
- 기존 애플리케이션은 동일한 컴퓨트 인스턴스와 함께 배치되고 사용됩니다.
- 고객 관리형 Oracle REST Data Services는 애플리케이션 서버에 함께 배치되고 배포됩니다. 응용 프로그램 코드는 Oracle REST Data Services를 통해 Oracle Database 23ai에 연결할 수 있습니다.
- 백엔드 계층 확장성은 각 애플리케이션 서버에 설치된 Oracle REST Data Services를 암시적으로 확장하는 현재의 확장성 메커니즘을 사용하여 달성됩니다.
데이터베이스 티어
- Oracle Database 23ai는 Exadata에 배포되며, JSON 문서를 저장하고 백엔드 계층에 제공하는 데 사용됩니다.
- MongoDB용 Oracle Database API는 Oracle REST Data Services를 사용하여 사용으로 설정되므로 코드를 변경하지 않고도 기존 애플리케이션 코드를 사용할 수 있습니다.
비즈니스 연속성
- Oracle Data Guard 재해 복구 전략을 사용하여 달성합니다.
- 웜 재해 복구 전략은 백엔드 계층 및 연관된 리소스가 이미 배치되어 실행 중인 것으로 간주됩니다.
다음 다이어그램은 이 참조 구조를 보여줍니다.
mongodb-exadata-기계-물리적-arch.zip
물리적 구조를 위한 설계:
비즈니스 연속성
- 동일한 배치를 가진 두 개의 데이터 센터가 있습니다. 하나는 활성이고 다른 하나는 대기 상태입니다.
- DNS 트래픽 조정은 사용자 요청을 활성 데이터 센터로 전달합니다. 애플리케이션 계층에서 실행된 DNS 건전성 검사 프로브가 반복적으로 실패할 경우 대기 데이터 센터 작업 로드로 트래픽 경로를 지정하도록 DNS가 재구성됩니다.
- 로드 밸런서는 수신 요청을 여러 백엔드 계층 VM에 분산하여 단일 실패 지점을 방지합니다.
- 백엔드 계층에는 사용자 요청을 처리하는 여러 VM이 있습니다.
- 고객 관리형 Oracle REST Data Services는 백엔드 계층 VM에 배포 및 구성됩니다. VM을 추가하면 애플리케이션 서버와 Oracle REST Data Services가 모두 자동으로 확장됩니다.
- RTO(복구 시간 목표)는 데이터베이스 복구뿐만 아니라 대기 데이터 센터의 나머지 작업 로드 구성 요소로의 전체 복구에 따라 달라집니다.
- 데이터베이스 RTO 및 RPO(복구 지점 목표)는 구성된 Oracle Data Guard 보호 모드에 따라 달라집니다.
- 데이터베이스 페일오버는 비즈니스 연속성 세부 요구 사항에 따라 Oracle Data Guard 수동 또는 자동 페일오버를 활용합니다.
네트워킹
- 인터넷에서 수신되는 사용자 요청을 수신하는 공용 서브넷이 있습니다.
- 로드 밸런서 요청은 사용자 요청을 처리하는 백엔드 계층 서버로 경로 지정됩니다.
- Exadata VM은 클라이언트 및 관리 네트워크에 연결됩니다.
- Oracle REST Data Services를 통해 데이터베이스에 대한 백엔드 계층 요청은 클라이언트 네트워크 주소를 사용합니다.
- 2개의 데이터 센터는 Oracle Data Guard 구성을 지원하는 데 필요한 대역폭 및 짧은 대기 시간과 상호 연결됩니다.
데이터베이스
- Oracle Database 23ai는 Exadata VM 클러스터에 배포됩니다.
- VM 클러스터는 고가용성을 위해 여러 데이터베이스 노드를 사용합니다.
- Oracle RAC는 데이터베이스가 작업 로드에 대해 여러 데이터베이스 노드를 사용하도록 보장합니다.
보안
- 모든 데이터는 전송 중 및 미사용 상태입니다.
단순성을 위해 이 배포에 명시되지 않은 잠재적인 설계 개선 사항은 다음과 같습니다.
- Active Data Guard를 사용하여 읽기 전용 액세스를 위해 대기 데이터베이스를 사용으로 설정하고 운영 분석 질의를 오프로드합니다.
권장사항
- 애플리케이션 배치
애플리케이션이 컨테이너에서 실행될 수 있는 경우 Kubernetes를 사용하여 컨테이너 기반 배포를 사용하는 것이 좋습니다. 컨테이너가 사용되는 경우 백엔드 코드와 고객 관리형 Oracle REST Data Services가 이미 설치된 컨테이너 이미지를 사용하는 것이 좋습니다.
- 보안
Oracle Database Advanced Security Option 기능을 사용하여 미사용 데이터를 암호화하고 동적 데이터 편집을 사용으로 설정하는 것이 좋습니다. Oracle Database Advanced Security Option을 사용하려면 Oracle Database Enterprise Edition 라이센스가 필요합니다.
- 관찰성
Oracle Data Safe를 사용하여 작업 로드 보안 상태를 더욱 높이고 데이터베이스 감사를 수행할 수 있습니다.
- 애플리케이션 진화
- SQL 및 Oracle APEX와 같은 프론트엔드를 사용하여 Oracle Database 23ai에서 운영 분석 및 실시간 보고를 배포하는 것을 고려해 보세요. 신뢰할 수 있는 실시간 분석을 위해 데이터베이스 내에 데이터를 보관할 수 있습니다.
- Oracle Machine Learning for SQL을 사용하는 머신 러닝에 Oracle Database 23ai를 사용하고, 데이터 이동 없이 JSON 데이터로 모델을 구축 및 교육하고, 기존 워크로드와 함께 모델을 배포하여 효율적인 추론을 수행하는 것이 좋습니다.
- 추가 워크로드 기능 및 유연성을 위해 데이터베이스를 사용하여 추가 데이터 유형(관계형, 벡터, 공간 또는 그래프)을 저장하는 것이 좋습니다.
- 운영 분석 이상의 분석을 위해 Exadata 및 Oracle Database 23ai를 사용하는 것이 좋습니다. 데이터 분석을 위해 맞춤화된 효율적인 열 형식인 Hybrid Columnar Compression을 통해 데이터 저장에 필요한 공간을 줄이면서 분석 성능을 향상시킬 수 있습니다. Hybrid Columnar Compression은 Exadata에서 지원되며 Oracle Database Enterprise Edition 라이선스에 포함됩니다.