: 해야 할 일을 나중에 처리하거나, 다른 시스템이 처리 할 수 있도록 하기 위한
비동기 메시징 서비스.
: SQS는 메시지의 저장소로 처리해야 할 업무에 대한 TODO 리스트와 같은 역할을 한다.
ex) 신규글이 작성되면 그 글을 구독하는 사람들에게 새로운 글이 작성되었음을 알리는 시스템이 있다고 하면,
신규글을 작성했을 때 모든 구독자에게 이메일을 발송하면 구독자가 많은 글의 경우 매우 오랜시간 사용자를
대기해야 한다. SQS를 사용하면 신규글이 작성되었을 때 신규글이 작성되었음을 SQS에 발행하고,
백그라운드에서 SQS를 처리하도록 하면 사용자의 대기 시간을 줄일 수 있다.
즉, 글이작성 -> SQS에 신규글 작성 저장 -> 다른 사용자들의 요청에 대한 응답.
백그라운드에선 SQS 처리로 순차적 알림 발송
상세 프로세스
사용자가 글을 올리면 그 올린 글에 대한 정보를 SQS서버에 send한다.
처리하는 곳에서는 주기적으로 SQS에 올라온 것이 있는지 보고 있을 경우 receive 한다.
기본적으로 SQS에 visibility timeout:30 초로 되어있는데 이는 안보이게 하는 시간을 의미하고
목적은 처리하는 곳에서 SQS의 데이터를 가져갔을때 가져간 정보를 숨김처리해서 다른 처리하는 곳에서
중복적으로 가져가는 것을 방지하기 위함이고, 먼저 가져간 곳에서 에러로 인해 정상작동이 안되었을 시
다시 보이게 하여 다른 곳에서 가져갈 수 있게 한다.
최종적으로 SQS에서 데이터를 가져가 처리를 완료하면 마지막에 가져온 큐의 정보를 삭제한다.
참고
생활코딩 Simple Quque Service(SQS)
(AWS) EC2 서버 디스크 용량 확장 (0) | 2021.12.02 |
---|