Glue 비용 80% 절감한 이야기
클라우드 비용 최적화의 핵심은 워크로드 특성을 이해하는 것이다. CPU 바운드와 I/O 바운드는 최적화 전략이 완전히 다르다.
Glue 비용이 매월 100% 이상 증가하고 있었다. 단순히 리소스를 줄이면 성능이 떨어질 것 같았지만, 워크로드 분석 결과 I/O 바운드 특성을 발견했다. DPU를 1/5로 줄이고도 성능 저하 없이 비용을 80% 절감한 과정을 공유한다.
비용 리포트를 보다가 Glue 비용이 급격히 증가하는 것을 발견했다. 원인을 추적해보니 ETL 실행 주기가 1일에서 1시간 단위로 변경된 것이 메인 원인이었다.
하지만 이건 비즈니스 요구사항이라 변경할 수 없었다. 다른 요소에서 비용을 줄일 방법을 찾아야 했다.
먼저 Glue 비용이 어떻게 계산되는지 확인했다.
Glue 비용 = DPU 수 × 실행 시간 × DPU 단가
| 요소 | 설명 |
|---|---|
| DPU (Data Processing Unit) | 할당된 컴퓨팅 리소스 |
| 실행 시간 | Job이 실행된 시간 (초 단위 과금) |
| DPU 단가 | 리전별, 모드별 상이 |
결국 실행 시간이 곧 비용이다. 처음에는 코드를 최적화해서 실행 시간을 줄이려고 했다.
코드를 분석해보니 예상과 달랐다. 실행 시간의 대부분이 연산이 아니라 I/O 대기 시간이었다.
- S3에서 데이터 읽기
- 변환 처리 (실제 연산)
- S3/RDS로 데이터 쓰기
대부분의 시간이 읽기/쓰기에 걸려있었다. 그런데 DPU 설정을 보니 10 DPU로 설정되어 있었다.
여기서 가설을 세웠다.
실행 시간의 대부분이 I/O라면, DPU를 줄여도 실행 시간이 비례해서 늘어나지 않을 것이다.
예를 들어 DPU를 10에서 2로 줄이면 (5배 감소):
- CPU 바운드라면: 실행 시간 5배 증가 → 비용 동일
- I/O 바운드라면: 실행 시간 소폭 증가 → 비용 대폭 감소
I/O 대기 시간은 DPU 수와 관계없이 비슷하기 때문이다.
실제로 테스트를 진행했다.
| DPU | 실행 시간 | 비용 (상대값) |
|---|---|---|
| 10 | 기준 | 100% |
| 2 | +5~10% | 약 20% |
DPU를 1/5로 줄였는데, 실행 시간은 5~10%만 증가했다.
이 말은 성능 하락 거의 없이 비용을 1/5 수준으로 줄일 수 있다는 뜻이다.
검증 후 모든 Glue Job에 동일한 최적화를 적용했다. 결과적으로 비용 증가를 막고, 기존 대비 약 80% 비용을 절감할 수 있었다.
flowchart LR
subgraph Before[최적화 전]
B1[DPU: 10]
B2[실행 시간: 기준]
B3[비용: 100%]
end
subgraph After[최적화 후]
A1[DPU: 2]
A2[실행 시간: +5~10%]
A3[비용: ~20%]
end
Before --> After
현재 Job들이 Standard 모드로 실행되고 있다. Flex 모드로 전환하면 추가 비용 절감이 가능하다.
| 모드 | 특징 | 비용 |
|---|---|---|
| Standard | 즉시 실행, SLA 보장 | 기본 단가 |
| Flex | 유휴 용량 활용, 시작 지연 가능 | 약 34% 저렴 |
배치성 ETL이고 실시간성이 중요하지 않다면 Flex 모드가 적합하다. 아직 적용하지 않았지만, 검토 중인 다음 최적화 포인트다.
Glue 비용 최적화의 핵심은 워크로드 특성 파악이다.
- 비용 구조 이해: DPU × 실행 시간
- 워크로드 분석: CPU 바운드 vs I/O 바운드
- 가설 수립 및 테스트
- 점진적 적용
I/O 바운드 워크로드에서 DPU를 무조건 높게 잡는 것은 비용 낭비다. 실제 리소스 사용량을 확인하고 적정 수준으로 조정하는 것이 중요하다.