OCI-Native Services 및 MLflow를 사용하여 OCI에서 확장 가능한 MLOps 파이프라인 구축

이 참조 아키텍처는 Oracle Cloud Infrastructure(OCI)에서 확장 가능하고 자동화된 MLOps 파이프라인을 구현하는 방법을 설명합니다.

이 아키텍처는 조직이 일관성, 거버넌스, 속도, 재현성, 자동화된 배포, 모델 수명 주기 관리 및 관찰 가능성을 갖춘 머신 러닝 모델을 운영할 수 있도록 지원합니다.

이 솔루션은 OCI DevOps, Oracle Cloud Infrastructure Data Science, Oracle Cloud Infrastructure Kubernetes Engine(OKE)을 통합하여 머신 러닝 수명 주기를 엔드투엔드 방식으로 자동화합니다. 교육용 워크로드는 DevOps 파이프라인에 의해 트리거되는 Oracle Cloud Infrastructure Data Science 작업으로 컨테이너화되고 실행되며, OKE에 배포된 MLflow는 실험 추적 및 모델 레지스트리 기능을 제공하며, OCI Object Storage에 저장된 아티팩트를 제공합니다. 학습 후 OCI DevOps는 MLflow 모델 레지스트리에서 OKE로 승인된 최신 모델을 자동으로 배포하고, MLflow 및 추론 서비스 모두에 대한 액세스는 OCI 로드 밸런서를 통해 제공됩니다.

시작하기 전에

이 솔루션을 배포하기 전에 다음 필수 조건이 충족되었는지 확인하십시오.

  • 서비스 제한이 충분한 활성 Oracle Cloud Infrastructure 테넌시입니다.
  • 개발, 테스트 및 운용과 같은 환경 격리를 위해 구성된 구획입니다.
  • OCI Identity and Access Management 정책:
    • OCI DevOps
    • Oracle Cloud Infrastructure Data Science
    • 확인
    • OCI 오브젝트 스토리지
    • OCI Vault
    • OCI 통지
    • OCI 로드 밸런서
  • 다음과 같이 구성된 VCN(가상 클라우드 네트워크)
    • OKEOracle Cloud Infrastructure Data Science용 프라이빗 서브넷입니다.
    • 외부 액세스가 필요한 경우 OCI 로드 밸런서의 공용 서브넷입니다.
    • OCI Service Gateway.
    • NAT 게이트웨이입니다.
  • 다음에 대해 프로비전닝된 OKE 클러스터:
    • MLOps 서비스로서의 MLflow.
    • 추론 작업 로드입니다.
  • OKE에 배포된 MLflow는 다음과 같이 구성됩니다.
    • 아티팩트 저장소로서의 OCI Object Storage.
    • 모델 레지스트리가 사용으로 설정되었습니다.
  • OCI DevOps 프로젝트:
    • 소스 저장소입니다.
    • 파이프라인 구축 및 배포
  • OCI 통지 토픽 및 구독이 구성되었습니다.
  • Docker, Kubernetes 및 머신 러닝 워크플로우에 대해 잘 알고 있습니다.

구조

이 아키텍처는 Oracle Cloud Infrastructure DevOps가 교육 컨테이너를 구축하고 모델 교육을 위해 Oracle Cloud Infrastructure Data Science 작업을 트리거하는 자동화된 MLOps 파이프라인을 구현합니다.

교육 작업은 OCI 컨테이너 레지스트리(OCIR)에서 컨테이너 이미지를 가져오고 Oracle Cloud Infrastructure Object Storage에서 Oracle Cloud Infrastructure Service Gateway까지 데이터세트에 접근합니다. 실행 중인 동안 학습 측정지표 및 아티팩트는 OCI Kubernetes Engine에서 실행되는 MLflow에 기록되며, 아티팩트는 OCI Object Storage에서 지속되어 내구성 및 확장성을 보장합니다.

