Skip to content

Commit b63dd06

Browse files
committed
docs: lambda 이미지 최적화 초안
1 parent ce5f781 commit b63dd06

1 file changed

Lines changed: 76 additions & 2 deletions

File tree

contents/posts/Aws/lambda-image-optimization.md

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,80 @@ description: AWS Lambda와 S3 트리거를 활용하여 이미지 업로드 시
66
comment: true
77
---
88

9-
::: warning
10-
아직 작성중이거나 검토중인 글입니다. 내용이 부정확하거나 변경될 수 있습니다
9+
:::info
10+
이 글은 [~ 이미지 키워봐~ 최적화 하면 그만이야 🤡 (pt1. 이미지 포맷)](../Web/image-format.md) 글의 속편입니다.
11+
지난 글에서 이미지 포맷 선택이 얼마나 중요한지 살펴봤다면, <br/>
12+
이번 글에서는 **AWS Lambda와 S3 이벤트를 활용해 업로드 시점에서 자동으로 이미지 최적화**하는 방법을 다룹니다.
1113
:::
14+
15+
## 🖼️ 이미지 최적화 작업 '딸깍' 하면 자동으로 다 해주는거 없나?
16+
17+
디자인학과 졸업전시 웹사이트를 만들면서, 이미지 때문에 꽤나 고생을 했습니다.
18+
학생들이 주는 작품 사진은 대부분 몇 MB가 넘는 고화질의 원본이었고, 저는 그걸 웹에 맞게 리사이즈해서 올려야 했습니다.
19+
20+
![최적화 해야한다.... vs 딸깍!](./img/lambda-img-optimization/optimize.jpg)
21+
22+
처음에는 로컬에서 일일이 줄여 업로드했지만, 작품 수가 수십 개, 이미지가 수백 장을 넘어가자 상황은 달라졌습니다.
23+
리사이즈 작업만으로도 반나절이 날아가고, 썸네일·포맷별 파일까지 관리하려니 점점 감당하기 힘들어졌습니다.
24+
25+
> 아.. 이거 언제 다하냐... <br/>
26+
> "이미지 최적화 작업 '딸깍' 하면 자동으로 다 해주는거 없나?"
27+
28+
## ⚙️ AWS Lambda & S3 트리거로 이미지 최적화 자동화하기
29+
30+
AWS Lambda 와 S3 트리거를 활용하면 이미지가 S3 버킷에 업로드될 때마다 자동으로 최적화 작업을 수행할 수 있습니다. <br/>
31+
32+
:::info AWS Lambda? 서버리스?
33+
AWS Lambda는 서버를 직접 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스입니다. <br/>
34+
서버리스란 서버 인프라 관리를 신경쓰지 않고, 코드 작성과 비즈니스 로직에 집중할 수 있는 클라우드 컴퓨팅 모델을 의미합니다. <br/>
35+
:::
36+
37+
이 과정에서 [Sharp](https://sharp.pixelplumbing.com/) 라이브러리를 사용하면 JPEG, PNG, WebP 등 다양한 포맷의 이미지를 효율적으로 변환하고 저장할 수 있습니다.
38+
39+
> Lambda는 빠르게 스케일 업해야 하고 수요가 없을 때는 0으로 스케일 다운해야 하는 애플리케이션 시나리오에 이상적인 컴퓨팅 서비스입니다. 예를 들어 Lambda를 다음에 사용할 수 있습니다. <br/>
40+
> ... <br/>
41+
> 파일 처리: 업로드 후 Amazon Simple Storage Service(S3)를 사용하여 Lambda 데이터 처리를 실시간으로 트리거합니다. <br/>
42+
> [AWS Lambda 소개](https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html)
43+
44+
공식 문서에도 나와있듯이, AWS Lambda 를 사용하면 S3에 파일이 업로드될 때마다 자동으로 이미지 최적화 작업을 트리거할 수 있습니다.
45+
46+
### 1️⃣ Lambda 함수 생성 및 설정
47+
48+
우선 이미지를 저장할 S3 버킷을 생성합니다 <br/>
49+
(버킷 생성 방법은 생략합니다. [공식 문서](https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/create-bucket-overview.html)를 참고하세요)
50+
51+
그 다음, AWS Lambda 콘솔에서 새 Lambda 함수를 생성합니다.
52+
53+
![Lambda 함수 생성](./img/lambda-img-optimization/setup-lambda.png)
54+
55+
아래쪽에 `구성` > `트리거` > `트리거 추가` 를 클릭해 S3 트리거를 설정합니다.
56+
57+
![S3 Trigger 설정](./img/lambda-img-optimization/setup-trigger.png)
58+
59+
## Presigned URL 로 이미지 업로드 시점에 Lambda 트리거하기
60+
61+
62+
63+
AWS Lambda
64+
Magic link 형태의 로그인
65+
66+
Lambda 에서 node_modules 사용할때
67+
레이어에 추가해야함
68+
69+
레이어 추가방법
70+
Lambda > 추가리소스 > 계층 > 계층생성
71+
계층이름지정하고 zip 파일 업로드
72+
node_modules 는
73+
nodejs/node_modules 에 넣고
74+
zip layer.zip nodejs -r
75+
레이어에 추가하고 람다에서 해당 레이어선택
76+
계층 추가 > 사용자 지정 계층 > 아까 추가한 레이어 선택
77+
78+
람다에서 ses 나 S3 같은 aws 서비스 사용하기 위해서 iam 에 권한 넣어줘야함
79+
Iam 사용자 권한을 넣는게 아니라
80+
람다함수 > 구성 > 실행역할 > 편집 에서 기존역할에 사용하는 aws 리소스 넣기
81+
82+
S3 no-cache 정책
83+
84+
Lambda 동작원리
85+
서버리스랑 일반서버 차이점

0 commit comments

Comments
 (0)