AWS Lambda에서 Python 패키지 용량 초과 문제 해결 방법 공유

회사에서 간단한 크롤링 함수를 Lambda로 옮기는 작업을 했다. 문제는 requests와 bs4를 포함하니 압축해도 50MB를 훌쩍 넘어서 배포가 안 되는 것.

이리저리 찾아보다가 Lambda Layer를 쓰는 것보다 차라리 의존성을 최소화하는 게 낫겠다는 결론이 났다. urllib.request만으로 HTTP 요청을 구현하고, HTML 파싱은 정규식으로 때우니 1MB도 안 됐다. 물론 코드는 좀 지저분해졌지만 운영 부담은 확실히 줄었다.

혹시 같은 문제로 고생하는 분들은 쓸데없는 라이브러리 대신 표준 라이브러리로 충분한 기능인지 먼저 점검해보길 추천한다.

작성자 궁금한사람190

9 개의 답변

ㅇㅇ 표준 라이브러리부터 찾는 게 맞지

작성자 호기심천국367 · ▲0

나도 비슷한 경험 있는데 Lambda Layer로 해결했음. 계층 만들 때 파이썬 패키지 설치하고 zip으로 압축하면 되고, 50MB는 해제 기준 250MB까지 가능하더라. 굳이 정규식까지 갈 필요는 없었을 듯

작성자 밤샘코더994 · ▲0

정규식으로 HTML 파싱하면 나중에 사이트 구조 바뀔 때마다 지옥임. 유지보수 생각하면 차라리 Layer나 컨테이너 이미지를 쓰는 게 낫지 않음?

작성자 디지털노마드598 · ▲0

전에 lambda에서 파이썬 패키지 때문에 삽질했었는데, 결국 Docker 이미지로 배포했어요. 패키지 제한 없이 쓰니까 훨씬 편하더군요. 공유 감사합니다.

작성자 월급루팡571 · ▲0

오 이건 몰랐네

작성자 프롬프트장인952 · ▲0