교육이 완료되면 모델은 MLflow 모델 레지스트리에 등록되고 정의된 단계를 통해 승격됩니다. OCI DevOps는 승인된 최신 모델 버전을 검색하여 추론 서비스로서 OCI Kubernetes Engine에 배포하는 배포 파이프라인을 자동으로 트리거합니다. MLflow 서비스(MLOps 제어 플레인) 및 추론 엔드포인트는 모두 Oracle Cloud Infrastructure Load Balancer를 통해 노출되어 확장 가능한 통합 액세스 레이어를 제공합니다. Oracle Cloud Infrastructure Notifications는 파이프라인 전반에 걸쳐 빌드, 교육 및 배포 단계에 대한 실시간 업데이트를 제공합니다. 이 솔루션은 보안 VCN 내에서 실행되며, 프라이빗 네트워킹, 암호 관리를 위한 Oracle Cloud Infrastructure Vault, 관찰 가능성을 위한 Oracle Cloud Infrastructure LoggingOracle Cloud Infrastructure Monitoring을 사용합니다.

다음 다이어그램은 이 참조 구조를 보여줍니다.



auto-mlops-pipeline-ocidevops-arch-oracle.zip#GUID-3A0A729D-6AD6-4CC7-9EFA-51F02B8941EA

이 구조에는 다음과 같은 구성 요소가 있습니다.

  • 기반 구조
    • 가용성 도메인

      가용성 도메인은 한 지역 내의 독립형 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원 또는 냉각과 같은 인프라나 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 한 가용성 도메인의 장애가 해당 지역의 다른 가용성 도메인에 영향을 미치지 않아야 합니다.

    • 구획

      구획은 OCI 테넌시 내의 영역 간 논리적 분할 영역입니다. 구획을 사용하여 Oracle Cloud 리소스에 대한 사용 할당량을 구성, 제어 및 설정합니다. 지정된 컴파트먼트에서 액세스를 제어하고 리소스에 대한 권한을 설정하는 정책을 정의합니다.

    • 인터넷 게이트웨이

      인터넷 게이트웨이는 VCN의 공용 서브넷과 공용 인터넷 간의 트래픽을 허용합니다.

    • OCI 리전

      OCI 리전은 가용성 도메인을 호스팅하는 데이터 센터가 하나 이상 포함된 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 광대한 거리는 (국가 또는 대륙에서) 그들을 분리 할 수 있습니다.

    • 보안 목록

      각 서브넷에 대해 서브넷 내부 및 외부에서 허용되는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

    • 서비스 게이트웨이

      서비스 게이트웨이는 VCN에서 Oracle Cloud Infrastructure Object Storage와 같은 다른 서비스에 대한 액세스를 제공합니다. VCN에서 Oracle 서비스로의 트래픽은 Oracle 네트워크 패브릭을 통해 이동하며 인터넷을 순회하지 않습니다.

    • Tenancy

      테넌시는 OCI에 등록할 때 Oracle이 Oracle Cloud 내에서 설정하는 안전하고 격리된 파티션입니다. 테넌시 내에서 OCI에서 리소스를 생성, 구성 및 관리할 수 있습니다. 테넌시는 회사 또는 조직과 동의어입니다. 일반적으로 회사는 단일 테넌시를 가지며 해당 테넌시 내의 조직 구조를 반영합니다. 단일 테넌시는 일반적으로 단일 구독과 연관되며, 단일 구독에는 일반적으로 하나의 테넌시만 있습니다.

    • OCI 가상 클라우드 네트워크 및 서브넷

      VCN(가상 클라우드 네트워크)은 OCI 리전에 설정하는 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 사용하면 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 CIDR(클래스리스 도메인 간 경로 지정) 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 이 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속된 주소 범위로 구성됩니다. 썸네일의 크기는 생성 이후 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • OSN(Oracle Service Network)
    • OCI 로깅
      Oracle Cloud Infrastructure Logging은 클라우드의 리소스에서 다음과 같은 유형의 로그에 액세스할 수 있는 확장성이 뛰어난 완전 관리형 서비스입니다.
      • 감사 로그: OCI 감사에서 생성된 이벤트와 관련된 로그입니다.
      • 서비스 로그: OCI API Gateway, OCI Events, OCI Functions, OCI Load Balancer, OCI Object Storage, VCN 플로우 로그 등 개별 서비스에 의해 게시된 로그입니다.
      • 사용자정의 로그: 사용자정의 애플리케이션, 기타 클라우드 제공자 또는 온프레미스 환경의 진단 정보가 포함된 로그입니다.
    • OCI 모니터링

      Oracle Cloud Infrastructure Monitoring은 클라우드 리소스를 능동적이고 수동적으로 모니터링하고, 측정항목이 지정된 트리거를 충족할 때 알람을 사용하여 통지합니다.

    • OCI 통지

      OCI Notifications는 짧은 대기 시간 게시-구독 패턴을 사용하여 분산된 구성요소로 메시지를 브로드캐스트하고, OCI에서 호스팅되는 애플리케이션에 대해 안전하고 안정적이며 내구성이 뛰어난 메시지를 제공합니다.

    • Oracle Services Network

      OSN(Oracle Services Network)은 Oracle 서비스용으로 예약된 OCI의 개념적 네트워크입니다. 이러한 서비스에는 인터넷을 통해 연결할 수 있는 공용 IP 주소가 있습니다. Oracle Cloud 외부의 호스트는 Oracle Cloud Infrastructure FastConnect 또는 VPN Connect를 사용하여 전용으로 OSN에 액세스할 수 있습니다. VCN의 호스트는 서비스 게이트웨이를 통해 전용으로 OSN에 액세스할 수 있습니다.

    • OCI Vault

      Oracle Cloud Infrastructure Vault를 사용하면 데이터를 보호하는 암호화 키와 클라우드의 리소스에 대한 보안 액세스를 보호하는 데 사용하는 보안 인증서를 생성하고 중앙에서 관리할 수 있습니다. 기본 키 관리는 Oracle 관리 키입니다. 또한 OCI Vault를 사용하는 고객 관리형 키를 사용할 수도 있습니다. OCI Vault는 저장소 및 키를 관리할 수 있는 다양한 REST API 세트를 제공합니다.

    • OCI 웹 애플리케이션 방화쇠

      Oracle Cloud Infrastructure Web Application Firewall(WAF)은 로드 밸런서 또는 웹 애플리케이션 도메인 이름과 같은 적용 지점에 연결된 PCI(Payment Card Industry) 규격, 지역 기반 및 에지 적용 서비스입니다. WAF는 원치 않는 악의적인 인터넷 트래픽으로부터 애플리케이션을 보호합니다. WAF는 모든 인터넷 연결 엔드포인트를 보호하여 애플리케이션 전반에서 일관된 규칙 적용을 제공합니다.

  • 서비스 및 제품
    • OCI 데이터 사이언스

      Oracle Cloud Infrastructure Data Science는 데이터 과학 팀이 OCI에서 머신 러닝(ML) 모델을 구축, 교육 및 관리하는 데 사용할 수 있는 완전 관리형 서버리스 플랫폼입니다. Oracle Autonomous AI Lakehouse, Oracle Cloud Infrastructure Object Storage 등과 같은 다른 OCI 서비스와 쉽게 통합할 수 있습니다. 엔터프라이즈 신뢰할 수 있는 데이터를 신속하게 작동시켜 비즈니스 유연성을 높이는 고품질 머신 러닝 모델을 구축하고 평가할 수 있으며, ML 모델을 보다 쉽게 배포하여 데이터 기반 비즈니스 목표를 지원할 수 있습니다.

      데이터 과학 작업 기능을 통해 데이터 과학자는 완전 관리형 인프라에서 반복 가능한 머신 러닝 작업을 정의하고 실행할 수 있습니다.

      데이터 과학 모델 배포 기능을 통해 데이터 과학자는 학습된 모델을 완전 관리형 HTTP 엔드포인트로 배포하여 실시간으로 예측을 제공하고, 프로세스 및 애플리케이션에 인텔리전스를 주입하고, 비즈니스가 발생 시 관련 이벤트에 대응할 수 있습니다.

    • OCI DevOps

      Oracle Cloud Infrastructure DevOps(개발자 운영)는 개발자가 소프트웨어 개발 수명 주기를 간소화하고 자동화할 수 있는 완벽한 CI/CD(지속적 통합/지속적 제공) 플랫폼입니다. OCI DevOps는 개발자와 운영자가 공동으로 소프트웨어를 개발, 구축, 테스트 및 배포할 수 있게 해줍니다. 개발자와 운영자는 빌드, 테스트 및 배포 단계를 통한 소스 커밋 내역을 통해 전체 개발 수명 주기에 대한 가시성을 확보할 수 있습니다.

    • OCI Identity and Access Management

      Oracle Cloud Infrastructure Identity and Access Management(IAM)는 OCI 및 Oracle Cloud Applications에 대한 사용자 액세스 제어를 제공합니다. IAM API 및 사용자 인터페이스를 통해 ID 도메인 및 해당 도메인 내의 리소스를 관리할 수 있습니다. 각 OCI IAM ID 도메인은 독립형 ID 및 액세스 관리 솔루션 또는 다른 사용자 모집단을 나타냅니다.

    • Kubernetes 클러스터

      Kubernetes 클러스터는 컨테이너화된 애플리케이션을 실행하는 머신 세트입니다. Kubernetes는 해당 노드에서 컨테이너화된 워크로드 및 서비스를 관리할 수 있는 확장 가능한 이식 가능한 오픈 소스 플랫폼을 제공합니다. Kubernetes 클러스터는 작업자 노드 및 제어 플레인 노드로 구성됩니다.

    • 로드 밸런서

      Oracle Cloud Infrastructure Load Balancer는 단일 시작점에서 여러 서버로의 자동 트래픽 분산을 제공합니다.

    • OCI 오브젝트 스토리지

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

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

  • MLflow(Kubernetes Engine)

    MLflow는 실험 추적 및 모델 레지스트리를 포함한 ML 수명 주기를 관리하기 위한 오픈 소스 플랫폼입니다. 확장성을 위해 Kubernetes에 배포할 수 있습니다. 이 아키텍처에서 MLflow는 Kubernetes Engine에서 실행되고, 아티팩트를 OCI Object Storage에 저장하고, 모델 레지스트리를 프로덕션 모델의 소스로 유지 관리합니다. 모델 버전 관리, 거버넌스 및 제어 프로모션이 가능합니다.

  • OCI 컨테이너 레지스트리(OCIR)

    OCI Container Registry는 컨테이너 이미지 저장 및 관리를 위한 관리형 프라이빗 Docker 레지스트리입니다. 보안 액세스 제어를 위해 OCI ID 및 액세스 관리와 통합됩니다. 이 아키텍처에서는 버전 지정된 교육 및 컨테이너 이미지 제공을 저장합니다. 이러한 이미지는 Data Science 작업 및 Kubernetes Engine 배포에서 사용됩니다.

