이전된 MongoDB 작업 로드를 Oracle Autonomous Transaction Processing Serverless에 배포

문서 데이터베이스(이 경우 MongoDB)를 사용하는 기존 워크로드를 Oracle Cloud Infrastructure(OCI)의 Oracle Autonomous Transaction Processing Serverless(ATP Serverless) 데이터베이스로 마이그레이션하여 다른 다중 모델 워크로드와 함께 JSON 중심 애플리케이션의 개발을 현대화합니다.

문서 및 문서 데이터베이스를 사용하여 데이터 스키마 및 애플리케이션을 발전시키는 워크로드 및 애플리케이션은 개발자에게 제공하는 유연성 때문에 널리 사용됩니다. 스키마 유연성, 신속한 개발 및 확장성을 통해 애플리케이션 기능의 프로토타이핑 가속화, 손쉬운 애플리케이션 개발, 대규모 사용자 기반을 처리하기 위해 개발자가 확장할 수 있는 반복적으로 작은 애플리케이션 및 기능을 구축할 수 있습니다. 그러나 이러한 유형의 워크로드에는 약한 트랜잭션 보증, 데이터 쿼리 다기능성, 분석 또는 머신 러닝과 같은 문서에서 다른 워크로드를 지원할 수 없는 등 당면 과제가 있습니다.

이러한 워크로드가 기존 문서 데이터베이스의 장점을 활용하고 관계형 데이터베이스의 이점을 활용할 수 있다면 어떨까요? 예를 들어, 데이터를 다른 데이터베이스나 시스템에 복제할 필요 없이 분석 및 머신 러닝과 같은 강력한 트랜잭션 보장 및 추가 기능을 사용할 수 있습니다.

Autonomous Transaction Processing Serverless는 트랜잭션, 분석 및 일괄 처리 워크로드를 동시에 실행하도록 최적화된 완전 자동화된 데이터베이스 서비스입니다. 성능을 가속화하기 위해 행 형식, 인덱스 및 데이터 캐싱용으로 사전 구성되어 있으며 확장성, 가용성, 투명한 보안 및 실시간 운영 애널리틱스를 제공합니다. 애플리케이션 개발자와 DBA는 기능이나 원자성, 일관성, 격리 및 내구성(ACID) 속성을 희생하지 않고도 빠르고 비용 효율적으로 애플리케이션을 개발하고 배포할 수 있습니다.

기능적 구조

이 참조 아키텍처는 온프레미스 또는 클라우드에서 애플리케이션 및 MongoDB 데이터베이스를 사용하는 워크로드가 있으며 OCI로 마이그레이션한다고 가정합니다. 미래 상태 아키텍처, 이점, 배포 방법 및 기존 워크로드를 보강하는 데 사용할 수 있는 추가 기능에 대해 설명합니다.

이 참조 아키텍처는 마이그레이션 프로세스 자체가 아니라 마이그레이션된 워크로드의 배포에 중점을 둡니다. 마이그레이션 프로세스에 대한 자세한 내용은 자세히 살펴보기 섹션을 참조하십시오.

이 아키텍처에서 사용되는 주요 제품 중 하나는 MongoDB용 Oracle Database API입니다. MongoDB 드라이버, 도구 및 SDK를 사용하여 애플리케이션이 Oracle Database의 JSON 문서 모음과 상호 작용할 수 있게 해 줍니다. 이를 통해 기존 애플리케이션 코드는 코드를 리팩토링하지 않고도 Autonomous Transaction Processing Serverless(ATP Serverless)에 저장된 데이터로 작업할 수 있습니다.

다음 다이어그램은 데이터베이스, 백엔드 및 프런트엔드 계층으로 구성된 일반적인 애플리케이션을 보여줍니다.



mongodb-atp-s-logical-arch-migration-oracle.zip

MEAN 스택은 이 패턴을 구현하는 데 사용되는 인기 있는 스택입니다.
  • MongoDB: 문서 데이터베이스
  • Express: 백엔드 프레임워크
  • 각도: 프런트엔드 프레임워크
  • Node.js: 백엔드 서비스

이 예에서는 MEAN 스택을 사용하여 기존 배포를 OCI 및 ATP Serverless로 마이그레이션합니다.

