주:

확장 가능한 클라우드 전용 플로우로 Oracle Cloud Infrastructure Object Storage에서 파일 처리

소개

응용 프로그램에서는 대용량 파일을 처리해야 하는 경우가 많습니다. 과거에는 일괄 처리 형태로 수행되었지만, 새로운 기술과 클라우드의 출현으로 많은 직렬 프로세스를 병렬 프로세스로 변환할 수 있게 되었습니다. 메시지 대기열, Kubernetes 클러스터 및 이벤트 기반 아키텍처의 사용은 대용량 프로세싱을 최대한 활용하는 데 널리 사용되는 기술 및 아키텍처 중 일부입니다.

Oracle Cloud Infrastructure(OCI)에는 확장성과 비용 절감을 지원하는 리소스가 있습니다. 클라우드 네이티브 서비스를 살펴보겠습니다.

이 자습서에서는 애플리케이션이 OCI Object Storage의 버킷에 파일을 배치할 수 있는 대량의 파일을 처리하는 매우 일반적인 방법을 볼 수 있으며, 이러한 파일이 배치되면 함수가 이 파일의 URL을 OCI Streaming에 쓰도록 트리거할 수 있는 이벤트가 생성됩니다.

참고: 이 솔루션은 일부 소스 애플리케이션에서만 OCI Streaming에 파일 콘텐츠를 저장하는 반면 애플리케이션에서는 이 콘텐츠를 읽지만 Kakfa 대기열 내에서 대용량 데이터를 전송하는 것은 바람직하지 않습니다. 이를 위해 접근 방법은 클레임 확인이라는 패턴을 사용합니다. 이 패턴은 메시지 대기열을 통해 파일을 전송하는 대신 제안과 똑같이 수행됩니다. 이 파일에 대한 참조가 전송됩니다. 파일 처리를 담당할 애플리케이션에 파일 읽기를 위임합니다.

이 사용지침서에는 OCI Object Storage, Events Service, Functions, Streaming 등의 구성요소가 포함되어 있습니다.

이 체인이 끝나면 스트리밍 대기열을 사용하는 응용 프로그램이 있지만 파일이 처리되는 방법에 대해서는 설명하지 않습니다.

img.png

목표

필요 조건

작업 1: OCI 스트리밍 인스턴스 생성

OCI Streaming은 관리형 스트리밍 서비스와 같은 Kafka 서비스입니다. Kafka API 및 일반 SDK를 사용하여 애플리케이션을 개발할 수 있습니다. 이 작업에서는 OCI Streaming 인스턴스를 생성하고 두 애플리케이션에서 모두 실행되도록 구성하여 대량의 데이터를 게시하고 소비합니다.

  1. OCI 콘솔에 로그인하여 분석 및 AI스트림을 누릅니다.

  2. 구획을 선택하고 스트림 생성을 누릅니다.

    생성-stream.png

  3. 스트림 인스턴스의 스트림 이름을 입력하고 다른 매개변수를 기본값으로 유지합니다. 생성을 눌러 인스턴스를 초기화하고 활성 상태가 될 때까지 기다립니다.

    저장-생성-stream.png

    참고:

    • 스트리밍 생성 프로세스에서 기본 스트림 풀 자동 생성을 선택하여 기본 풀이 자동으로 생성됩니다.

    • 전용 서브넷에 스트림 인스턴스를 생성할 수 있습니다. 이 경우 작업 4의 함수는 동일한 전용 서브넷에 있거나 전용 서브넷 스트림 인스턴스에 액세스할 수 있는 서브넷에 있어야 합니다. VCN, 서브넷, 보안 목록, 서비스 게이트웨이 또는 기타 보안 구성요소를 확인합니다. 함수가 OCI Streaming 인스턴스에 액세스할 수 있는지 확인합니다.

  4. DefaultPool 링크를 누릅니다.

    default-pool-option.png

  5. Kafka 접속 설정을 누르고 접속 설정을 확인합니다. 다음 작업에서 필요한 정보를 기록해 둡니다.

    stream-conn-settings.png

    카프카-conn.png

작업 2: OCI 오브젝트 스토리지 버킷 생성

버킷을 생성해야 합니다. 버킷은 오브젝트 저장을 위한 논리적 컨테이너이므로 이 데모에 사용된 모든 파일은 이 버킷에 저장됩니다.

  1. OCI 콘솔을 열고 스토리지, 버킷으로 이동합니다. 버킷 섹션에서 구획을 선택합니다. 구획은 태스크 1에서 생성된 OCI 스트리밍 인스턴스와 동일합니다.

    선택-compartment.png

  2. 버킷 생성을 누르고 버킷 이름을 입력합니다. 다른 매개변수를 기본값으로 유지하고 생성을 누릅니다.

    생성-bucket.png

    생성된 버킷을 확인할 수 있습니다.

    버킷-dataflow.png

    주: 버킷에 대한 OCI IAM 정책을 검토하십시오. 데모 애플리케이션에서 이러한 버킷을 사용하려면 정책을 설정해야 합니다. 자세한 내용은 Object Storage 개요OCI IAM 정책을 참조하십시오.

작업 3: OCI 이벤트 서비스에 대한 OCI 오브젝트 스토리지 버킷 활성화

버킷에서 이벤트를 내보내도록 설정해야 합니다. 따라서 버킷 세부정보를 누르고 객체 이벤트 편집 제출 링크를 검색하여 활성화합니다.

img_8.png

작업 4: OCI 함수 생성

다음 작업을 실행하려면 OCI_Streaming_Claim_Check.zip에서 코드를 다운로드합니다.

작업 5: OCI 이벤트 구성

이벤트 규칙을 구성하여 버킷 정보를 가져오는 함수를 트리거하고 OCI Streaming으로 전송합니다.

  1. 규칙에 대해 동일한 구획을 선택하고 규칙 생성을 누릅니다.

    img_10.png

  2. 다음 정보를 입력합니다.

    1. 규칙 조건 섹션에서

      • 조건: Event Type.
      • 서비스 이름: Object Storage.
      • 이벤트 유형: Object-Create, Object-Delete, Object-Update.
    2. 작업 섹션에서 다음을 수행합니다.

      • 작업 유형: Functions.
      • 함수 구획: <your function compartment name>.
      • 함수 애플리케이션: <your function app, in this example ocistreaming-app>.
      • 함수: fn_stream.

    img_9.png

작업 6: 이벤트 회로 테스트

참고: 전용 네트워크의 경우 OCI Streaming의 동일한 전용 서브넷에 연결된 배스천에서 테스트 코드를 실행해야 합니다.

OCI_Streaming_Claim_Check.zip 소스 코드 패키지에서 monitoring이라는 폴더와 consume.py라는 파일을 찾을 수 있습니다. 이 코드를 사용하여 솔루션이 제대로 작동하는지 모니터링하고 테스트할 수 있습니다.

코드를 구성해야 합니다.

img_11.png

스트림 매개변수를 구성한 후 코드를 실행하고 회로(버킷, 이벤트, 함수 및 스트리밍)를 확인할 수 있습니다.

img_12.png

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.