[AWS] Amazon SQS

2023. 7. 26. 09:52ใ†Devops/AWS

https://jeidiiy.notion.site/Amazon-SQS-05252e50f928441d991991383cabe98d?pvs=4 

 

Amazon SQS

Simple Queue Service

jeidiiy.notion.site

๐Ÿ’ก๋…ธ์…˜์— ์ตœ์ ํ™”๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์œ„ ๋งํฌ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Simple Queue Service

1. SQS๋ž€?

  • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ ๋Œ€๊ธฐ์—ด(queue)์šฉ ์™„์ „๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค
  • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜ (10๋…„ ์ด์ƒ)
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ **๋ถ„๋ฆฌ(decouple)**ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

2. ํŠน์ง•

  • ๋ฌด์ œํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰, ํ์— ์žˆ๋Š” ๋ฉ”์‹œ์ง€ ์ˆ˜ ๋˜ํ•œ ๋ฌด์ œํ•œ
  • ๋ฉ”์‹œ์ง€ ์ˆ˜๋ช… - 4์ผ, ์ตœ๋Œ€ 14์ผ
๐Ÿ’ก ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์ž๋งˆ์ž ์ปจ์Šˆ๋จธ๊ฐ€ ์ฝ๊ณ  ํ•ด๋‹น ๋ณด์กด ๊ธฐ๊ฐ„ ๋‚ด์— ์ฒ˜๋ฆฌํ•œ ํ›„ ํ์—์„œ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์†Œ์‹ค๋œ๋‹ค.
  • ์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„ - SQS์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์ฝ์„ ๋•Œ๋งˆ๋‹ค 10ms ์ด๋‚ด๋กœ ๋งค์šฐ ๋น ๋ฅด๊ธฐ ์ฒ˜๋ฆฌ
  • ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ - ์ตœ๋Œ€ 256KB
  • ์ค‘๋ณต ๋ฉ”์‹œ์ง€ ์กด์žฌ ๊ฐ€๋Šฅ
  • best effort ordering์ด๋ผ๋Š” ๋œป์œผ๋กœ out of order ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Œ

3. Producing Messages

  • Producer๋Š” SDK (SendMessage API)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQS์— ๋ฉ”์‹œ์ง€ ์ „์†ก
  • ํ์— ๋ฉ”์‹œ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด Consumer๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ณ  ์‚ญ์ œํ•  ๋•Œ๊นŒ์ง€ ํ์—์„œ ์œ ์ง€

4. Consuming Messages

  • Consumers (EC2 ์ธ์Šคํ„ด์Šค ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, AWS Lambda ๋“ฑ)
  • Consumer๋Š” SQS ๋ฉ”์‹œ์ง€๋ฅผ ํด๋ง
  • Consumer๋Š” ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 10๊ฐœ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  ๊ฐ€๋Šฅ
  • DeleteMessage API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ์‚ญ์ œ

5. Multiple EC2 Instances Consumers

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจ์Šˆ๋จธ ์šด์˜ ๊ฐ€๋Šฅ
  • ๊ฐ ์ปจ์Šˆ๋จธ๋Š” poll ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€ ์„ธํŠธ ์ˆ˜์‹ 
  • At-least once delivery
    • ๋ฉ”์‹œ์ง€๊ฐ€ ์ปจ์Šˆ๋จธ์— ์˜ํ•ด ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ๊ฐ€ ์ˆ˜์‹ 
  • Best-effort message ordering
  • ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ ์ปจ์Šˆ๋จธ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์›Œ์•ผ ํ•จ
  • ๋” ๋งŽ์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์–ด ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ ค์•ผ ํ•œ๋‹ค๋ฉด ์ปจ์Šˆ๋จธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆ˜ํ‰ ํ™•์žฅ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐœ์„  ๊ฐ€๋Šฅ

