

# AWS Glue 작업자 유형
<a name="worker-types"></a>

## 개요
<a name="worker-types-overview"></a>

AWS Glue는 소규모 스트리밍 작업부터 메모리 집약적인 대규모 데이터 처리 작업에 이르기까지 다양한 워크로드 요구 사항을 수용할 수 있는 여러 작업자 유형을 제공합니다. 이 섹션에서는 사용 가능한 모든 작업자 유형, 사양 및 사용 권장 사항과 관련된 포괄적인 정보를 제공합니다.

### 작업자 유형 범주
<a name="worker-type-categories"></a>

AWS Glue는 두 가지의 주요 작업자 유형 범주를 제공합니다.
+ **G 작업자 유형**: 표준 ETL 워크로드에 최적화된 범용 컴퓨팅 작업자
+ **R 작업자 유형**: 메모리 집약적 Spark 애플리케이션에 맞춰 설계된 메모리 최적화 작업자

### 데이터 처리 단위(DPU)
<a name="data-processing-units"></a>

AWS Glue 작업자에서 사용할 수 있는 리소스는 DPU 단위로 측정됩니다. DPU는 4 vCPU의 컴퓨팅 파워와 16GB 메모리로 구성된 프로세싱 파워의 상대적 측정값입니다.

**메모리 최적화 DPU(M-DPU)**: R 유형 작업자는 표준 DPU와 비교해 정해진 크기에서 2배의 메모리 할당을 제공하는 M-DPU를 사용합니다. 즉, 표준 DPU는 16GB의 메모리를 제공하지만 R 유형 작업자의 M-DPU는 메모리 집약적 Spark 애플리케이션에 최적화된 32GB의 메모리를 제공합니다.

## 사용 가능한 작업자 유형
<a name="available-worker-types"></a>

### G.1X
<a name="g1x-standard-worker"></a>
+ **DPU**: DPU 1개(vCPU 4개, 메모리 16GB)
+ **스토리지**: 94GB 디스크(약 44GB 무료)
+ **사용 사례**: 데이터 변환, 조인 및 쿼리(대부분의 작업에 대해 확장 가능하고 비용 효율적)

### G.2X
<a name="g2x-standard-worker"></a>
+ **DPU**: DPU 2개(vCPU 8개, 메모리 32GB)
+ **스토리지**: 138GB 디스크(약 78GB 무료)
+ **사용 사례**: 데이터 변환, 조인 및 쿼리(대부분의 작업에 대해 확장 가능하고 비용 효율적)

### G.4X
<a name="g4x-large-worker"></a>
+ **DPU**: DPU 4개(vCPU 16개, 메모리 64GB)
+ **스토리지**: 256GB 디스크(약 230GB 무료)
+ **사용 사례**: 까다로운 변환, 집계, 조인 및 쿼리

### G.8X
<a name="g8x-extra-large-worker"></a>
+ **DPU**: DPU 8개(vCPU 32개, 메모리 128GB)
+ **스토리지**: 512GB 디스크(약 485GB 무료)
+ **사용 사례**: 까다로운 변환, 집계, 조인 및 쿼리

### G.12X
<a name="g12x-very-large-worker"></a>
+ **DPU**: DPU 12개(vCPU 48개, 메모리 192GB)
+ **스토리지**: 768GB 디스크(약 741GB 무료)
+ **사용 사례**: 상당한 컴퓨팅 용량이 필요한 초대규모 및 리소스 집약적 워크로드

### G.16X
<a name="g16x-maximum-worker"></a>
+ **DPU**: DPU 16개(vCPU 64개, 메모리 256GB)
+ **스토리지**: 1,024GB 디스크(약 996GB 무료)
+ **사용 사례**: 최대한의 컴퓨팅 용량이 필요한 최대규모 리소스 집약적 워크로드

### R.1X - 메모리 최적화\$1
<a name="r1x-memory-optimized-small"></a>
+ **DPU**: M-DPU 1개(vCPU 4개, 메모리 32GB)
+ **사용 사례**: 메모리 부족 오류가 자주 발생하거나 메모리 대비 CPU 비율이 높은 메모리 집약적 워크로드

### R.2X - 메모리 최적화\$1
<a name="r2x-memory-optimized-medium"></a>
+ **DPU**: M-DPU 2개(vCPU 8개, 메모리 64GB)
+ **사용 사례**: 메모리 부족 오류가 자주 발생하거나 메모리 대비 CPU 비율이 높은 메모리 집약적 워크로드

### R.4X - 메모리 최적화\$1
<a name="r4x-memory-optimized-large"></a>
+ **DPU**: M-DPU 4개(vCPU 16개, 메모리 128GB)
+ **사용 사례**: 메모리 부족 오류가 자주 발생하거나 메모리 대비 CPU 비율이 높은 대형 메모리 집약적 워크로드

