logo
logo
AWS Lambda와 SQS를 이용한 대용량 엑셀 처리
코드너리  |  2022. 03. 04
대용량 처리
사용된 기술:
awssqs-image
content

간단 요약

  1. 브랜디 관리자 페이지에서 엑셀 다운로드 버튼 클릭 시 JSON 형식의 데이터 SQS 대기열에 등록
  2. SQS에서 앞에 마지막 요청이 끝났다면 Lambda 트리거 발생. 이때 동시성이 1이므로 한 번에 하나씩만 람다로 들어가도록 되어있음
  3. 람다에서 SQS 메시지에 들어있는 templateId로 템플릿 읽어온 뒤, 템플릿에 매칭되어있는 sql도 같이 읽어서 가져옴
  4. Lambda 내부의 로직에 따라 요청 값과 템플릿을 검증
  5. **시작일자부터 종료일자까지 끊어 읽는 단위로 쿼리를 실행시켜 엑셀 파일을 생성한 뒤, SES를 이용하여 엑셀파일이 저장되어 있는 URL을 클라이언트에게 발송
  6. 15분으로 설정되어 있는 timeout 발생 시 SQS deadletter로 기존에 받은 메시지를 보내고 deadletter SQS에서 람다로 다시 트리거를 발생 시키면, 타임아웃 메일 규격을 통해 발신자에 실패 메일 발송
Copyright © 2024. Codenary All Rights Reserved.