6. SQS with Auto Scaling Group (ASG)

  • ์ปจ์Šˆ๋จธ๊ฐ€ ASG ๋‚ด๋ถ€์—์„œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  SQS ํ์—์„œ ๋ฉ”์‹œ์ง€ ํด๋ง
  • ASG๋Š” ํ์˜ ๊ธธ์ด(ApproximateNumberOfMessages)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ
  • ์ด๋Š” ๋ชจ๋“  SQS ํ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” CloudWatch ๋ฉ”ํŠธ๋ฆญ
  • ์•Œ๋žŒ ์„ค์ •๋„ ๊ฐ€๋Šฅ
    • ์ผ์ • ์ˆ˜์ค€์ด ๋„˜์–ด๊ฐ€๋ฉด CloudWatch Alarm์„ ํ†ตํ•ด ASG์˜ ์šฉ๋Ÿ‰ ์ฆ๊ฐ€

7. SQS to decouple between application tiers

  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋น„๋””์˜ค ์ฒ˜๋ฆฌ ๋ฐฑ์—”๋“œ ๋ถ„๋ฆฌ
  • ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋น„๋””์˜ค๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด SQS์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก
  • ๋ฐฑ์—”๋“œ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๋น„๋””์˜ค ์ฒ˜๋ฆฌ
  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ๋…๋ฆฝ์  ํ™•์žฅ ๊ฐ€๋Šฅ
  • SQS ๋˜ํ•œ ๋ฌด์ œํ•œ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ํ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜ ๋•๋ถ„์— ์•ˆ์ „

8. Security

  • ์•”ํ˜ธํ™”
    • HTTPS API๋ฅผ ์‚ฌ์šฉํ•œ ๋„คํŠธ์›Œํ‚น ๊ฐ„ ์•”ํ˜ธํ™”
    • KMS ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ๋ฏธ์‚ฌ์šฉ ์•”ํ˜ธํ™”
    • ํด๋ผ์ด์–ธํŠธ ์•”ํ˜ธํ™” - SQS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€๋Š” ์•Š์Œ
  • ์ ‘๊ทผ ์ œ์–ด: IAM ์ •์ฑ…
  • SQS ์ ‘๊ทผ ์ •์ฑ…: S3 ๋ฒ„ํ‚ท ์ •์ฑ…๊ณผ ๋น„์Šทํ•œ ์ •์ฑ…

9. Message Visibility Timeout

  • ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ํด๋งํ•˜๋ฉด ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ์—๊ฒŒ ๋ณด์ด์ง€ ์•Š์Œ
  • 0์ดˆ ~ 12์‹œ๊ฐ„๊นŒ์ง€ ์„ค์ • ๊ฐ€๋Šฅ. ๊ธฐ๋ณธ๊ฐ’ - 30์ดˆ
  • ๋งŒ์•ฝ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผ๋˜๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ์—์„œ ์‚ญ์ œ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์‹œ ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ๋„ฃ์Œ
  • ๊ทธ๋Ÿฌ๋ฉด ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ ๋˜๋Š” ๊ฐ™์€ ์ปจ์Šˆ๋จธ๊ฐ€ ๋‹ค์‹œ ๋ฐ›์Œ
๐Ÿ’ก ๋งŒ์•ฝ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋” ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋‚˜ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋  ๊ฒƒ ๊ฐ™์œผ๋ฉด ์‹œ๊ฐ„์„ ๋” ์–ป๊ธฐ ์œ„ํ•ด ChangeMessageVisibility๋ผ๋Š” API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ SQS์— ์•Œ๋ ค์•ผ ํ•œ๋‹ค.
  • visibility timeout์ด ๋†’์œผ๋ฉด ๋ฉ”์‹œ์ง€๊ฐ€ ํ์— ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • visibility timeout์ด ๋‚ฎ์œผ๋ฉด ์—ฌ๋Ÿฌ ์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ์„ ๊ฒƒ์ด๋ฉฐ ์ค‘๋ณต ์ฒ˜๋ฆฌ๋  ์ˆ˜๋„ ์žˆ์Œ
  • ๋”ฐ๋ผ์„œ message visiblity timeou ๊ฐ’์€ ํ•ฉ๋‹นํ•˜๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•จ