이 워크로드를 OCI 및 ATP Serverless로 마이그레이션하는 작업은 간단하며 다음과 같은 단계들로 구성됩니다.

  1. ATP 서버리스 인스턴스를 배치하여 생성 시 Oracle Database Mongo DB API를 사용으로 설정합니다.
  2. 메타데이터 및 데이터를 MongoDB에서 ATP Serverless로 마이그레이션합니다.
  3. 애플리케이션 서버를 배포하여 VM, 컨테이너 또는 Kubernetes를 사용하여 Node.js 및 Express를 ATP Serverless와 동일한 지역 및 가용성 도메인에 실행합니다.
  4. 응용 프로그램 서버에 백엔드 응용 프로그램 코드를 배치합니다.
  5. 현재 애플리케이션에서 사용되는 것과 동일한 MongoDB 툴 및 드라이버를 사용하여 백엔드 애플리케이션을 ATP Serverless에 연결합니다.
  6. 사용자를 새 응용 프로그램 URI에 연결합니다.

ATP Serverless로 워크로드를 마이그레이션한 후 기존 기능을 보강하는 데 사용할 수 있는 기능은 다음과 같습니다. 1) 확장성, 복원성 또는 고가용성 향상과 같은 추가 비기능적 요구사항 지원 2) 데이터베이스에서 데이터를 복사할 필요 없이 운영 보고, 분석 및 머신 러닝과 같은 추가 기능 제공

확장성과 고가용성을 향상시키려면 Autonomous Transaction Processing Serverless 자동 스케일링 기능을 사용합니다. 한 번의 클릭 또는 API 호출을 통해 워크로드는 다운타임 없이 최대 3배의 기준 용량을 사용할 수 있습니다. Autonomous Transaction Processing Serverless는 고가용성을 위해 Oracle RAC(Oracle Real Application Clusters) 기술을 사용합니다. 백엔드 계층의 경우 자동 확장 규칙이 있는 컴퓨트 인스턴스 풀을 사용하여 애플리케이션의 고가용성 및 확장성을 지원합니다.

Autonomous Transaction Processing Serverless는 다중 모델, 다중 워크로드 데이터베이스 기술을 기반으로 구축되므로 기존 애플리케이션과 함께 작동하는 관계형, 공간, 그래프 또는 벡터 데이터 유형에 의존하는 기능을 추가할 수 있습니다.

물리적 구조

물리적 아키텍처에는 고가용성을 지원하는 보조 백업 리전이 포함된 OCI의 퍼블릭 및 프라이빗 서브넷이 포함됩니다.

이 아키텍처는 다음을 지원합니다.

  • 프론트엔드 계층
    • 응용 프로그램 사용자는 인터넷 또는 회사 네트워크에서 연결할 수 있습니다.
    • 사용자 접속은 OCI 웹 애플리케이션 방화벽을 사용하여 보안됩니다.
    • 응용 프로그램에 대한 사용자 연결은 복원성과 확장성을 높이기 위해 로드 밸런싱됩니다.
    • 로드 밸런서는 고가용성으로 배치됩니다.
  • 백엔드 계층
    • Application Server는 Instance Pool을 사용하여 고가용성(High Availability) 방식으로 배치됩니다.
    • 인스턴스 풀은 수평 확장성을 위해 자동 스케일링과 함께 사용됩니다.
    • 인스턴스 풀은 ATP 서버리스와 동일한 가용성 도메인에 인스턴스를 배치하여 애플리케이션 및 데이터베이스 코로케이션을 가지도록 구성되므로 연결 대기 시간이 최적화됩니다.
    • 인스턴스 풀은 ATP Serverless가 배치된 동일한 가용성 도메인의 결함 도메인에 인스턴스를 분산하여 작업 로드 복원성을 높이도록 구성됩니다.
  • 데이터베이스 티어
    • ATP Serverless는 Oracle RAC(Oracle Real Application Clusters) 및 서비스 인스턴스 기반의 여러 데이터베이스 노드로 고가용성을 제공합니다. 따라서 기본적으로 데이터베이스 계층은 가용성이 높고 탄력적입니다.
    • ATP Serverless에서 사용으로 설정된 MongoDB용 Oracle Database API를 사용하면 변경 없이 기존 애플리케이션 코드를 사용할 수 있습니다.
    • MongoDB용 Oracle Database API는 매우 탄력적이며 ATP Serverless가 내부적으로 복원성을 보장합니다.
    • ATP Serverless는 자동 스케일링을 사용하여 시스템 로드 증가 및 감소에 맞게 조정할 수 있습니다.
    • ATP 서버리스 비즈니스 연속성은 Oracle Autonomous Data Guard 기반 리전 간 재해 복구를 통해 달성됩니다.
    • 리전 간 Oracle Autonomous Data Guard 대기 복구 시간 목표(RTO)는 15분이고 복구 지점 목표(RPO)는 1분입니다.
  • 장애 복구
    • 두 리전은 전체 클라우드 배포를 위해 리전 간 재해 복구를 지원합니다.
    • 대기 영역은 클라우드 인스턴스가 미리 배치되어 총 RTO(복구 시간 목표)를 낮추는 웜 대기 영역을 지원합니다.
    • 기본 영역의 ATP Serverless에는 대기 영역에 Oracle Autonomous Data Guard 영역 간 피어가 있습니다.
    • 백엔드 계층 인스턴스 풀은 풀의 최소 인스턴스 양으로 미리 구성되며, 페일오버의 각 단계를 자동화하는 OCI 전체 스택 재해 복구 DR 계획은 페일오버 후 실행되어야 하는 컴퓨트 인스턴스 수를 변경할 수 있습니다. 측정항목 기반 자동 스케일링 구성은 풀의 최소 및 최대 인스턴스 수와 스케일 아웃 및 인에 사용되는 측정항목을 결정하기 위해 정의됩니다.
    • 대기 영역은 전체 복구 시간 목표를 줄이기 위해 유사한 토폴로지와 함께 배치됩니다.
    • OCI Full Stack Disaster Recovery는 대기 영역으로의 전체 스택 페일오버 및 기본 영역으로의 폴백을 자동화합니다.
  • 네트워킹
    • 두 영역에 배치된 동적 경로 지정 게이트웨이는 피어링됩니다.
    • 온프레미스 연결은 중복성을 위해 Oracle Cloud Infrastructure FastConnect 및 사이트 간 VPN을 모두 활용합니다.
    • 온프레미스 및 인터넷에서 수신되는 모든 트래픽은 먼저 허브 VCN으로 라우팅된 다음 워크로드 VCN으로 라우팅됩니다.
    • 허브 및 스포크 네트워크 설계를 사용하여 보안 상태를 높이고 다른 워크로드 VCN을 수용합니다.
    • 서비스는 보안 태세를 높이기 위해 프라이빗 엔드포인트로 배포됩니다.
    • JSON 작업 로드 VCN은 보안 상태를 높이기 위해 여러 전용 서브넷으로 분리됩니다.
  • 보안
    • 모든 데이터는 전송 중 및 미사용 상태입니다.
    • 단순성을 위해 이 배포에 명시되지 않은 잠재적인 설계 개선에는 전체 CIS 호환 랜딩 존을 사용하고 허브 VCN에 배포된 네트워크 방화벽을 활용하는 것이 포함됩니다. 네트워크 방화벽은 모든 트래픽을 검사하고 정책을 적용하여 전반적인 보안 상태를 개선합니다.


