[AWS] SQS Standard: MessageGroupId (Fair Queue)

[์›๋ณธ ๋งํฌ]

SQS ํ‘œ์ค€ ํ์—๋„ FIFO์—๋งŒ ์žˆ๋˜ Message Group ๊ธฐ๋ฐ˜์˜ ํ…Œ๋„ŒํŠธ ๊ฒฉ๋ฆฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.
์›๋ž˜ ํ‘œ์ค€ ํ๋Š” ์ฑ„๋„์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ์šฉ๋„๋งˆ๋‹ค ํ๋ฅผ ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฐ ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ข€ ํ•ด์†Œ๋œ ๊ฒƒ์ด๋‹ค.

์ตœ์ดˆ๋กœ ๋‚˜์˜จ ๊ฒƒ์€ 2025๋…„ 7์›”์ฆˆ์Œ์ธ๋ฐ, ์„œ์šธ์„ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฆฌ์ „์œผ๋กœ ํ™•๋Œ€๋œ ๊ฒƒ์€ ์ตœ๊ทผ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

์ด์ œ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ• ๋•Œ ๋ฉ”์„ธ์ง€ ๊ทธ๋ฃน ID๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.




Fair Queue์˜ ๋™์ž‘ ์›๋ฆฌ

์ด๊ฑด FIFO ํ์˜ MessageGroupID์ฒ˜๋Ÿผ ์—„๋ฐ€ํ•œ ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. A/B ๊ทธ๋ฃน์„ GroupID๋กœ ๋‚˜๋ˆˆ๋‹ค๊ณ  ํ•ด์„œ A Consumer๊ฐ€ A ๋ฉ”์„ธ์ง€๋งŒ ๋ฐ›๊ณ  B Consumer๊ฐ€ B ๋ฉ”์„ธ์ง€๋งŒ ๋ฐ›๋Š”๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ํŒŒํ‹ฐ์…˜์€ ์•ˆ๋œ๋‹ค.

์ด๊ฑด ์ผ์ข…์˜ ์šฐ์„ ์ˆœ์œ„ ํ์ฒ˜๋Ÿผ ์ž‘๋™ํ•  ๋ฟ์ด๋‹ค. ReceiveMessage๋ฅผ ํ• ๋•Œ ๋จผ์ € ๋‚˜์˜ค๋Š” ๋ฉ”์„ธ์ง€์˜ ์šฐ์„ ์ˆœ์œ„ ๋ง์ด๋‹ค.
์™œ ์ด๋Ÿฐ ์–ด์„คํ”ˆ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์„๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž.
ํ‘œ์ค€ ํ์—์„œ ์ฑ„๋„์„ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด(๋ฉ”์„ธ์ง€ ์•ˆ์— group ๊ฐ’์„ ๋„ฃ๊ฑฐ๋‚˜ ํ•ด์„œ), ์ผ์ข…์˜ "๋…ธ์ด์ฆˆ" ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. A ๊ทธ๋ฃน์˜ ๋ฉ”์„ธ์ง€๊ฐ€ ๋งŽ๋‹ค๊ณ  ์น˜๋ฉด A ๊ทธ๋ฃน์˜ ์ฒ˜๋ฆฌ๋กœ ์ธํ•ด์„œ ๋‹ค๋ฅธ ๊ทธ๋ฃน์˜ ๋ฉ”์„ธ์ง€๊ฐ€ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ๋ง์ด๋‹ค. A๊ฐ€ ํ•˜๋„ ๋งŽ์œผ๋‹ˆ๊นŒ ํ™•๋ฅ ์ ์œผ๋กœ A ๋ฉ”์„ธ์ง€์˜ ๋ฐ›ํ™˜์ด ๋” ์žฆ์•„์ง€๊ณ , ๋‹ค๋ฅธ ๋ฉ”์„ธ์ง€๋Š” ๋’ค๋กœ ๋ฐ€๋ฆฐ๋‹ค.