10. Long Polling

  • ์ปจ์Šˆ๋จธ๊ฐ€ ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ์š”์ฒญํ•˜๋Š”๋ฐ ํ์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด ๋ฉ”์‹œ์ง€ ๋„์ฐฉ์„ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ
  • ๋ชฉ์  - ์ง€์—ฐ ์‹œ๊ฐ„ ๋ฐ SQS๋กœ ๋ณด๋‚ด๋Š” API ํ˜ธ์ถœ ํšŸ์ˆ˜ ์ ˆ๊ฐ
  • 1์ดˆ ~ 20์ดˆ ์„ค์ • ๊ฐ€๋Šฅ (20์ดˆ ์„ ํ˜ธ)
  • Long Polling์ด Short Polling ๋ณด๋‹ค ๊ถŒ์žฅ๋จ

๋กฑ ํด๋ง ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

  1. ํ ๋ ˆ๋ฒจ์—์„œ ๊ตฌ์„ฑํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ปจ์Šˆ๋จธ์— Long Polling์„ ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. WaitTimeSeconds๋ฅผ ์ง€์ •ํ•จ์œผ๋กœ์จ ์ปจ์Šˆ๋จธ๊ฐ€ ์Šค์Šค๋กœ Long Polling์„ ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•

11. FIFO Queue

  • FIFO ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” SQS
  • ์—„๊ฒฉํ•œ ๋ฉ”์‹œ์ง€ ์ˆœ์„œ ๋ณด์žฅ
  • ์ฒ˜๋ฆฌ๋Ÿ‰ ์ œํ•œ - ๋ฌถ์Œ(batch)์ด ์•„๋‹ ๊ฒฝ์šฐ 300 msg/s, ๋ฌถ์Œ์ผ ๊ฒฝ์šฐ 3000 msg/s
  • ์ค‘๋ณต ์ œ๊ฑฐ ๊ธฐ๋Šฅ ์ œ๊ณต์„ ํ†ตํ•ด ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ๋งŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ
  • ๋ถ„๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋ฉ”์‹œ์ง€์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์‚ฌ์šฉ

Amazon SQS

  • Simple Queue Service

1. SQS๋ž€?

  • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ ๋Œ€๊ธฐ์—ด(queue)์šฉ ์™„์ „๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค
  • AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜ (10๋…„ ์ด์ƒ)
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ **๋ถ„๋ฆฌ(decouple)**ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

2. ํŠน์ง•

  • ๋ฌด์ œํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰, ํ์— ์žˆ๋Š” ๋ฉ”์‹œ์ง€ ์ˆ˜ ๋˜ํ•œ ๋ฌด์ œํ•œ
  • ๋ฉ”์‹œ์ง€ ์ˆ˜๋ช… - 4์ผ, ์ตœ๋Œ€ 14์ผ</aside>
๐Ÿ’ก ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด์ž๋งˆ์ž ์ปจ์Šˆ๋จธ๊ฐ€ ์ฝ๊ณ  ํ•ด๋‹น ๋ณด์กด ๊ธฐ๊ฐ„ ๋‚ด์— ์ฒ˜๋ฆฌํ•œ ํ›„ ํ์—์„œ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์†Œ์‹ค๋œ๋‹ค.
  • ์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„ - SQS์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์ฝ์„ ๋•Œ๋งˆ๋‹ค 10ms ์ด๋‚ด๋กœ ๋งค์šฐ ๋น ๋ฅด๊ธฐ ์ฒ˜๋ฆฌ
  • ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ - ์ตœ๋Œ€ 256KB
  • ์ค‘๋ณต ๋ฉ”์‹œ์ง€ ์กด์žฌ ๊ฐ€๋Šฅ
  • best effort ordering์ด๋ผ๋Š” ๋œป์œผ๋กœ out of order ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Œ

3. Producing Messages

  • Producer๋Š” SDK (SendMessage API)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQS์— ๋ฉ”์‹œ์ง€ ์ „์†ก
  • ํ์— ๋ฉ”์‹œ์ง€๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด Consumer๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ณ  ์‚ญ์ œํ•  ๋•Œ๊นŒ์ง€ ํ์—์„œ ์œ ์ง€

