EKS Bottlerocket, 이미지 캐싱으로 컨테이너 시작 시간을 10초로!

by DD
1년 전
조회수 0

EKS 환경에서 GB 단위의 이미지 pull 시간으로 인한 비용 낭비 발생

Bottlerocket 환경에서 EBS 스냅샷을 활용하여 이미지 캐싱 구현

컨테이너 시작 시간 15분 → 10초로 단축, EC2 비용 70% 절감

Bottlerocket 아키텍처와 이미지 캐싱 원리

Bottlerocket은 읽기 전용 OS 볼륨컨테이너 데이터 볼륨을 분리하여 관리한다. 따라서 EBS 스냅샷을 통해 컨테이너 데이터 볼륨을 빠르게 복제할 수 있다. 구체적으로, admin 컨테이너를 활용하여 이미지 pull 후 스냅샷을 생성하고, Karpenter를 통해 새로운 노드에 스냅샷을 적용한다.

스냅샷 로딩 성능 트레이드오프

EBS 스냅샷 사용 시, 최초 접근 시 lazy loading으로 인해 부팅 시간이 길어질 수 있다. IOPS/Throughput을 높여 스냅샷 로딩 속도를 개선하거나, fast snapshot restore 기능을 사용할 수 있다. 반면, 비용 증가를 고려하여 IOPS/Throughput 조절을 통해 최적의 성능을 확보한다.

EBS 성능 최적화 가이드

애플리케이션의 I/O 패턴을 분석하여 EBS 볼륨 타입IOPS/Throughput 값을 설정해야 한다. 대용량 파일을 자주 읽는 경우, Throughput을 높여 파일 로딩 시간을 단축한다. 따라서, EC2 비용EBS 성능 비용 간의 균형을 고려하여 최적의 설정을 찾아야 한다.

EKS Bottlerocket에서 이미지 캐싱으로 Pull 시간 줄이기