SQS์—์„œ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜๋Š” Fair Queue -MessageGroupID์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋‹ค์†Œ ์™„ํ™”๋œ๋‹ค.
๋ฉ”์„ธ์ง€์˜ ๊ฐœ์ˆ˜์— ๋น„๋ก€ํ•ด์„œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ๋ฉ”์„ธ์ง€๊ฐ€ ์ ์€ Group์˜ ์ฒ˜๋ฆฌ๋ฅผ ์šฐ์„ ํ•œ๋‹ค.

์ด๋Ÿฌ๋ฉด A ๋ฉ”์„ธ์ง€๊ฐ€ ๋งŽ์ด ๋ชฐ๋ ค๋„ C๋ฅผ ์šฐ์„ ์œผ๋กœ Receiveํ•˜๊ฒŒ ํ•ด์ฃผ๋ฏ€๋กœ, ๋น„๊ต์  ๊ณต์ •ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๊ฒŒ๋” ํ•ด์ค€๋‹ค.




๋น„์šฉ

๊ณต์งœ๋Š” ์•„๋‹ˆ๊ณ  ์ถ”๊ฐ€ ์š”๊ธˆ์„ ์š”๊ตฌํ•œ๋‹ค.

https://aws.amazon.com/ko/sqs/pricing/
ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์š”์ฒญ ๋ฐฑ๋งŒ๊ฑด๋‹น 0.1๋‹ฌ๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋กœ ์ฒญ๊ตฌ๋œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋น„์‹ธ์ง€๋Š” ์•Š๋‹ค.




์‚ฌ์šฉ๋ฒ•

์‚ฌ์šฉ๋ฒ•์€ ๋ณ„๊ฒƒ ์—†๋‹ค.
์ด๊ฑด Producer์—๋งŒ ์˜ํ–ฅ์„ ์ฃผ๊ณ , Consumer ์ธก์—๋Š” ์‹ค์งˆ์ ์ธ ๋ณ€๊ฒฝ์ด ์—†๋Š” ์‚ฌํ•ญ์ด๋ฏ€๋กœ ๋” ๊ทธ๋ ‡๋‹ค.

์ „์†กํ• ๋•Œ GroupID๋งŒ ๋„ฃ์–ด์ค€๋‹ค๋ฉด SQS์—์„œ ์ž์ฒด์ ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ์ฒ˜๋ฆฌ๋ฅผ ์•Œ์•„์„œ ์ž˜ ํ•ด์ค€๋‹ค.
๊ทธ ์ดํ›„๋กœ ๊ฑด๋“œ๋ ค์•ผํ•  ๋ถ€๋ถ„์€ ์—†๋‹ค. ์šฐ์„ ์ˆœ์œ„๋งŒ ๋‹ฌ๋ผ์งˆ ๋ฟ, ๊ธฐ๋Šฅ์ ์œผ๋กœ ๋‹ฌ๋ผ์ง€์ง„ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๊ทธ๋ž˜์„œ groupID ๊ธฐ๋ฐ˜์˜ ํŒŒํ‹ฐ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ๊ทธ๊ฑด ์ˆ˜๋™์œผ๋กœ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

Receive ์‹œ์ ์˜ MessageGroupID ํ•„ํ„ฐ๋ง์€ ํ˜„์žฌ๋„ FIFO์—์„œ๋งŒ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.
ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๊ธด ํ•˜์ง€๋งŒ ๋ฌด์‹œ๋  ๊ฒƒ์ด๋‹ค.

consumer๋ฅผ group ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ณ  ์‹ถ๋‹ค๋ฉด ์ผ๋‹จ ๋ฐ›์€ ๋‹ค์Œ์—, ๋ณธ์ธ group์ด ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ ํ์— ๋ฐ˜ํ™˜ํ•˜๋Š” ์‹์œผ๋กœ ์ˆ˜๋™ ๊ตฌํ˜„์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.



์ฐธ์กฐ
https://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fair-queues.html
https://aws.amazon.com/about-aws/whats-new/2025/07/amazon-sqs-introduces-fair/
https://aws.amazon.com/ko/blogs/compute/building-resilient-multi-tenant-systems-with-amazon-sqs-fair-queues/