목록으로

Programming Notes

AWS SAM CLI, 컨테이너 이미지로 패키징된 AWS Lambda 함수를 위한 BuildKit 지원 추가

AWS 서버리스 애플리케이션 모델 명령줄 인터페이스(SAM CLI)가 이제 Dockerfile에서 컨테이너 이미지를 빌드할 때 BuildKit을 지원합니다. 이를 통해 컨테이너 이미지로 패키징된 Lambda 함수를 더욱 빠르고 효율적으로 빌드할 수 있게 되었습니다.

SAM CLI는 AWS 클라우드에 배포하기 전, 로컬 환경에서 서버리스 애플리케이션을 빌드, 테스트, 디버깅 및 패키징하기 위한 명령줄 도구입니다. Lambda 함수를 컨테이너 이미지로 패키징하는 개발자들은 프로덕션 환경에 맞게 이미지를 최적화하기 위해 BuildKit이 제공하는 고급 빌드 기능이 필요한 경우가 많습니다. 하지만 기존 SAM CLI는 BuildKit 기능을 지원하지 않았습니다. 이제 SAM CLI에서 BuildKit을 지원함에 따라, 개발 종속성 없이 더 작은 최종 이미지를 생성하는 멀티 스테이지 빌드, 재빌드 시간을 단축하는 향상된 캐싱, 빌드 단계의 개선된 병렬 처리를 활용할 수 있습니다. 또한 BuildKit은 교차 아키텍처(cross-architecture) 빌드를 지원하여, 동일한 개발 머신에서 x86_64 및 arm64(AWS Graviton2) 명령 세트 아키텍처를 모두 대상으로 하는 컨테이너 이미지를 빌드할 수 있습니다. 아울러 빌드 과정에서 Docker 비밀 정보(secrets)를 사용하여 자격 증명이나 API 키와 같은 민감한 데이터를 최종 이미지 레이어에 노출하지 않고 안전하게 관리할 수도 있습니다.

이 기능을 사용하려면 SAM CLI를 1.159.0 이상의 버전으로 다운로드하거나 업데이트한 후, sam build 명령 실행 시 --use-buildkit 플래그를 추가하면 됩니다. 이 기능은 SAM CLI와 함께 Docker 또는 Finch 중 무엇을 사용하는지에 관계없이 작동하며, BuildKit의 모든 기능을 활용할 수 있도록 해줍니다.

자세한 내용은 SAM CLI 개발자 가이드를 참조하세요.