mongodb-atp-s-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 Autonomous Transaction Processing Serverless

    Oracle Autonomous Transaction Processing Serverless는 트랜잭션, 분석 및 일괄 처리 워크로드를 동시에 실행하도록 최적화된 완전 자동화된 데이터베이스 서비스입니다. 성능을 가속화하기 위해 행 형식, 인덱스 및 데이터 캐싱용으로 사전 구성되어 있으며 확장성, 가용성, 투명한 보안 및 실시간 운영 애널리틱스를 제공합니다. 애플리케이션 개발자와 DBA는 기능이나 원자성, 일관성, 격리 및 내구성(ACID) 속성을 희생하지 않고도 빠르고 쉽고 비용 효율적으로 애플리케이션을 개발하고 배포할 수 있습니다.

  • Full Stack Disaster Recovery

    Oracle Cloud Infrastructure Full Stack Disaster Recovery는 인프라, 미들웨어, 데이터베이스, 애플리케이션 등 애플리케이션 스택의 모든 층에 대해 포괄적인 재해 복구 기능을 제공하는 통합관리 및 관리 서비스입니다.

  • 오브젝트 스토리지

    OCI Object Storage는 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 정형 및 비정형 데이터에 대한 액세스를 제공합니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 안전하고 안전하게 데이터를 저장할 수 있습니다. 성능 또는 서비스 안정성이 저하되지 않고 스토리지를 확장할 수 있습니다.

    신속하고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보관하며 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.

  • Oracle Database API for MongoDB

    MongoDB용 Oracle Database API를 사용하면 애플리케이션이 MongoDB 드라이버, 도구 및 SDK를 사용하여 Oracle Database의 JSON 문서 모음과 상호 작용할 수 있습니다.

물리적 구조 변형

ATP Serverless가 제공하는 완전 관리형 MongoDB API는 관리가 용이하기 때문에 대부분의 워크로드에 가장 적합한 솔루션입니다. 이 물리적 구조 변형은 각 응용 프로그램 서버에서 실행되는 고객 관리 Oracle REST Data Services 배치를 사용합니다.

Oracle REST Data Services의 구성 및 관리를 수동으로 제어해야 하는 요구 사항이 있는 경우 고객 관리 Oracle REST Data Services를 사용할 수 있습니다. 예를 들어, 응용 프로그램이 더 큰 연결 풀을 사용하도록 허용합니다.

주:

특정 작업 로드 요구 사항이 있는 경우 이 구조 변형을 사용합니다. 고급 사용자만 이 구조 변형을 배치해야 합니다.

이 절에서는 이전에 설명된 물리적 아키텍처와 비교한 차이점만 설명하므로 달리 명시되지 않는 한 모든 물리적 아키텍처 설계 원칙이 유효합니다.

아래 아키텍처 다이어그램은 변형이 배포되는 방식을 보여줍니다. 단순성을 위해 JSON 작업 로드 VCN에 배포된 클라우드 리소스만 표시됩니다. 나머지 배포는 이전에 설명한 것과 동일하기 때문입니다.



mongodb-atp-s-arch-variant-oracle.zip

다음은 변형의 프론트 엔드 계층입니다.
  • 백엔드 응용 프로그램 코드는 인스턴스 풀의 일부인 응용 프로그램 서버에 배치됩니다.
  • 수신되는 사용자 요청은 로드 밸런서에 의해 분산되므로 프론트 엔드 계층은 수평 확장 가능하며 단일 장애 지점이 없습니다.
  • 고객 관리형 Oracle REST Data Services는 각 애플리케이션 서버에 설치되며 MongoDB API를 사용하도록 구성되므로 애플리케이션이 MongoDB 도구 및 드라이버를 사용하여 데이터베이스에 연결할 수 있습니다.
  • 고객 관리형 Oracle REST Data Services는 대규모 연결 풀을 구성하거나 다른 데이터베이스 서비스를 사용하는 등 비기능적 작업 로드 요구 사항에 맞게 조정되도록 구성됩니다.
  • 백엔드 코드와 고객 관리형 Oracle REST Data Services는 모두 풀에서 사용하는 인스턴스 구성에 사전 설치 및 사전 구성되어 있으므로 인스턴스가 풀에 추가될 때마다 인스턴스 프로비저닝 후 백엔드를 실행하고 데이터베이스에 연결할 수 있습니다.

권장사항

다음 권장 사항을 시작점으로 사용하여 작업 로드를 더욱 향상시키고 발전시킵니다. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.

다음 사항을 고려하십시오.

  • 애플리케이션 배치

    애플리케이션이 컨테이너에서 실행될 수 있는 경우 Oracle Cloud Infrastructure Kubernetes Engine(OKE)과 함께 컨테이너 기반 배포를 사용합니다.

  • 보안
    • Oracle Data Safe를 사용하여 작업 로드 보안 상태를 더욱 높이고 데이터베이스 감사를 수행할 수 있습니다.
  • 관찰성
    • OCI Audit을 사용하여 Oracle Autonomous Database Serverless 이외의 모든 OCI 서비스에 대한 포렌식 감사를 수행할 수 있습니다.
    • OCI Monitoring, OCI Logging 및 OCI Logging Analytics를 사용하여 환경 운영 상태를 완벽하게 파악할 수 있습니다.
  • 운영 효율성
    • ATP 서버리스 JSON 작업 로드가 비용 효율성 향상을 위해 더 넓은 데이터베이스 플리트의 일부인 경우 탄력적 풀을 사용합니다.
    • Oracle Cloud Infrastructure Database Management를 사용으로 설정합니다. 이 서비스는 ATP 서버리스 인스턴스를 간소화하기 위한 포괄적인 데이터베이스 성능 모니터링 및 관리 기능을 제공합니다.
  • 애플리케이션 진화
    • 신뢰할 수 있는 실시간 데이터 분석을 위해 데이터베이스에서 데이터를 이동하지 않고도 SQL 및 프론트엔드(예: APEX 또는 Oracle Analytics Cloud)를 사용하여 ATP Serverless에서 운영 분석 및 실시간 보고를 배포할 수 있습니다.
    • ATP Serverless 및 Oracle Machine Learning을 사용하여 데이터를 이동하지 않고 JSON 데이터로 모델을 구축하고 교육하고 기존 워크로드와 함께 모델을 배포하여 효율적인 추론을 수행할 수 있습니다.
    • 애플리케이션 코어 이외의 추가 사용 사례는 Oracle Autonomous Database Select AI 및 JSON 쿼리 및 메타데이터 보유 데이터베이스 뷰 사용을 고려해 보세요. 이를 통해 사용자는 자연어를 사용하여 JSON 데이터를 쿼리할 수 있습니다.
    • ATP Serverless를 사용하여 추가 워크로드 기능 및 유연성을 위해 추가 데이터 유형(관계형, 벡터, 공간 또는 그래프)을 저장할 수 있습니다.

승인

  • 작성자: José Cruz
  • 기여자: Massimo Castelli, Simon Griffith, Hermann Baer, Matt DeMarco, Julian Dontcheff