권장사항

이러한 권장 사항은 MLOps 파이프라인의 보안성, 확장성 및 유지 관리 용이성을 개선하는 데 도움이 됩니다.
  • VCN
    • VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수에 따라 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다.
    • 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용하고, Oracle Cloud Infrastructure의 다른 네트워크, 온프레미스 데이터 센터 또는 개인 연결을 설정하려는 다른 클라우드 공급자와 겹치지 않는 CIDR 블록을 선택합니다.
    • VCN을 생성한 후 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.
    • 서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려하십시오. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계로 사용될 수 있는 동일한 서브넷에 연결합니다.
    • 지역 서브넷을 사용합니다.
  • 보안
    • Oracle Cloud Guard를 사용하면 Oracle Cloud Infrastructure에서 리소스의 보안을 사전에 모니터링하고 유지 관리할 수 있습니다. Cloud Guard는 사용자가 정의할 수 있는 감지기 레시피를 사용하여 리소스의 보안 취약점을 검사하고 운영자 및 사용자가 위험한 작업을 모니터링합니다. 잘못된 구성 또는 안전하지 않은 작업이 감지되는 경우 Cloud Guard는 정의할 수 있는 응답기 레시피를 기반으로 수정 작업을 권장하고 해당 작업을 수행하는 데 도움을 줍니다.
    • 최대 보안이 필요한 리소스의 경우 Oracle은 보안 영역을 사용할 것을 권장합니다. 보안 영역은 모범 사례를 기반으로 하는 Oracle 정의 보안 정책 레시피와 연관된 컴파트먼트입니다. 예를 들어, 보안 영역의 리소스는 공용 인터넷에서 액세스할 수 없어야 하며 고객 관리 키를 사용하여 암호화해야 합니다. 보안 영역에서 리소스를 만들고 업데이트할 때 Oracle Cloud Infrastructure는 보안 영역 레시피의 정책에 대해 작업을 검증하고 정책을 위반하는 작업을 거부합니다.
  • Cloud Guard
    • 사용자정의 감지기 및 응답기 레시피를 생성하도록 Oracle에서 제공하는 기본 레시피를 복제하고 사용자정의합니다. 이러한 레시피를 사용하면 경고를 생성하는 보안 위반 유형과 경고에 대해 수행할 수 있는 작업을 지정할 수 있습니다. 예를 들어 가시성이 public으로 설정된 오브젝트 스토리지 버킷을 감지할 수 있습니다.
    • 테넌시 레벨에서 Oracle Cloud Guard를 적용하여 가장 광범위한 범위를 포괄하고 여러 구성을 유지 관리해야 하는 관리 부담을 줄입니다.
    • 관리 목록 기능을 사용하여 감지기에 특정 구성을 적용할 수도 있습니다.
  • NSG(네트워크 보안 그룹)
    • NSG를 사용하여 특정 VNIC에 적용되는 수신 및 송신 규칙 세트를 정의할 수 있습니다. NSG를 사용하면 VCN 서브넷 아키텍처를 애플리케이션의 보안 요구 사항과 분리할 수 있으므로 보안 목록 대신 NSG를 사용합니다.
  • 확인
    • MLflow 및 추론 워크로드를 별도의 네임스페이스에 배포합니다. 자동 스케일링을 사용으로 설정하고 작업 부하 격리를 위해 여러 노드 풀을 사용합니다. 수신 컨트롤러 또는 로드 밸런서를 사용하여 추론 서비스를 안전하게 노출합니다.
  • OCI 오브젝트 스토리지
    • 데이터세트, 학습된 모델, MLflow 아티팩트에 OCI Object Storage를 사용할 수 있습니다. 버전 지정 및 수명 주기 정책을 활성화하여 스토리지를 최적화하고 모델 계보를 유지 관리합니다.
  • Oracle Cloud Infrastructure Data Science
    • 교육에는 컨테이너화된 작업을 사용하여 재현성을 보장합니다. 프로덕션에서 수동 노트북 기반 워크플로우를 피하십시오. 실험 추적을 위해 MLflow를 통합합니다.
  • OCI 로드 밸런서
    • 로드 밸런서를 사용하여 MLflow UI/API 및 추론 엔드포인트를 노출합니다. 여러 서비스에 대한 리스너 및 백엔드 집합을 구성합니다. 보안 액세스를 위해 HTTPS를 사용하고 필요한 경우 DNS와 통합합니다.

