> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sifi.life/llms.txt
> Use this file to discover all available pages before exploring further.

# 클러스터 종류 — 클러스터란?과 클러스터 종류 비교

> 이 문서는 **[컴퓨트](/training/04-compute-and-workspace/overview)** 섹션의 일부입니다.

## 클러스터란?

> 💡 **클러스터(Cluster)** 란 Spark 코드를 실행하기 위한 **컴퓨팅 리소스의 집합** 입니다. 하나의 Driver 노드와 0개 이상의 Worker 노드로 구성됩니다.

Databricks에서 노트북의 코드를 실행하거나 ETL 작업을 수행하려면 반드시 클러스터가 필요합니다. 어떤 종류의 클러스터를 선택하느냐에 따라 비용, 성능, 관리 방식이 달라집니다.

***

## 클러스터 종류 비교

Databricks는 세 가지 유형의 클러스터를 제공합니다.

| 클러스터 유형                   | 용도                  | 특징             |
| ------------------------- | ------------------- | -------------- |
| All-Purpose Cluster (대화형) | 노트북에서 코드 실행, 데이터 탐색 | 수동 생성, 공유 가능   |
| Job Cluster (작업 전용)       | 스케줄된 ETL/배치 작업      | Job이 자동 생성/삭제  |
| SQL Warehouse             | SQL 쿼리 전용           | SQL/BI 도구에 최적화 |

| 비교 항목      | All-Purpose Cluster | Job Cluster    | Serverless     |
| ---------- | ------------------- | -------------- | -------------- |
| **용도**     | 대화형 개발, 탐색          | 예약된 작업 실행      | 노트북, SQL, Jobs |
| **생성 방식**  | 사용자가 수동 생성          | Job 실행 시 자동 생성 | 자동 관리          |
| **수명**     | 수동 종료 또는 자동 종료      | 작업 완료 후 자동 종료  | 유휴 시 자동 해제     |
| **시작 시간**  | 3\~5분               | 3\~5분          | 수 초            |
| **비용**     | 실행 중 계속 과금          | 작업 시간만 과금      | 사용량(처리량) 기준    |
| **공유**     | 여러 사용자가 공유 가능       | 하나의 작업 전용      | 사용자별 격리        |
| **설정 자유도** | 높음 (노드 타입, 라이브러리 등) | 높음             | 낮음 (자동 관리)     |

***

## All-Purpose Cluster (대화형 클러스터)

### 언제 사용하나요?

* 노트북에서 코드를 작성하고 **대화형으로 결과를 확인** 할 때
* 데이터를 탐색하고 분석하는 **개발 단계** 에서
* 여러 팀원이 하나의 클러스터를 **공유하여 협업** 할 때

### 특징

| 항목    | 설명                                     |
| ----- | -------------------------------------- |
| 생성    | 사용자가 Compute 메뉴에서 직접 생성합니다             |
| 종료    | 수동으로 종료하거나, 일정 시간 유휴 후 자동 종료됩니다        |
| 공유    | 여러 노트북이 동시에 연결될 수 있습니다                 |
| 재시작   | 종료 후 재시작하면 기존 설정이 유지됩니다                |
| 비용 주의 | 사용하지 않아도 실행 중이면 과금됩니다. 자동 종료 설정이 중요합니다 |

```python theme={null}
# All-Purpose 클러스터에서 대화형 작업 예시
df = spark.read.table("catalog.schema.sales")
display(df.describe())  # 데이터 탐색
```

***

## Job Cluster (작업용 클러스터)

### 언제 사용하나요?

* **스케줄된 ETL 파이프라인** 을 실행할 때
* **프로덕션 워크로드** 를 안정적으로 운영할 때
* 비용을 최소화하면서 **일회성 배치 작업** 을 실행할 때

### 특징

| 항목 | 설명                                          |
| -- | ------------------------------------------- |
| 생성 | Job(작업)이 시작될 때 자동으로 생성됩니다                   |
| 종료 | 작업이 완료되면 자동으로 종료되고 삭제됩니다                    |
| 격리 | 각 작업이 전용 클러스터에서 실행되어, 다른 작업과 리소스를 공유하지 않습니다 |
| 비용 | 실제 작업 시간에 대해서만 과금되어 비용 효율적입니다               |

```yaml theme={null}
# Job 설정 예시 (Databricks Asset Bundle)
resources:
  jobs:
    daily_etl:
      name: "daily-sales-etl"
      tasks:
        - task_key: "process_sales"
          job_cluster_key: "etl_cluster"
          notebook_task:
            notebook_path: "/Workspace/etl/process_sales"
      job_clusters:
        - job_cluster_key: "etl_cluster"
          new_cluster:
            spark_version: "18.1.x-scala2.12"
            num_workers: 4
            node_type_id: "i3.xlarge"
```

***
