스프링부트 3.0 네이티브 이미지로 쿠버네티스 성능 UP!

by DD
2년 전
조회수 12

쿠버네티스 환경에서 스프링부트 3.0GraalVM 네이티브 이미지를 활용하여 파드 생성 시간 1분 이상 단축

네이티브 이미지 적용 후, 도커 이미지 크기 300MB → 70MB로 감소 및 실행 시간 50초 → 2초로 개선

5차례 배포를 통해 실행 환경에 맞는 최적화 옵션을 적용, OOM 발생 빈도 감소자원 사용량 안정화 달성

네이티브 이미지, 쿠버네티스 환경에 최적화된 이유

GraalVM 기반 네이티브 이미지는 실행 환경에 맞춰 컴파일되어 JVM 없이 실행된다. 따라서 컨테이너 환경에서 빠른 시작 시간메모리 사용량 감소를 제공한다. 구체적으로, 쿠버네티스 파드 생성 시간을 단축하여 데이터 유실 방지에 기여한다.

네이티브 이미지 vs JAR, 트레이드오프 분석

네이티브 이미지는 초기 시작 시간메모리 사용량 측면에서 JAR보다 우수하다. 반면, 동적 할당JIT 컴파일의 장점을 활용하지 못해, 장기간 실행 시 성능 역전될 수 있다. 따라서, 파드 증설 빈도초기 응답 시간이 중요한 환경에 적합하다.

네이티브 이미지 배포, 실전 적용 가이드

네이티브 이미지 빌드를 위해 Spring Boot 3.0으로 마이그레이션하고, AOT 컴파일을 위한 힌트 파일을 생성해야 한다. 구체적으로, 도커 파일을 활용하여 알파인 리눅스 기반의 경량 컨테이너 이미지를 구축한다. 결과적으로, 배포 시간 단축자원 효율성을 확보할 수 있다.

쿠버네티스가 스프링부트 3.0 네이티브 이미지를 만났네