글
AWS 람다 SAM 배포 75GB 용량 이슈
이슈가 생겼습니다...
서버리스 프레임워크를 계속 사용하여 람다 컨테이너들에 대한 형상 관리를 하다보니,
이력이 계속 쌓였는지 75GB 용량 초과 알림이 떠서 커스텀으로 만들 수 없더군요..
조금 더 파악해보고 오겠습니다..
클라우드 개발자 앙몬드입니다.
인프라 CA분에게서 요청이 왔던 AWS 리전들의 Public IP 변경에 대하여, 알림 및 SG 자동업데이트에 대한 람다 개발을 자동화하는 것이었죠.
해당 건에 대해서는, 굳이 형상관리를 할 필요없다고 판단하였습니다. 이슈가 생긴다면, AWS SES/SNS 알림을 받고, 그것을 그때 고치면 되는 것이었죠. (물론 그 사이 서비스가 장애가 났다 하면 앙몬드 책임)
- SNS + Lambda Fan-Out 패턴을 통한 AWS Region 간 Public IP 자동화 이슈링크 : devloper-angmond.tistory.com/category/IT/AWS%20%EB%A6%AC%EC%86%8C%EC%8A%A4%20%EA%B0%84%EB%9E%B5%EC%A0%95%EB%A6%AC%20%26%20%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%EA%B0%9C%EB%B0%9C%20%ED%8A%B8%EB%9F%AC%EB%B8%94%EC%8A%88%ED%8C%85
콘솔에서, 스크립트를 생성하려는데 문제가 생깁니다.
AWS Lambda 의 경우 제한에 대해서는 저 또한, 컨테이너 하나당 용량 50MB & 동시실행 1000개만 숙지하고 있었죠.
75GB 에 대한 이슈의 AWS 화이트페이퍼는 하기와 같이 설명합니다.
docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html
이상한것은, 제 람다 함수 어플리케이션 용량 총합이 1GB도 되지 않는데 어째써 75기가로 인식을 하였을까?
해당 용량 공식은 다음과 같습니다.
AWS Lambda Function & Layer Storage's Total Limit = Lambda Fuctions's ALL Versions + ALL Layers
예를 들면, A람다 함수 50메가짜리의 버전이, 1000개 관리되고 있고, 레이어는 쓰지 않는다면,
람다 용량 = A람다 50MB * 1000 = 50GB
그리고 75GB 를 초과하여 배포 시에는, 다음과 같은 에러를 뱉습니다.
CodeStorageExceededException
앙몬드가 찾은 방법은 다음과 같습니다.
1. AWS 서포트를 받아, 용량을 늘린다. -> 당연히 비용 증가 예상 가능
2. 구 람다 버전들을 형상관리하지 않고, git 으로만 관리하며, 구버전들 전부를 없앤다.
앙몬드는 당연히 2번을 선택하였구요.
어렵지 않게 파이썬 코드를 찾아 해결할 수 있었습니다.
물론 약간의 한계가 있고, 모든 이슈가 해결된 것은 아니지만, 약 99퍼 정도는 위 이슈는 해결 가능하였습니다.
이후, 이에 대한 조금 더 고도화는 되어야겠죠.
오늘은 간단하게, 이에 대한 이슈잉과 어느정도의 해결책 람다 코드만을 만들어서 배포를 하도록 하고 종료하도록 하죠!
(앙몬드는 맥주를 먹으러 갈꺼댜)
'IT > AWS Lambda & Resources Trouble Shooting' 카테고리의 다른 글
AWS System Manager / SSM을 이용한, 머신 컨트롤링 스크립트 (0) | 2020.10.14 |
---|---|
AWS Lambda 에서의 웹크롤링 고찰 (0) | 2020.06.07 |
AWS Fan-out 람다를 이용한 Security Group 제어 (0) | 2020.05.21 |
AWS 태그 네이밍 람다 스크립트 트러블슈팅 일지 (0) | 2020.05.19 |
AWS Elasticsearch & Lambda & Kibana 트러블슈팅 일지 (0) | 2020.04.15 |