Current Setting
- AWS
- Java 17 + spring boot
To Be
Main problems
- JVM based Cold Start
- Engineering Cost
- Gradual Migration
대안
Spring Boot → Quarkus (Native Image 빌드)
Spring Boot + AWS Lambda (기존 Spring 유지, AWS Lambda로 전환)
Spring Boot + GraalVM (JVM 모드 유지)
Spring Boot + SnapStart (AWS Lambda SnapStart 활용)
비교표
대안 |
장점 |
단점 |
변경 비용 |
Spring Boot → Quarkus |
빠른 콜드 스타트, 최적화된 성능 |
큰 변경 비용, 라이브러리 호환성 문제 |
높음 |
Spring Boot + GraalVM |
기존 코드 재사용 가능, 성능 일부 개선 |
콜드 스타트 개선 한계, 호환성 문제 |
중간 |
Spring Boot + AWS Lambda |
기존 코드 재사용, 개발 속도 빠름 |
콜드 스타트 문제, 비용 증가 가능 |
낮음 |
Spring Boot + SnapStart |
콜드 스타트 최소화, 코드 변경 불필요 |
제약 조건 존재, 초기화 시간은 여전히 존재 |
매우 낮음 |