이벤트로 트리거되는 서버리스 응용 프로그램 배치

Oracle FunctionsOracle Cloud Infrastructure에 구축되어 Fn Project 오픈 소스 엔진이 탑재된 서버리스의 확장성이 뛰어난 완전 관리형 플랫폼입니다. 개발자는 기본 인프라의 프로비저닝 또는 관리를 걱정하지 않고도 비즈니스 가치를 창출하는 코드를 작성하고 배포할 수 있습니다. Oracle Functions는 Docker 컨테이너 이미지로 패키징된 기능을 갖춘 컨테이너 전용 기능입니다.

구조

이 참조 아키텍처는 Oracle Cloud Infrastructure Events 서비스를 사용하여 Oracle Functions를 호출합니다. 이 서비스는 Oracle Cloud Infrastructure Object Storage의 변경사항에 자동으로 응답합니다. 샘플 이미지를 오브젝트 스토리지에 업로드하면 이벤트 서비스가 트리거되며 이 서비스는 Oracle Functions를 호출합니다. Fn Project는 대부분의 프로그래밍 언어를 지원합니다. 이 아키텍처는 기능에 있는 Java를 사용하여 업로드된 이미지에서 메타데이터를 추출하고 Oracle Cloud Infrastructure Object Storage에 저장합니다.

다음 다이어그램은 이 참조 아키텍처를 보여줍니다.

다음은 serverless-oci.png에 대한 설명입니다.
serverless-oci.png 그림에 대한 설명

serverless-oci-oracle.zip

Oracle Functions 아키텍처에는 다음과 같은 구성 요소가 있습니다.

  • 영역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 현지화된 지리적 영역입니다. 지역은 다른 지역에 독립적이며, 거리가 먼 나라 전체나 대륙을 구분할 수 있습니다.

  • 가용성 도메인

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

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정하는 사용자 정의 가능한 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN은 네트워크 환경에 대한 완벽한 제어를 제공합니다. VCN에는 VCN을 생성한 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 영역 또는 가용성 도메인으로 범위가 지정될 수 있는 서브넷으로 분할할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속 주소 범위로 구성됩니다. 서브넷 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

    이 참조 아키텍처의 기능은 공용 지역별 서브넷에 배치됩니다.

  • Oracle Functions

    Oracle Functions를 사용하면 코드를 배포하거나 직접 호출하거나 이벤트에 대한 응답으로 트리거할 수 있습니다. Oracle Functions는 이벤트 서비스가 이를 호출하고, 이미지를 처리하고, 메타데이터를 오브젝트 스토리지에 다시 저장하면 트리거됩니다. Oracle FunctionsOracle Cloud Infrastructure Registry에서 호스팅되는 Docker 컨테이너를 사용합니다.

  • 이벤트

    Oracle Cloud Infrastructure 서비스는 리소스 변경을 나타내는 구조화된 메시지인 이벤트를 내보냅니다. 이벤트에는 만들기, 읽기, 업데이트 또는 삭제(CRUD) 작업, 리소스 수명 주기 상태 변경, 리소스에 영향을 주는 시스템 이벤트가 포함됩니다. 백업이 완료되거나 실패하는 경우 또는 오브젝트 스토리지 버킷에 있는 파일이 추가, 업데이트 또는 삭제될 때 이벤트를 제출할 수 있습니다.

  • 객체 스토리지

    Oracle Cloud Infrastructure Object Storage는 안정적이고 비용 효율적인 데이터 내구성을 제공하는 인터넷 규모의 고성능 스토리지 플랫폼입니다. 오브젝트 스토리지는 애널리틱스 데이터 및 이미지, 비디오와 같은 리치 컨텐츠 등 모든 컨텐츠 유형의 비정형 데이터를 무제한 저장할 수 있습니다. 두 개의 고유 스토리지 계층은 자주 액세스되는 "핫" 스토리지(표준)와 자주 액세스되지 않는 "콜드" 스토리지(아카이브)의 필요성을 해결합니다. 표준 오브젝트 스토리지는 빠르고 즉시 자주 접근해야 하는 데이터를 위한 것입니다. 아카이브 스토리지는 액세스가 거의 필요하거나 전혀 필요하지 않지만 장기간 보존되고 보존되어야 하는 데이터를 위한 것입니다.

권장사항

요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다. 다음 권장 사항을 시작점으로 사용합니다.

  • VCN

    VCN을 생성할 때 VCN의 서브넷에 연결하려는 리소스 수를 기반으로 필요한 CIDR 블록 수 및 각 블록의 크기를 확인하십시오. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    VCN을 생성한 후에는 해당 CIDR 블록을 변경, 추가 및 제거할 수 있습니다.

    이 아키텍처는 공용 VCN을 사용하여 함수를 배포합니다. 이 함수는 VCN의 공용 지역별 서브넷에 호스팅됩니다. 전용 VCN을 사용할 수도 있습니다. 이 경우 인터넷에 액세스하려면 NAT 게이트웨이를 사용해야 합니다.

  • Oracle Functions

    이 구조에서는 함수를 개발하기 위해 Java 프로그래밍이 사용되었습니다. Fn Project는 여러 프로그래밍 언어를 지원하므로 원하는 언어를 사용하여 함수를 개발하고 배포할 수 있습니다.

  • 객체 스토리지

    이 아키텍처는 표준 오브젝트 스토리지를 사용하여 이미지를 업로드하고 저장하므로 오브젝트 생성 시 이벤트 서비스가 해당 이미지를 선택할 수 있습니다. 오브젝트 스토리지는 Functions 프로세스 후 오브젝트에 대한 메타데이터를 저장합니다.

  • 이벤트

    이 아키텍처에서는 오브젝트 스토리지 생성 시 변경사항을 수신하도록 Oracle Cloud Infrastructure Events 서비스가 구성됩니다. 이 서비스는 오브젝트 스토리지에 오브젝트가 업로드된 후 호출되어 처리를 위해 함수를 호출합니다.

고려 사항

  • 가용성

    이벤트 서비스는 Government Cloud 영역 내의 지역에서 사용할 수 없습니다.

  • 관리 효율성

    이 구조는 예제 Java 응용 프로그램을 사용하여 함수를 작성합니다. 그러나 선택한 프로그래밍 언어를 사용할 수 있습니다.

  • 보안

    정책을 사용하여 회사에서 보유한 Oracle Cloud Infrastructure 리소스에 접근할 수 있는 사용자와 방법을 제한합니다.

    오브젝트 스토리지의 경우 암호화는 기본적으로 사용으로 설정되며 끌 수 없습니다.

    Oracle Functions에 배포된 모든 기능에 대한 접근은 Oracle Cloud Infrastructure Identity and Access Management(IAM)를 통해 제어됩니다. IAM을 사용하면 함수 관리와 함수 호출 권한을 모두 특정 사용자와 사용자 그룹에 할당할 수 있습니다.

  • 비용

    기능이 실행되는 동안 사용한 리소스에 대해서만 비용을 지불합니다.

배치

이 참조 아키텍처에 대한 Terraform 코드는 GitHub에서 제공됩니다. 한 번의 클릭으로 코드를 Oracle Cloud Infrastructure Resource Manager로 가져와서 스택을 생성하고 배포할 수 있습니다. 또는 GitHub에서 컴퓨터로 코드를 다운로드하고, 코드를 사용자 정의하고, Terraform CLI(명령행 인터페이스)를 사용하여 구조를 배포할 수 있습니다.

  • Oracle Cloud Infrastructure Resource Manager를 사용하여 배치합니다.
    1. Oracle Cloud에 배치을 누릅니다.

      아직 사인인하지 않은 경우 테넌시 및 사용자 인증서를 입력합니다.

    2. 약관을 검토 및 수락합니다.
    3. 스택을 배치할 지역을 선택합니다.
    4. 화면 프롬프트 및 지침에 따라 스택을 만듭니다.
    5. 스택을 생성한 후 Terraform 작업을 누르고 계획을 선택합니다.
    6. 작업이 완료될 때까지 기다린 다음 계획을 검토합니다.

      변경하려면 [스택 세부정보] 페이지로 돌아가서 스택 편집을 누르고 필요한 변경을 수행합니다. 그런 다음 계획 작업을 다시 실행합니다.

    7. 추가 변경이 필요하지 않은 경우 스택 세부정보 페이지로 돌아가서 Terraform 작업을 누르고 적용을 선택합니다.
  • GitHub에서 Terraform 코드를 사용하여 배포합니다.
    1. GitHub로 이동합니다.
    2. 저장소를 로컬 컴퓨터에 복제하거나 다운로드합니다.
    3. README 문서의 지침을 따릅니다.

로그 변경

이 로그에는 중요한 변경 사항만 나열됩니다.