### R.8X - 메모리 최적화\$1
<a name="r8x-memory-optimized-extra-large"></a>
+ **DPU**: M-DPU 8개(vCPU 32개, 메모리 256GB)
+ **사용 사례**: 메모리 부족 오류가 자주 발생하거나 메모리 대비 CPU 비율이 높은 초대형 메모리 집약적 워크로드

**\$1** 작업자의 시작 지연 시간이 길어질 수 있습니다. 다음에 따라 문제를 해결하세요.
+ 몇 분 정도 기다린 후 다시 작업을 제출합니다.
+ 작업자 수를 줄여 새 작업을 제출합니다.
+ 다른 작업자 유형 또는 크기를 사용하여 새 작업을 제출합니다.

## 작업자 유형 사양 표
<a name="worker-type-specifications"></a>


**작업자 유형 사양**  

| 작업자 유형 | 노드당 DPU | vCPU | 메모리(GB) | 디스크(GB) | 대략적 여유 디스크 공간(GB) | 노드당 Spark 실행기 | 
| --- | --- | --- | --- | --- | --- | --- | 
| G.1X | 1 | 4 | 16 | 94 | 44 | 1 | 
| G.2X | 2 | 8 | 32 | 138 | 78 | 1 | 
| G.4X | 4 | 16 | 64 | 256 | 230 | 1 | 
| G.8X | 8 | 32 | 128 | 512 | 485 | 1 | 
| G.12X | 12 | 48 | 192 | 768 | 741 | 1 | 
| G.16X | 16 | 64 | 256 | 1024 | 996 | 1 | 
| R.1X | 1 | 4 | 32 | 94 | 44 | 1 | 
| R.2X | 2 | 8 | 64 | 138 | 78 | 1 | 
| R.4X | 4 | 16 | 128 | 256 | 230 | 1 | 
| R.8X | 8 | 32 | 256 | 512 | 485 | 1 | 

**참고: R 작업자 유형에는 사양이 메모리 집약적 워크로드에 최적화된 메모리 최적화 구성이 있습니다.

## 중요 고려 사항
<a name="important-considerations"></a>

### 시작 지연 시간
<a name="startup-latency"></a>

**중요**  
G.12X 및 G.16X 작업자 유형과 모든 R 작업자 유형(R.1X\$1R.8X)의 경우 시작 지연 시간이 길어질 수 있습니다. 다음에 따라 문제를 해결하세요.  
몇 분 정도 기다린 후 다시 작업을 제출합니다.
작업자 수를 줄여 새 작업을 제출합니다.
다른 작업자 유형 및 크기를 사용하여 새 작업을 제출합니다.

## 올바른 작업자 유형 선택
<a name="choosing-right-worker-type"></a>

### 표준 ETL 워크로드
<a name="standard-etl-workloads"></a>
+ **G.1X 또는 G.2X**: 일반적인 데이터 변환, 조인 및 쿼리에 가장 비용 효율적
+ **G.4X 또는 G.8X**: 데이터세트가 더 큰 워크로드

### 대규모 워크로드
<a name="large-scale-workloads"></a>
+ **G.12X**: 상당한 컴퓨팅 리소스가 필요한 초대형 데이터세트
+ **G.16X**: 최대 컴퓨팅 용량으로 가장 까다로운 워크로드 지원

### 메모리 집약적 워크로드
<a name="memory-intensive-workloads"></a>
+ **R.1X 또는 R.2X**: 소형에서 중형 메모리 집약적 작업
+ **R.4X 또는 R.8X**: OOM 오류가 자주 발생하는 대형 메모리 집약적 워크로드

## 비용 최적화 고려 사항
<a name="cost-optimization-considerations"></a>
+ **표준 G 작업자**: 컴퓨팅, 메모리 및 네트워킹 리소스의 균형을 맞추고, 저렴한 비용으로 다양한 워크로드에 사용 가능
+ **R 작업자**: 워크로드에서 빠른 성능을 발휘하는 메모리 집약적 작업에 특화되어 메모리에서 대규모 데이터세트 처리

## 모범 사례
<a name="best-practices"></a>

### 작업자 선택 지침
<a name="worker-selection-guidelines"></a>

1. 대부분의 워크로드에서 **표준 작업자로 시작**(G.1X, G.2X)

1. 메모리 부족 오류가 자주 발생하거나 캐싱, 셔플링 및 집계와 같은 메모리 집약적 작업이 포함된 워크로드의 경우 **R 작업자 사용**

1. 최대 리소스가 필요한 컴퓨팅 집약적 워크로드의 경우 **G.12X/G.16X 고려**

1. 시간에 민감한 워크플로에서 새 작업자 유형을 사용할 때 **용량 제약 조건 고려**

### 성능 최적화
<a name="performance-optimization"></a>
+ CloudWatch 지표를 모니터링하여 리소스 사용률 파악
+ 데이터 크기 및 복잡성을 기반으로 적절한 작업자 수 사용
+ 데이터 파티셔닝 전략을 고려하여 작업자 효율성 최적화