[AWS] SNS: SQS FIFO Fan-out ๊ตฌ์„ฑํ•˜๊ธฐ

SNS๋Š” SQS์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์–ด๋Œ‘ํ„ฐ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.

๊ณผ๊ฑฐ์— SQS->Lambda ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์ง์ ‘ ์ง€์›๋˜์ง€ ์•Š์„ ๋•Œ๋Š” ๊ฐ€์šด๋ฐ SNS์„ ๊ปด๋„ฃ์–ด์•ผํ–ˆ๊ณ , ์ง€๊ธˆ๋„ ์ผ๋ถ€ ์žฌ์ฒ˜๋ฆฌ ๋งค์ปค๋‹ˆ์ฆ˜์— ์žˆ์–ด์„œ๋Š” SQS->SNS->Lambda ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์— ์ด์ ์ด ์žˆ๋‹ค.

๊ทธ ์™ธ์—๋„ SNS๊ฐ€ ์œ ์šฉํ•œ ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, FIFO ํ™˜๊ฒฝ์—์„œ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด Fan-out์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ด ๊ฒฝ์šฐ์—๋Š” SQS->SNS๊ฐ€ ์•„๋‹ˆ๋ผ, SNS->SQS๊ฐ€ ๋œ๋‹ค.




๋น„์šฉ

https://aws.amazon.com/ko/sns/pricing/
SNS์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์ถ”๊ฐ€์ ์ธ ์š”๊ธˆ์ด ๋ฐœ์ƒํ•œ๋‹ค. ๋ณดํ†ต 2๊ฐ€์ง€ ๊ด€์ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์ผ๋‹จ SNS์—์„œ ๊ตฌ๋… SQS์— ๋ฉ”์„ธ์ง€๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์˜๋Š”๊ฑธ ์š”์ฒญ ํšŸ์ˆ˜๋กœ ์ณ์„œ 100๋งŒ๊ฐœ๋‹น ๋น„์šฉ์ด ๋‚˜๊ฐ„๋‹ค.


๊ทธ๋ฆฌ๊ณ  SNS->SQS ์ „์†ก๋„ ๋ฐ์ดํ„ฐ ์ „์†ก ๋น„์šฉ์œผ๋กœ ์ทจ๊ธ‰๋œ๋‹ค.




FIFO ํ ๋งŒ๋“ค๊ธฐ

๋จผ์ € Fanoutํ•  fifo ํ๋ฅผ 2๊ฐœ ๋งŒ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

๊ทธ๋ƒฅ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.




์ฃผ์ œ(Topic) ๋งŒ๋“ค๊ธฐ

์ด์ œ ์ € ํ๋“ค์„ SNS๋ฅผ ํ†ตํ•ด์„œ ๋ฌถ์–ด์•ผํ•œ๋‹ค.

fifo๋กœ ์ ๋‹นํžˆ ๋งŒ๋“ ๋‹ค.




๊ตฌ๋… ์—ฐ๊ฒฐํ•˜๊ธฐ

ํ๋กœ ๊ฐ€์„œ

๋ฐฉ๊ธˆ ๋งŒ๋“  sns ํ† ํ”ฝ์„ ๊ตฌ๋…์‹œํ‚จ๋‹ค.


๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ 2๊ฐœ ๋‹ค ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฑฐ์˜ ๋์ด๋‹ค.




SNS์— ๋ฉ”์„ธ์ง€ ์˜๊ธฐ

๊ทธ๋Ÿผ ์ด์ œ SNS์— ๋ฉ”์„ธ์ง€๋ฅผ ์˜๋ฉด, SNS๊ฐ€ ๋‹ค์‹œ ๊ตฌ๋…์ค‘์ธ SQS ํ๋“ค์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋‹ค์‹œ ์ „๋‹ฌํ•ด์ค„ ๊ฒƒ์ด๋‹ค.

๋“ค์–ด๊ฐ€์„œ "๋ฉ”์‹œ์ง€ ๊ฒŒ์‹œ"


๋ฉ”์„ธ์ง€ ์˜ต์…˜์€ ์ ๋‹นํžˆ ๋„ฃ๋Š”๋‹ค. sqs fifo์™€ ๋™์ผํ•˜๋‹ค.


๋‚ ๋ ค์ฃผ๋ฉด


๊ตฌ๋…์ค‘์ธ ๋ชจ๋“  ํ์— ๋‚ ๋ผ๊ฐ„๋‹ค.




๊ตฌ๋… ํ•„ํ„ฐ ๊ตฌ์„ฑํ•˜๊ธฐ

๊ทผ๋ฐ ๋ฉ”์„ธ์ง€๋ฅผ ํŠน์ • ์ฃผ์ œ๋ณ„๋กœ ๊ฐ๊ฐ์˜ ํ์— ๋ถ„์‚ฐ๋˜๊ฒŒ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์ € ๋™์ž‘์€ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

๋‹คํ–‰ํžˆ sns ๊ตฌ๋…์—๋Š” ๊ตฌ๋… ํ•„ํ„ฐ๋ผ๋Š”๊ฒŒ ์žˆ์–ด์„œ, ๋ฉ”์‹œ์ง€ ์†์„ฑ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฑธ๋Ÿฌ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.
์ด๊ฑธ ์‘์šฉํ•˜๋ฉด ๋”์šฑ ํšจ๊ณผ์ ์ธ ๋ถ„์‚ฐ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋จผ์ € buy ํ์˜ ๊ตฌ๋…์— ๋“ค์–ด๊ฐ€์„œ ํ•„ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ฒ ๋‹ค.

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค๋ฉด group์ด๋ผ๋Š” ์†์„ฑ์ด buy์ธ ๊ฒƒ๋งŒ ๋ฐ›๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค.


sell๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ–ˆ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๋ฉ”์„ธ์ง€๋ฅผ ์˜๋˜, ์†์„ฑ์„ ํ†ตํ•ด ๊ทธ๋ฃน์„ ์„ค์ •ํ•˜๋ฉด


๊ทธ ํ•„ํ„ฐ์— ์ผ์น˜ํ•˜๋Š” ํ์—๋งŒ ๋ฉ”์„ธ์ง€๊ฐ€ ์ „์†ก๋  ๊ฒƒ์ด๋‹ค.
์ด๋ฒˆ์—” ํ•˜๋‚˜์—๋งŒ ์ž˜ ์ „์†ก๋๋‹ค.

์ด๋Ÿฐ ๋А๋‚Œ์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.



์ฐธ์กฐ
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fifo-queue-message-identifiers.html
https://velog.io/@zzaoman/AWS-SQS-vs.-SNS
https://aws.amazon.com/getting-started/hands-on/send-fanout-event-notifications/