반응형
S3에 있는 원본 이미지를 lambda@edge를 이용 resize해서 화면에 보여주고 있었다. 그런데 다음과 같은 에러가 발생했다.
처음에는 Cloudfront에서 타임아웃이 걸려있는 줄 알고 살펴봤는데 아니었다. 그래서 cloudwatch에 저장되어 있는 로그를 이것저것 살펴보니 Lambda 쪽 로그그룹에 Timeout 3초 에러가 발생하고 있었다. lambda 에서 timeout 에러가 발생했고 그게 503 에러로 이어진것 같다. 즉 CloudFront에서 발생한 에러가 아니라 lambda의 에러가 전이된 것이다.
(스샷이 없어서 죄송합니다) 확인해보니 lambda의 기본값으로 설정할 경우 제한시간을 3초로 한다. 그래서 이번에 설정을 30초로, 그리고 메모리 사용량을 128MB(기본값) => 256MB로 변경했다.
참고로 시간을 60초로 하면 lambda에서는 설정이 가능하지만 Cloudfront와 연결할때 최대 30초로 할 수 있다면서 에러가 발생한다. 해서 여기서도 제한시간을 30초로 두었다.
수정후에는 반드시 배포를 해야한다. 배포하지 않고 한참 기다렸다가 왜 적용 안되지? 하고 삽질했다.
배포할때는 새로운 CloudFront 로 하지 말고 이 함수에 기존 CloudFront로 연결하자.
이제 다시 시도를 해보니 잘 된다. 로그를 확인해보니 1.8초 정도 걸리는데 보아하니 메모리가 부족해서 시간이 오래걸린거 아닌가 싶다.
끝.
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[react, nextjs] PWA(프로그레시브 웹 앱) 적용하기 (1) | 2022.06.24 |
---|---|
[airflow] mac m1 에서 설치 중 cpython-310-darwin.so import 에러 (0) | 2022.05.09 |
[react, nextjs] _app.js 에 useEffect 에서 2번씩 호출될때 (0) | 2022.04.22 |
[maven] jar 파일 만들때 dependency 파일 첨부하기 (+파일명 고정하기) (0) | 2022.03.21 |
[jpa] 테이블에 입력, 수정일시 컬럼 공통으로 하기 (0) | 2022.02.23 |
댓글