본문 바로가기

Cloud/원티드(Wanted) 백엔드 챌린지(AWS)

원티드 백엔드 프리온보딩 챌린지 (AWS) - 5

AWS SQS(Simple Queue Service)

아마존 AWS의 시작을 알린 서비스라고 한다

사실 '메시지 큐' 개념을 이번에 새로 배웠다. 

출처 :https://velog.io/@holicme7/AWS-SQS-%EB%9E%80

 

[AWS] SQS 란?

Amazon Simple Queue Service (Amazon SQS) 는 내구력 있고 가용성이 뛰어난 보안 호스팅 대기열을 제공하며 이를 통해 분산 소프트웨어 시스템과 구성 요소를 통합 및 분리할 수 있습니다. (https://docs.aws.amaz

velog.io

 

쉽게 말하면, 서버(인스턴스) 또는 AWS 서비스 사이에 SQS를 도입해서

일을 비동기적으로 처리하게 하는, 일종의 메시징 서비스이다.

 

주로 은행권같이, 작업 순서가 지켜져야 하는 곳에서 SQS같은 기능을 사용한다고 한다.

 

또한 여기서 디커플링이란 개념이 등장한다.

말 그대로 커플링의 반대말, 연결고리를 끊어냈다는 소리인데,

 

위의 그림에서 SQS 서비스가 인스턴스들의 연결고리 역할을 함으로서,

서버 간에 독립성이 보장된다. 혹시나 서버가 하나 다운되더라도, SQS가 다른 인스턴스로 작업을 넘기는

등의 역할을 수행한다.

 

또한 DLQ(Dead Letter Queue)라는것도 설정할수 있는데,

아마존 공홈에서는 '배달못한 편지 대기열'이라고 직역을 해버렸던데...

그러니까 수행되지 않은 작업들을 따로 모아놓았다는 소리다.

 

그렇다면 이 메시지가 왜 배달되지 못했는지, 재배달을 할 것인지 등등

디버깅하는데 유용하게 사용할수 있다.

 

이 기능은 필수가 아니니, 필요하다면 선택해서 세팅해야 한다.

 

AWS Kinesis

출처 : AWS 공식홈페이지

 

Kinesis를 위키피디아에서 찾아보면 이런 뜻이 있다

 

무정위 운동: 세포나 생물체가 자극에 반응할 때 나타나는 운동이나 활동

 

.... 그냥 키네시스는 아마존 웹 서비스 키네시스라고 이해하도록 하자

 

여튼, '데이터스트림' 에 적합한 서비스라고 기억하면 될 것 같다.

 

여기서 Kinesis 왼쪽과 오른쪽에 

'Producer' 즉 데이터 생산자, Consumer 데이터 소비자라는 개념이 등장한다.

 

쉽게 말하면 우리가 물품 구매 후기를 작성하면, 데이터 스트리밍(키네시스)를 통해

소비자 패턴분석을 하는 서비스로 데이터를 실시간 전송을 한다거나 하는 개념이라고 생각하면 된다.

 

여기서 나오는 '샤드'는 데이터베이스의 그 샤드 샤딩이 맞다.

좀 작은 단위로 쪼개놨다는 소리.

 

여기서 AWS에 등장하는 '프로비저닝' 또는 '온디맨드' 라는 개념을 알아보자면,

프로비저닝은 쉽게말하면 어느정도 사용할지 미리 예측한다는 뜻이고

온디맨드는 그때그때 알아서 사용하는만큼 낸다는 소리인데,

 

강사님 말로는 온디맨드로 돌릴때 3배가량 비싸다고 한다.

사용량 예측이 어느정도 가능할때 프로비저닝을 사용하는게 현명.