전태호

전태호님의 아티클

전태호

전태호

반성문

알통(artong.io)프로덕트 개발 중에 일어난

사고기록을 공유해봅니다.

제가 직접 작성했으며 이슈가 생길때마다 작성중입니다:)

누군가는 이 글을 보고 도움이 되길 바라며😇

아래는 22년 10월에 작성된 반성문 원문입니다.


현재 프로필사진 등의 이미지를 변경하면

FE 에서 s3로 직접 이미지가 업로드되고

트리거가 작동하여 thumbnail을 생성하고 있습니다.

BE api server의

serverless.yml에 정의된 트리거를 보면

image:handler: artong/handler/image.handler
    events:
     - s3:bucket: ${self:provider.environment.S3_BUCKET}
        event: s3:ObjectCreated:*rules:
          - prefix: public/profile/
        existing: true

s3 key에 public/profile/ 로 시작하는 폴더를 감시해서

image.ts의 handler와 updateProfileThumbnail 함수를 호출하고 있습니다.

updateProfileThumbnail 함수는

sharp.js를 이용하여 이미지를 resize 해주고

다시 s3에 저장하는 로직인데 여기서 저장할 s3의 key를

trigger가 발동하는 public/profile/thumbnail 을 해준 것이 화근이었습니다.

단 한줄의 실수가

tigger를 받아서 저장하고 또 trigger하고 또 trigger하고… 무한루프를 돌려서 결국


정상적인 요금의 6배 정도..

수업료라고 생각하기엔 너무 아깝습니다..

환율이 올라서 더 아프게 느껴지는 수업료ㅠㅠ

현재는 폴더를 /public/thumbnails/profile로 분리해 주었습니다.

하지만 aws 문서를 찾아보니 사고를 방지하기 위해 s3 bucket 자체를 다르게 잡아주기를 추천하고 있습니다.

우선은 폴더로 구분해주고 사고 기록을 남겨둡니다.

TODO list 에 적어놓자. thumbnail용 s3 새로 파기!

알통

누구나 기여가능한 오픈아트 NFT 거래소

2
1