[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/