4. Consuming Messages

  • Consumers (EC2 ์ธ์Šคํ„ด์Šค ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, AWS Lambda ๋“ฑ)
  • Consumer๋Š” SQS ๋ฉ”์‹œ์ง€๋ฅผ ํด๋ง
  • Consumer๋Š” ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 10๊ฐœ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  ๊ฐ€๋Šฅ
  • DeleteMessage API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ์‚ญ์ œ

5. Multiple EC2 Instances Consumers

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจ์Šˆ๋จธ ์šด์˜ ๊ฐ€๋Šฅ
  • ๊ฐ ์ปจ์Šˆ๋จธ๋Š” poll ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€ ์„ธํŠธ ์ˆ˜์‹ 
  • At-least once delivery
    • ๋ฉ”์‹œ์ง€๊ฐ€ ์ปจ์Šˆ๋จธ์— ์˜ํ•ด ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ๊ฐ€ ์ˆ˜์‹ 
  • Best-effort message ordering
  • ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•œ ์ปจ์Šˆ๋จธ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์›Œ์•ผ ํ•จ
  • ๋” ๋งŽ์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์–ด ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋Š˜๋ ค์•ผ ํ•œ๋‹ค๋ฉด ์ปจ์Šˆ๋จธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆ˜ํ‰ ํ™•์žฅ์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐœ์„  ๊ฐ€๋Šฅ

6. SQS with Auto Scaling Group (ASG)

  • ์ปจ์Šˆ๋จธ๊ฐ€ ASG ๋‚ด๋ถ€์—์„œ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  SQS ํ์—์„œ ๋ฉ”์‹œ์ง€ ํด๋ง
  • ASG๋Š” ํ์˜ ๊ธธ์ด(ApproximateNumberOfMessages)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅ
  • ์ด๋Š” ๋ชจ๋“  SQS ํ์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” CloudWatch ๋ฉ”ํŠธ๋ฆญ
  • ์•Œ๋žŒ ์„ค์ •๋„ ๊ฐ€๋Šฅ
    • ์ผ์ • ์ˆ˜์ค€์ด ๋„˜์–ด๊ฐ€๋ฉด CloudWatch Alarm์„ ํ†ตํ•ด ASG์˜ ์šฉ๋Ÿ‰ ์ฆ๊ฐ€

7. SQS to decouple between application tiers

  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋น„๋””์˜ค ์ฒ˜๋ฆฌ ๋ฐฑ์—”๋“œ ๋ถ„๋ฆฌ
  • ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋น„๋””์˜ค๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด SQS์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†ก
  • ๋ฐฑ์—”๋“œ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ๋น„๋””์˜ค ์ฒ˜๋ฆฌ
  • ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ๋…๋ฆฝ์  ํ™•์žฅ ๊ฐ€๋Šฅ
  • SQS ๋˜ํ•œ ๋ฌด์ œํ•œ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ํ์˜ ๋ฉ”์‹œ์ง€ ์ˆ˜ ๋•๋ถ„์— ์•ˆ์ „

8. Security

  • ์•”ํ˜ธํ™”
    • HTTPS API๋ฅผ ์‚ฌ์šฉํ•œ ๋„คํŠธ์›Œํ‚น ๊ฐ„ ์•”ํ˜ธํ™”
    • KMS ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ๋ฏธ์‚ฌ์šฉ ์•”ํ˜ธํ™”
    • ํด๋ผ์ด์–ธํŠธ ์•”ํ˜ธํ™” - SQS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€๋Š” ์•Š์Œ
  • ์ ‘๊ทผ ์ œ์–ด: IAM ์ •์ฑ…
  • SQS ์ ‘๊ทผ ์ •์ฑ…: S3 ๋ฒ„ํ‚ท ์ •์ฑ…๊ณผ ๋น„์Šทํ•œ ์ •์ฑ…

