서버리스 인스턴스의 아키텍처 및 개념
이 주제에서는 IBM Analytics Engine 서버리스 인스턴스의 아키텍처를 보여주며 몇 가지 주요 개념 및 정의에 대해 설명합니다.
인스턴스 아키텍처
IBM Analytics Engine 서비스는 IBM Cloud® Identity and Access Management(IAM)를 사용하여 관리됩니다. IBM Cloud 계정 소유자에게 계정 관리자 역할이 지정됩니다.
IBM Cloud 계정을 사용하면 다음을 사용하여 서버리스 Analytics Engine 인스턴스를 프로비저닝하고 관리할 수 있습니다.
- IBM Cloud 콘솔
- CLI
- REST API
API 게이트웨이를 통해 액세스되는 제어 플레인의 Analytics Engine 마이크로서비스는 Spark 애플리케이션이 데이터 플레인의 격리된 네임스페이스에서 실행되는 동안 인스턴스 작성, 용량 프로비저닝, 사용자 정의, 런타임 관리를 처리합니다. 제출된 각 Spark 애플리케이션은 Spark 마스터와 실행기 노드의 조합인 자체 Spark 클러스터에서 실행됩니다. 격리 및 네트워크 액세스를 참조하십시오.
각 Analytics Engine 인스턴스는 인스턴스에서 실행되는 모든 애플리케이션이 액세스할 수 있는 인스턴스 관련 데이터에 대한 IBM Cloud Object Storage 인스턴스와 연관됩니다. 현재 모든 Spark 이벤트는 이 인스턴스에도 저장됩니다. Spark 애플리케이션 로그는 Log Analysis 로그 서버에 집계됩니다.
의 아키텍처 플로우 다이어그램
핵심 개념
IBM Analytics Engine 서버리스 인스턴스의 경우 필요에 따라 Apache Spark 클러스터를 스핀업하고 Spark 런타임 및 기본 Spark 구성 옵션을 사용자 정의할 수 있습니다.
다음 절에서는 서버리스 인스턴스를 프로비저닝할 때의 주요 개념에 대해 설명합니다.
IBM Analytics Engine 서비스 인스턴스
IBM Cloud® 서비스는 코드 또는 애플리케이션 관리 또는 모니터링 기능을 실행하기 위한 데이터베이스, 메시징 및 웹 소프트웨어와 같은 사용할 준비가 된 기능을 제공하는 클라우드 확장입니다. 서비스는 대개 설치 또는 유지보수가 필요하지 않고 애플리케이션을 작성하기 위해 결합될 수 있습니다. 서비스의 인스턴스는 특정 애플리케이션 또는 서비스에 예약된 자원으로 구성되는 엔티티입니다.
카탈로그에서 IBM Analytics Engine 을 작성할 때 서비스 인스턴스에 선택한 이름을 제공하고 인스턴스와 연관시킬 기본 Spark 런타임을 선택하고 인스턴스와 함께 사용할 기본 Spark 구성을 제공합니다. 또한 인스턴스 관련 데이터 전용으로 인스턴스에 첨부된 스토리지인 Instance home
를 지정해야 합니다.
참고:
- IBM Analytics Engine 서비스 인스턴스를 작성할 때 Spark 애플리케이션이 실행 중이거나 Spark 히스토리 서버에 액세스하지 않으면 비용이 발생하지 않습니다.
- 공용 엔드포인트를 통해 액세스되는 경우 IBM Cloud Object Storage 에 비용이 발생하고 IBM Analytics Engine 로그를 IBM Log Analysis에 전달할 수 있도록 설정하는 경우 비용이 발생합니다.
- IBM Cloud® 계정마다 허용되는 서비스 인스턴스 수와 지정된 IBM Analytics Engine 서비스 인스턴스에서 사용할 수 있는 CPU및 메모리 양에 대한 기본 한계가 있습니다. Analytics Engine 인스턴스에 대한 한계 및 할당량 을 참조하십시오. 이러한 한계를 조정해야 하는 경우 IBM 지원 티켓을 여십시오.
- IBM Analytics Engine 서비스 인스턴스에서 실행할 수 있는 Spark 애플리케이션의 수에는 제한이 없습니다.
기본 Spark 런타임
인스턴스 프로비저닝 시 사용할 Spark 버전을 선택할 수 있습니다. 현재 Spark 3.3 및 Spark 3.4중에서 선택할 수 있습니다. Spark 3.3 은 기본 버전으로 간주됩니다.
런타임에는 오픈 소스 Spark 2진이 포함되며 구성을 통해 인스턴스 작성을 빠르게 진행하고 인스턴스에서 Spark 애플리케이션을 실행할 수 있습니다. Spark 2진외에도 런타임에는 지리 공간적, 데이터 스키핑 및 Parquet 모듈 암호화 라이브러리도 포함되어 있습니다.
모든 Spark 런타임 버전에서 다음 언어로 작성된 Spark 애플리케이션을 제출할 수 있습니다.
- Scala
- Python
- R
다음 표는 Spark 런타임 버전 및 런타임 언어 버전을 표시합니다.
Spark 버전 | Apache Spark 릴리스 | 상태 | 지원되는 언어 |
---|---|---|---|
3.1 | 3.1.2 | 제거됨 (지원되지 않음) | Java 8, Scala 2.12, Python 3.10 및 R 4.2 |
3.3 | 3.3.2 | 기본 | Java 11, Scala 2.12, Python 3.10 및 R 4.2 |
3.4 | 3.4.1 | 최신 | Java 11, Scala 2.12, Python 3.10 및 R 4.2 |
런타임에어서 네트워크았한 보안 취약성이 없도록 언어 버전이 주기적으로 업그레이드됩니다. 애플리케이션을 제출할 때 항상 Spark 런타임 버전을 대체할 수 있습니다. 페이로드에 추가할 항목에 대한 세부사항은 애플리케이션 제출 시 런타임 Spark 버전 전달 을 참조하십시오.
인스턴스 홈
인스턴스 홈은 인스턴스 관련 데이터(예: 사용자 정의 애플리케이션 라이브러리 및 Spark 히스토리 이벤트)에 대한 인스턴스에 연결된 스토리지입니다. 현재는 IBM Cloud Object Storage만 인스턴스 홈에 허용됩니다. 이 인스턴스는 IBM Cloud® 계정의 인스턴스이거나 다른 계정의 인스턴스일 수 있습니다.
IBM Cloud 콘솔을 사용하여 인스턴스를 프로비저닝하면 IBM Cloud® 계정의 IBM Cloud Object Storage 인스턴스가 자동으로 감지되어 선택 가능한 목록에 표시됩니다. 계정에 IBM Cloud Object Storage 인스턴스가 없는 경우 REST API를 사용하여 인스턴스 작성 후 인스턴스 홈을 업데이트할 수 있습니다.
인스턴스 작성 후에는 인스턴스 홈을 변경할 수 없습니다. 액세스 키만 편집할 수 있습니다.
기본 Spark 구성
Analytics Engine 인스턴스를 프로비저닝할 때 기본 Spark 구성을 지정할 수 있습니다 ( IBM Analytics Engine 서버리스 인스턴스 프로비저닝 참조). 인스턴스에 제출된 Spark 애플리케이션에 구성이 자동으로 적용됩니다. 인스턴스를 작성한 후 구성을 업데이트할 수도 있습니다. Analytics Engine 인스턴스 세부사항 페이지, Analytics Engine Rest API 또는 IAE CLI 의 구성 섹션에서 구성을 편집할 수 있습니다. 인스턴스 레벨 기본값으로 지정된 값은 Spark 애플리케이션 제출 시 대체될 수 있습니다.
다양한 Apache Spark 구성에 대해 자세히 알아보려면 Spark 구성 을 참조하십시오.
서버리스 인스턴스 기능 및 실행 방법
다음 표에는 액세스 역할 및 실행 방법으로 지원되는 서버리스 인스턴스 기능이 표시되어 있습니다.
오퍼레이션 | 액세스 역할 | IBM 콘솔 | API | CLI |
---|---|---|---|---|
인스턴스 프로비저닝 | 관리자 | |||
인스턴스 삭제 | 관리자 | |||
사용자 권한 부여 | 관리자 | |||
인스턴스 홈 스토리지 관리 | 관리자 | |||
로깅 구성 | 관리자 개발자 Devops |
사용할 수 없음 | ||
Spark 애플리케이션 제출 | 관리자 개발자 |
사용할 수 없음 | ||
제출된 Spark 애플리케이션 목록 보기 | 관리자 개발자 DevOps |
사용할 수 없음 | ||
제출된 Spark 애플리케이션 중지 | 관리자 개발자 DevOps |
사용할 수 없음 | ||
라이브러리 사용자 정의 | 관리자 개발자 |
사용할 수 없음 | 사용할 수 없음 | |
작업 로그 액세스 | 관리자 개발자 DevOps |
Log Analysis 콘솔에서 | 해당사항 없음 | 해당사항 없음 |
인스턴스 세부사항 보기. 표시된 세부사항은 액세스 역할에 따라 다를 수 있습니다. | 관리자 개발자 DevOps |
|||
Spark 히스토리 서버 관리 | 관리자 개발자 |
|||
액세스 출입내역니다. | 관리자 개발자 DevOps |