Oracle Autonomous JSON Database에 마이그레이션된 MongoDB 워크로드 배포
문서 데이터베이스(이 경우 MongoDB)를 사용하는 기존 워크로드를 Oracle Cloud Infrastructure(OCI)의 Oracle Autonomous JSON Database로 마이그레이션하여 JSON 중심 애플리케이션 개발을 현대화합니다.
문서 및 문서 데이터베이스를 사용하여 데이터 스키마와 애플리케이션을 발전시키는 워크로드와 애플리케이션은 개발자에게 제공하는 유연성 때문에 매우 인기가 있습니다. 스키마 유연성, 신속한 개발 및 확장성을 통해 애플리케이션 기능의 신속한 프로토타이핑, 손쉬운 애플리케이션 개발, 대규모 사용자 기반을 처리하기 위해 개발자가 확장할 수 있는 반복적으로 작은 애플리케이션 및 기능 구축을 보장합니다. 그러나 이러한 유형의 워크로드에는 약한 트랜잭션 보증, 데이터 쿼리 다기능성, 분석 또는 머신 러닝과 같은 문서에서 다른 워크로드를 지원할 수 없는 등 당면 과제가 있습니다.
이러한 워크로드가 기존 문서 데이터베이스의 모든 이점을 누릴 수 있지만 동시에 관계형 데이터베이스의 이점을 활용할 수 있다면 어떨까요? 예를 들어, 데이터를 다른 데이터베이스나 시스템에 복제할 필요 없이 보다 강력한 트랜잭션 보장을 제공하고 분석 및 머신 러닝과 같은 추가 기능을 사용합니다.
자율운영 JSON 데이터베이스는 NoSQL 스타일의 문서 API(Simple Oracle Document Access(SODA) 및 Oracle Database API for MongoDB), 서버리스 확장, 고성능 ACID 트랜잭션, 종합적인 보안, 낮은 종량제 가격 정책을 제공합니다. Autonomous JSON Database는 데이터베이스의 프로비저닝, 구성, 튜닝, 확장, 패치, 암호화 및 복구를 자동화하여 데이터베이스 관리를 제거하고 99.95%의 가용성을 제공합니다.
기능적 구조
이 아키텍처에서 사용되는 주요 기능 중 하나는 MongoDB용 Oracle Database API입니다. MongoDB 드라이버, 도구 및 SDK를 사용하여 애플리케이션이 Oracle Database의 JSON 문서 모음과 상호 작용할 수 있게 해 줍니다. 기존 애플리케이션 코드는 리팩터링 없이도 Autonomous JSON Database에 저장된 데이터로 작동할 수 있습니다.
다음 다이어그램은 데이터베이스, 백엔드 및 프런트엔드 계층으로 구성된 일반적인 애플리케이션을 보여 줍니다.
mongodb-json-logical-arch-migration-oracle.zip
이 패턴을 구현하는 데 사용되는 인기 있는 스택은 MEAN 스택으로, MongoDB를 문서 데이터베이스로, Express를 백엔드 프레임워크로, Angular를 프런트엔드 프레임워크로, Node.js
를 백엔드 서버로 사용합니다. 이 문서에서는 MEAN 스택을 OCI 및 자율운영 JSON 데이터베이스로 마이그레이션될 기존 배포의 예로 사용합니다.
이 워크로드를 OCI 및 Autonomous JSON Database로 마이그레이션하는 작업은 간단하며, 다음과 같은 단계들로 구성됩니다.
- Autonomous JSON Database 인스턴스를 배포하여 생성 시 Oracle Database Mongo DB API 지원
- 메타데이터 및 데이터를 MongoDB에서 Autonomous JSON Database로 마이그레이션합니다.
- VM, 컨테이너 또는 Kubernetes를 사용하여
Node.js
및 Express를 실행하는 애플리케이션 서버를 자율운영 JSON 데이터베이스와 동일한 리전 및 가용성 도메인에 배포합니다. - 응용 프로그램 서버에 백엔드 응용 프로그램 코드를 배치합니다.
- 현재 애플리케이션에 사용된 것과 동일한 MongoDB 도구 및 드라이버를 사용하여 백엔드 애플리케이션을 자율 JSON 데이터베이스에 연결합니다.
- 사용자가 새 응용 프로그램 URI에 연결하도록 합니다.
이 참조 아키텍처는 마이그레이션 프로세스 자체가 아니라 마이그레이션된 워크로드의 배포에 중점을 둡니다. 마이그레이션 프로세스에 대한 자세한 내용은 자세히 살펴보기 섹션을 참조하십시오.
워크로드가 Autonomous JSON Database로 마이그레이션되면 여러 기능을 사용하여 기존 기능을 보강할 수 있습니다. 1) 손쉽게 다음과 같은 추가 비기능 요구사항을 지원하는지 여부 확장성, 복원성 또는 고가용성 향상 또는 2) 데이터베이스에서 데이터를 복사할 필요 없이 운영 보고, 분석 및 머신 러닝과 같은 추가 기능 제공
확장성 및 고가용성을 개선하려면 Autonomous JSON Database 자동 확장 기능을 사용합니다. 한 번의 클릭 또는 API 호출을 통해 워크로드가 다운타임 없이 기준 용량의 최대 3배를 사용할 수 있습니다. 자율운영 JSON 데이터베이스는 고가용성을 위해 Oracle RAC(Oracle Real Application Clusters) 기술을 사용합니다. 백엔드 계층의 경우 자동 확장 규칙과 함께 컴퓨트 인스턴스 풀을 사용하여 애플리케이션의 고가용성 및 확장성을 지원합니다.
자율운영 JSON 데이터베이스는 다중 모델, 다중 워크로드 데이터베이스 기술을 기반으로 구축되므로 관계형, 공간, 그래프 또는 벡터 데이터 유형에 의존하는 추가 기능을 기존 애플리케이션과 함께 추가할 수 있습니다. 일반적으로 사용자는 JSON 데이터를 기반으로 분석을 수행하고 Autonomous JSON Database에서 SQL을 사용하여 동일한 엔진 및 데이터를 사용하여 운영 및 분석 보고 생성을 간소화하고자 합니다.
Autonomous JSON Database는 20Gb의 비JSON 데이터 제한이 있지만, 데이터 볼륨 요구 사항이 변경되는 경우 동일한 기능을 지원하는 Autonomous Transaction Processing Serverless로 쉽게 변환할 수 있습니다. 뷰 및 구체화된 뷰 스토리지는 자율운영 JSON 데이터베이스 20Gb 비JSON 데이터 제한에 포함되지 않으므로, JSON 문서 위에 SQL을 사용한 운영 분석을 지원하기 위해 해당 스토리지를 쉽게 생성하고 사용할 수 있습니다.
물리적 구조
물리적 아키텍처에는 고가용성을 지원하는 보조 백업 리전이 포함된 OCI의 퍼블릭 및 프라이빗 서브넷이 포함됩니다.
이 아키텍처는 다음을 지원합니다.
- 프론트엔드 계층
- 응용 프로그램 유저는 인터넷 또는 회사 네트워크에서 연결할 수 있습니다.
- 웹 애플리케이션 방화벽을 사용하여 사용자 접속이 보안됩니다.
- 응용 프로그램에 대한 유저 연결의 로드 밸런싱을 통해 복원력 및 확장성 향상
- 로드 밸런서가 고가용성(High Availability)으로 배치됨
- 백엔드 계층
- Application Server는 Instance Pool을 사용하여 고가용성(High Availability) 방식으로 배치됩니다.
- 인스턴스 풀은 수평 확장성을 달성하기 위해 자동 확장과 함께 사용됩니다.
- 인스턴스 풀은 자율운영 JSON 데이터베이스와 동일한 가용성 도메인에 인스턴스를 배치하여 애플리케이션 및 데이터베이스 코로케이션을 가지도록 구성되므로 접속 대기 시간 최적화
- 인스턴스 풀은 작업 로드 복원성을 높이기 위해 Autonomous JSON Database가 배치된 동일한 가용성 도메인의 결함 도메인에 인스턴스를 분산하도록 구성됩니다.
- 데이터베이스 티어
- 자율운영 JSON 데이터베이스는 Oracle RAC(Oracle Real Application Clusters)로 고가용성을 제공하고, 서비스 인스턴스를 뒷받침하는 여러 데이터베이스 노드를 제공합니다. 따라서 기본적으로 데이터베이스 계층은 가용성이 높고 탄력적입니다.
- Autonomous JSON Database에서 활성화된 MongoDB용 Oracle Database API를 사용하면 변경 없이 기존 애플리케이션 코드를 사용할 수 있습니다.
- MongoDB용 Oracle Database API는 탄력성이 뛰어나며 Autonomous JSON Database를 통해 내부적으로 복원력이 보장됩니다.
- Autonomous JSON Database는 자동 스케일링을 사용하여 시스템 로드 증가 및 감소에 맞게 조정할 수 있습니다.
- 자율운영 JSON 데이터베이스 비즈니스 연속성은 백업 기반 리전 간 재해 복구를 통해 달성됩니다. 또는 새로 고칠 수 있는 복제본을 사용할 수 있습니다.
- 장애 복구
- 두 리전은 전체 클라우드 배포를 위해 리전 간 재해 복구를 지원합니다.
- 기본 영역의 자율운영 JSON 데이터베이스에는 보조 영역의 백업 기반 영역 간 피어가 있습니다.
- 두번째 영역은 전체적인 복구 시간 목표를 줄이기 위해 유사한 토폴로지와 함께 배치됩니다.
- 전체 RTO를 줄이기 위해 백엔드 계층 클라우드 리소스가 자율운영 JSON 데이터베이스 대기 데이터베이스와 함께 이미 프로비저닝된 웜 DR 전략을 사용할 수 있습니다.
- 또는 장애 발생 시 백엔드 계층 리소스를 프로비저닝하여 DR 리소스 실행 비용을 줄이지만 전체 RTO가 증가할 수 있습니다.
- OCI Full Stack Disaster Recovery를 사용하여 로드 밸런서 및 백엔드 계층의 재해 복구를 자동화하는 것만으로는 이 배포를 단순화하기 위해 설명되지 않은 잠재적인 설계 개선 사항이 있습니다.
- 네트워킹
- 두 영역에 배치된 동적 경로 지정 게이트웨이가 피어링됩니다.
- 온프레미스 연결은 중복성을 위해 OCI FastConnect 및 사이트 간 VPN을 모두 활용합니다.
- 온프레미스 및 인터넷에서 수신되는 모든 트래픽은 먼저 허브 VCN으로 라우팅된 다음 워크로드 VCN으로 라우팅됩니다.
- 허브 및 스포크 네트워크 설계를 사용하여 보안 상태를 높이고 다른 워크로드 VCN을 수용합니다.
- 서비스는 보안 태세를 높이기 위해 프라이빗 엔드포인트로 배포됩니다.
- JSON 작업 로드 VCN은 보안 상태를 높이기 위해 여러 전용 서브넷으로 분리됩니다.
- 보안
모든 데이터는 전송 중 및 미사용 상태입니다.
- 단순성을 위해 이 배포에 명시되지 않은 잠재적인 설계 개선에는 전체 CIS 호환 랜딩 존을 사용하고 허브 VCN에 배포된 네트워크 방화벽을 활용하는 것이 포함됩니다. 네트워크 방화벽은 모든 트래픽을 검사하고 정책을 적용하여 전반적인 보안 상태를 개선합니다.
다음 다이어그램은 이 구조를 보여줍니다.
mongodb-json-physical-arch-oracle.zip
아키텍처의 구성 요소는 다음과 같습니다.
- 지역
OCI 리전은 가용성 도메인을 호스팅하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 광대한 거리는 (국가 또는 대륙에 걸쳐) 그들을 분리 할 수 있습니다.
- VCN(가상 클라우드 네트워크에 연결) 및 서브넷
VCN은 OCI 리전에 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 사용하면 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 CIDR(클래스리스 도메인 간 경로 지정) 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 이 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 썸네일의 크기는 생성 이후 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.
- FastConnect
Oracle Cloud Infrastructure FastConnect는 데이터 센터와 OCI 간의 전용 개인 연결을 생성합니다. FastConnect은 인터넷 기반 연결에 비해 더 높은 대역폭 옵션과보다 안정적이고 일관적인 네트워킹 환경을 제공합니다.
- DRG(동적 경로 지정 게이트웨이)
The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another OCI region, an on-premises network, or a network in another cloud provider.
- NAT(네트워크 주소 변환) 게이트웨이
NAT 게이트웨이는 VCN의 전용 리소스가 들어오는 인터넷 연결에 해당 리소스를 노출하지 않고도 인터넷의 호스트에 액세스할 수 있도록 합니다.
- 서비스 게이트웨이
서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스로의 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.
- 인터넷 게이트웨이
인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.
- 로드 밸런서
Oracle Cloud Infrastructure Load Balancing은 단일 시작점에서 여러 서버로의 자동 트래픽 분산을 제공합니다.
- Web Application Firewall
Oracle Cloud Infrastructure Web Application Firewall(WAF)은 로드 밸런서 또는 웹 애플리케이션 도메인 이름과 같은 적용 지점에 연결된 PCI(Payment Card Industry) 준수, 지역 기반 및 에지 적용 서비스입니다. WAF는 악성 및 원치 않는 인터넷 트래픽으로부터 애플리케이션을 보호합니다. WAF는 모든 인터넷 연결 엔드포인트를 보호하여 애플리케이션 전반에서 일관된 규칙 적용을 제공합니다.
- 애플리케이션 서버
응용 프로그램 서버는 데이터베이스와 마찬가지로 재해 발생 시 처리를 인계할 보조 피어를 사용합니다. 응용 프로그램 서버는 데이터베이스와 파일 시스템에 모두 저장된 구성 및 메타 데이터를 사용합니다. 애플리케이션 서버 클러스터링은 단일 리전의 범위에 대한 보호를 제공하지만 일관된 재해 복구를 위해 지속적으로 수정 및 새 배포를 보조 위치에 복제해야 합니다.
- Oracle Database API for MongoDB
MongoDB용 Oracle Database API를 사용하면 애플리케이션이 MongoDB 드라이버, 도구 및 SDK를 사용하여 Oracle Database의 JSON 문서 모음과 상호 작용할 수 있습니다.
- Autonomous JSON Database
Oracle Autonomous JSON Database는 JSON 중심 애플리케이션을 간단하게 개발할 수 있는 클라우드 문서 데이터베이스 서비스입니다. 간단한 문서 API, 서버리스 확장, 고성능 ACID 트랜잭션, 포괄적인 보안 및 낮은 종량제 가격을 제공합니다. Autonomous JSON Database는 데이터베이스 프로비저닝, 구성, 튜닝, 확장, 패치 적용, 암호화 및 복구를 자동화합니다.
- 오브젝트 스토리지
OCI Object Storage는 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 정형 및 비정형 데이터에 대한 액세스를 제공합니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하고 안전하게 데이터를 저장할 수 있습니다. 성능 또는 서비스 안정성이 저하되지 않고 스토리지를 확장할 수 있습니다.
신속하고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보관하며 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.
아키텍처 변형
Autonomous JSON Database에서 제공하는 완전 관리형 MongoDB API는 관리가 더 쉬우므로 대부분의 워크로드에 가장 적합한 솔루션입니다.
Oracle REST Data Services의 구성 및 관리를 수동으로 제어해야 하는 요구 사항이 있는 경우 고객 관리 Oracle REST Data Services를 사용할 수 있습니다. 예를 들어, 응용 프로그램이 더 큰 연결 풀을 사용하도록 허용합니다.
주:
특정 작업 로드 요구 사항이 있는 경우 이 구조 변형을 사용합니다. 고급 사용자만 이 구조 변형을 배치해야 합니다.이 절에서는 이전에 설명된 물리적 아키텍처와 비교한 차이점만 설명하므로 달리 명시되지 않는 한 모든 물리적 아키텍처 설계 원칙이 유효합니다.
아래 아키텍처 다이어그램은 변형이 배포되는 방식을 보여줍니다. 단순성을 위해 JSON 작업 로드 VCN에 배포된 클라우드 리소스만 표시됩니다. 나머지 배포는 이전에 설명한 것과 동일하기 때문입니다.
mongodb-json-arch-variant-oracle.zip
- 백엔드 응용 프로그램 코드는 인스턴스 풀의 일부인 응용 프로그램 서버에 배치됩니다.
- 수신되는 사용자 요청은 로드 밸런서에 의해 분산되므로 프론트 엔드 계층은 수평 확장 가능하며 단일 장애 지점이 없습니다.
- 고객 관리형 Oracle REST Data Services는 각 애플리케이션 서버에 설치되며 MongoDB API를 사용하도록 구성되므로 애플리케이션이 MongoDB 도구 및 드라이버를 사용하여 데이터베이스에 연결할 수 있습니다.
- 고객 관리형 Oracle REST Data Services는 대규모 연결 풀을 구성하거나 다른 데이터베이스 서비스를 사용하는 등 비기능적 작업 로드 요구 사항에 맞게 조정되도록 구성됩니다.
- 백엔드 코드와 고객 관리 Oracle REST Data Services는 모두 풀에서 사용하는 인스턴스 구성에 사전 설치 및 사전 구성되어 있으므로 인스턴스가 풀에 추가될 때마다 인스턴스 프로비저닝 후 백엔드를 실행하고 데이터베이스에 연결할 수 있습니다.
권장사항
- VCN
VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수에 따라 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.
프라이빗 접속을 설정하려는 다른 네트워크(Oracle Cloud Infrastructure, 온프레미스 데이터 센터 또는 다른 클라우드 제공자)와 겹치지 않는 CIDR 블록을 선택합니다.
VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.
서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계로 사용될 수 있는 동일한 서브넷에 연결합니다.
- 애플리케이션 배치
애플리케이션이 컨테이너에서 실행될 수 있는 경우 Oracle Kubernetes Engine(OKE)을 사용하여 컨테이너 기반 배포를 사용하는 것이 좋습니다.
- 보안
Data Safe를 사용하여 작업 로드 보안 상태를 더욱 높이고 데이터베이스 감사를 수행할 수 있습니다.
- 관찰성
- OCI Audit을 사용해 자율운영 JSON 데이터베이스 이외의 모든 OCI 서비스에 대해 포렌식 감사를 수행하는 것이 좋습니다.
- 모니터링, 로깅 및 로깅 애널리틱스를 사용하여 환경 운영 상태를 전체적으로 확인할 수 있습니다.
- 장애 복구
OCI Full Stack Disaster Recovery를 사용하여 스택의 모든 계층의 재해 및 복구를 자동화 및 조정하는 것을 고려해 보세요.
- 운영 효율성
- 자율운영 JSON 워크로드가 더 넓은 데이터베이스 플리트의 일부인 경우 비용 효율성을 높이기 위해 탄력적 풀 사용을 고려하십시오.
- 종합적인 데이터베이스 성능 모니터링 및 관리 기능을 제공하는 OCI 서비스인 데이터베이스 관리를 사용으로 설정하여 AJD 인스턴스 관리를 간소화하는 것이 좋습니다.
- 애플리케이션 진화
- 신뢰할 수 있는 실시간 데이터 분석을 위해 데이터베이스에서 데이터를 이동하지 않고 SQL 및 APEX 또는 Oracle Analytics Cloud와 같은 프론트엔드를 사용하여 자율운영 JSON 데이터베이스에 운영 분석 및 실시간 보고를 배포하는 것을 고려하십시오.
- 자율운영 JSON 데이터베이스를 Oracle Machine Learning(OML)을 사용하는 머신 러닝에 사용하여 데이터를 이동할 필요 없이 JSON 데이터로 모델을 구축 및 교육하고 기존 워크로드와 함께 모델을 배포하여 효율적인 추론을 수행하는 것이 좋습니다.
- 애플리케이션 코어 이외의 추가 사용 사례는 자율운영 JSON 데이터베이스 사용을 고려해 보십시오. 사용자가 자연어를 사용하여 JSON 데이터를 쿼리할 수 있도록 JSON을 쿼리하고 메타데이터를 보유하는 AI 및 데이터베이스 뷰 선택
- 추가적인 워크로드 기능 및 유연성을 위해 Autonomous JSON Database를 사용하여 추가 데이터 유형(관계형, 벡터, 공간 또는 그래프)을 최대 20Gb까지 저장하는 것이 좋습니다.
자세히 살펴보기
이 아키텍처의 기능에 대해 자세히 알아보십시오.
- Oracle 데이터 플랫폼
- 자율운영 JSON 데이터베이스 설명서
- Oracle Database API for MongoDB
- MongoDB Atlas 또는 On-Premises에서 실행되는 MongoDB 데이터베이스를 Oracle Autonomous JSON Database로 마이그레이션(자습서)
- Autonomous Database의 고객 관리형 Oracle REST Data Services 정보
다음 추가 리소스를 검토하십시오.