고려사항

이러한 고려 사항은 MLOps 파이프라인의 주요 성능, 보안, 가용성 및 비용 요소를 요약합니다.

이 참조 구조를 배치할 때는 다음 사항을 고려하십시오.

  • 성능: 추론 작업 로드에 대해 OKE에서 자동 스케일링을 사용하고 교육에 대해 Data Science 작업 구성을 최적화합니다. MLflow가 오브젝트 스토리지 지원 아티팩트를 통해 적절하게 확장되고 로드 밸런서의 크기가 트래픽을 처리하도록 적절히 조정되는지 확인합니다.
  • 보안: 최소 권한의 OCI Identity and Access Management 정책을 적용하고 OCI Vault를 사용하여 암호 관리를 수행합니다. MLflow, OCI Object Storage 및 추론 엔드포인트에 대한 액세스를 제한합니다.
  • 가용성: 가용성 및 장애 도메인 전반에 배포합니다. OKE 고가용성 기능을 사용하고 MLflow 서비스가 복원력이 있는지 확인합니다.
  • 비용: 자동 스케일링을 사용하여 컴퓨트 사용을 최적화합니다. OCI Object Storage 및 적절한 크기의 OKE 노드 풀에서 수명 주기 정책을 적용합니다. 사용되지 않은 리소스를 종료합니다.

자세히 살펴보기

이러한 Oracle 설명서 리소스는 이 참조 아키텍처에서 사용되는 서비스에 대한 자세한 정보를 제공합니다.

이 아키텍처의 데이터 과학, OCI DevOps, OKE 및 관련 서비스에 대해 자세히 알아보려면 다음 리소스를 참조하십시오.

승인

  • 작성자: Prasanth Prasad
  • 기여자: Thangaraj, Karol Stuart