9. Message Visibility Timeout

  • ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ํด๋งํ•˜๋ฉด ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ์—๊ฒŒ ๋ณด์ด์ง€ ์•Š์Œ
  • 0์ดˆ ~ 12์‹œ๊ฐ„๊นŒ์ง€ ์„ค์ • ๊ฐ€๋Šฅ. ๊ธฐ๋ณธ๊ฐ’ - 30์ดˆ
  • ๋งŒ์•ฝ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผ๋˜๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ์—์„œ ์‚ญ์ œ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์‹œ ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ๋„ฃ์Œ
  • ๊ทธ๋Ÿฌ๋ฉด ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ ๋˜๋Š” ๊ฐ™์€ ์ปจ์Šˆ๋จธ๊ฐ€ ๋‹ค์‹œ ๋ฐ›์Œ
๐Ÿ’ก ๋งŒ์•ฝ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋” ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋‚˜ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋  ๊ฒƒ ๊ฐ™์œผ๋ฉด ์‹œ๊ฐ„์„ ๋” ์–ป๊ธฐ ์œ„ํ•ด ChangeMessageVisibility๋ผ๋Š” API๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ SQS์— ์•Œ๋ ค์•ผ ํ•œ๋‹ค.
  • visibility timeout์ด ๋†’์œผ๋ฉด ๋ฉ”์‹œ์ง€๊ฐ€ ํ์— ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • visibility timeout์ด ๋‚ฎ์œผ๋ฉด ์—ฌ๋Ÿฌ ์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ์„ ๊ฒƒ์ด๋ฉฐ ์ค‘๋ณต ์ฒ˜๋ฆฌ๋  ์ˆ˜๋„ ์žˆ์Œ
  • ๋”ฐ๋ผ์„œ message visiblity timeou ๊ฐ’์€ ํ•ฉ๋‹นํ•˜๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•จ

10. Long Polling

  • ์ปจ์Šˆ๋จธ๊ฐ€ ํ์— ๋ฉ”์‹œ์ง€๋ฅผ ์š”์ฒญํ•˜๋Š”๋ฐ ํ์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด ๋ฉ”์‹œ์ง€ ๋„์ฐฉ์„ ๊ธฐ๋‹ค๋ฆฌ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ
  • ๋ชฉ์  - ์ง€์—ฐ ์‹œ๊ฐ„ ๋ฐ SQS๋กœ ๋ณด๋‚ด๋Š” API ํ˜ธ์ถœ ํšŸ์ˆ˜ ์ ˆ๊ฐ
  • 1์ดˆ ~ 20์ดˆ ์„ค์ • ๊ฐ€๋Šฅ (20์ดˆ ์„ ํ˜ธ)
  • Long Polling์ด Short Polling ๋ณด๋‹ค ๊ถŒ์žฅ๋จ

๋กฑ ํด๋ง ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

  1. ํ ๋ ˆ๋ฒจ์—์„œ ๊ตฌ์„ฑํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ปจ์Šˆ๋จธ์— Long Polling์„ ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. WaitTimeSeconds๋ฅผ ์ง€์ •ํ•จ์œผ๋กœ์จ ์ปจ์Šˆ๋จธ๊ฐ€ ์Šค์Šค๋กœ Long Polling์„ ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•

11. FIFO Queue

  • FIFO ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋Š” SQS
  • ์—„๊ฒฉํ•œ ๋ฉ”์‹œ์ง€ ์ˆœ์„œ ๋ณด์žฅ
  • ์ฒ˜๋ฆฌ๋Ÿ‰ ์ œํ•œ - ๋ฌถ์Œ(batch)์ด ์•„๋‹ ๊ฒฝ์šฐ 300 msg/s, ๋ฌถ์Œ์ผ ๊ฒฝ์šฐ 3000 msg/s
  • ์ค‘๋ณต ์ œ๊ฑฐ ๊ธฐ๋Šฅ ์ œ๊ณต์„ ํ†ตํ•ด ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ๋งŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ
  • ๋ถ„๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋ฉ”์‹œ์ง€์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์‚ฌ์šฉ

'Devops > AWS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AWS] Kinesis Data Stream  (0) 2023.07.26
[AWS] Amazon SNS  (0) 2023.07.26
[AWS] AWS DataSync  (0) 2023.07.04
[AWS] AWS Transfer Family  (0) 2023.07.04
[AWS] AWS Storage Gateway  (0) 2023.07.04