1 분 소요

 안녕하세요 마개입니다.
SQS는 Simple Queue Service로 AWS에서 제공하는 Queue 서비스입니다. SQS를 생성하기 위해서 몇 가지 설정해야 하는 부분이 있는데 이에 대해 알아보겠습니다.


SQS



SQS 생성

SQS

AWS 콘솔에 접속해서 SQS서비스로 들어오면 위와 같은 모습입니다. 여기서 우측 상단의 Create queue를 클릭합니다.


Details

image

그러면 위와 같은 Details를 설정해야 합니다. 이에 대해 봅니다.

  • Type : Queue의 타입을 결정합니다.
    • Standard : 데이터의 순서를 보장하지 않는 방식으로 Throughput을 극대화합니다.
      • 장점
        • 무제한에 가까운 메시지 전송
        • 제한이 없는 TPS
        • 최소 1회 전달 보장 (At-Least-Once-Delivery)
      • 단점
        • 메시지 순서 보장 안됨
        • 반드시 1번만 읽기 보장 안됨
    • FIFO : 선입선출 방식으로 먼저 들어온 데이터가 먼저 나갑니다.
      • 장점
        • 메시지 순서 보장
        • 1번의 전송, 1번의 수신으로 중복 수신을 방지함 (Exactly-Once Processing)
        • 초당 300TPS 제한 존재 (Limited Throughput)
      • 단점
        • 순서를 위해 속도가 느림 (초당 300TPS)
  • Name : Queue의 이름을 정해줍니다.


위의 Standard와 FIFO에 대해 그림으로 비교하면 아래와 같습니다.


image


Configuration

image

다음으로는 설정 값들에 대해 확인합니다.

  • Visibility timeout : 하나의 consumer로부터 수신받은 메시지를 다른 consumer에게 보이지 않도록 하는 시간을 설정합니다. 0초부터 12시간까지 설정이 가능합니다. (Default : 30초)
  • Message retention period : 메시지의 보존 시간으로 1분부터 14일까지 보존할 수 있습니다. (Default : 4일)
  • Delivery delay : 각 메시지를 consume할 때마다의 Delay를 설정합니다. 0초에서 15분까지 설정이 가능합니다. (Default : 0초)
  • Maximum message size : 메시지의 최대 사이즈로 1 KB에서 256 KB 사이만 설정이 가능합니다. 용량이 큰 데이터를 이용할 때에는 SQS가 맞지 않습니다. (Default : 256 KB)
  • Receive message wait time : Polling할 때 메시지를 수신받을 수 있도록 기다리는 시간을 설정합니다. 0~20초로 설정이 가능합니다. (Default : 0초)


Encryption

image

암호화에 관련된 설정을 합니다. SQS 키KMS와 같은 암호화 관련된 것을 이용 중이라면 설정하도록 합니다.


Access Policy

image

여기서는 해당 Queue에 접근하고자 하는 정책을 정의합니다. Basic을 이용해서 간단하게 지정할 수도 있고 Advanced를 이용해서 직접 권한을 상세하게 정의할 수 있습니다. Advanced를 이용해서 정의를 해봅니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "Version": "2012-10-17",
  "Id": "Policy1644481158786",
  "Statement": [
    {
      "Sid": "Stmt1644481154611",
      "Effect": "Allow",
      "Principal": {
        "AWS": "IAM 계정 Arn 정보"
      },
      "Action": [
        "sqs:DeleteMessage",
        "sqs:ChangeMessageVisibility",
        "sqs:ReceiveMessage",
        "sqs:SendMessage",
        "sqs:GetQueueAttributes"
      ],
      "Resource": "Queue Arn 정보"
    }
  ]
}

Action을 보면 SQS를 이용한 기능들을 제한하였습니다. 이 외에도 필요한 기능들이 있으면 이 부분에 추가하면 됩니다. Resource에는 원하는 Queue의 Arn 주소를 입력하면 됩니다.


그외

image

그외 설정은 선택적이기 때문에 필요하면 작업하고 Queue를 생성하면 됩니다.

태그: , ,

카테고리:

업데이트: