https://desirelsw.tistory.com/274
Lambda@Edge / CloudFront / Singed URL / S3 트러블 슈팅
최근, 이미지 get서빙 부분에 보완하면 좋겠는 점이 생겨서 아래와 같이 진행해보기로 하였다. (일부분만 발췌) CF(cloudfront)에 S3를 연동하여 인증된 사용자만 CF를 통하여 이미지를 가지고 오게함
desirelsw.tistory.com
이전에 해당 글에서 python 기반으로 람다를 작성할 때, WEBP 확장자 변환을 위해 Pillow 모듈을 사용하였는데,
이제는 AVIF 확장자 변환도 해야하여 더 찾아보니 pillow 모듈만으로 해결이 안되고, AVIF 변환을 위해 추가적으로 설치해야할 모듈이 있다는 것을 찾게 되었다 (확장자 추가에 따른 추가 모듈 추가라... 마음에 들지 않는다)
람다의 다른 버전인 node.js에서 WEBP / AVIF 확장자 변환에 사용하는 모듈을 알아보니, Sharp라는 것이 있었다.
이거는 Pillow와 다르게 추가 모듈 설치 없이도 호환이 되어있어서, 이번에는 기존과 다르게 node.js 기반으로 Sharp를 활용한 방식으로 람다를 작성하고자 한다.
레퍼런스 문서도 많고, 이전에 이미 해본 경험이 있어서 그런지 곤혹스러운 상황은 많이 면한 것 같다.
우선 node18 버전으로 Lambda를 생성하였고, AWS Cloud9에서 해당 Lambda를 다운받아 아래 명령어를 통해 Sharp를 설치했다.
> npm install sharp
그 후 코드를 작성하였는데, 서비스 내부 정책도 섞여있어서 코드 내용은 보안상 올리지 않을 것이다.
[NODE] 📚 Sharp 모듈 사용법 - 이미지 리사이징 / 워터마크 넣기
Sharp 모듈 노드 진영에는 많은 이미지 리사이징 패키지들이 있었지만, 끝까지 살아남은 모듈이 shap 이다. 이미지 리사이징 동작 자체가 cpu와 메모리를 잡아먹는 주범이라, 가끔 out of memory로 node
inpa.tistory.com
https://robert-michalski.com/blog/nodejs-resize-and-convert-animated-gif-webp-images/
Resize and convert animated GIF and WebP images using Sharp in Node.js
Resize and convert animated GIF and WebP images using Sharp in Node.js In this post we'll first resize animated GIFs and WebP files to reduce their filesize somewhat, then we'll go through how to convert animated GIFs to WebP format to reduce the filesize
robert-michalski.com
https://sharp.pixelplumbing.com/api-resize
sharp - High performance Node.js image processing
sharp.pixelplumbing.com
'★ 프로젝트 + 트러블 슈팅 ★' 카테고리의 다른 글
[이미지 렌더링 최적화] HTTPS 페이지 내 HTTP 로드 이미지 문제 (혼합 콘텐츠(Mixed Content)) (0) | 2025.02.23 |
---|---|
[해외 본인인증] CI / DI 개념 정리 (0) | 2025.02.17 |
[이미지 렌더링 최적화] CloudFront 비용절감 트러블 슈팅 (설계 및 플로우) (0) | 2025.01.07 |
[이미지 렌더링 최적화] CloudFront 비용절감 트러블 슈팅 (0) | 2024.12.17 |
헥사고날 아키텍처 구조, 사용이유 및 부가정보 (3) | 2024.11.20 |
댓글