์๋ ํ์ธ์ ๊ตฌ๋ ์๋, DevOps ์์๊ณผ ๊ธฐ์ ์ง์์ ์ ๋ฆฌํด์ ๊ณต์ ํด๋๋ฆฌ๋ DevOps ์ฌํ์ ์ํ ์์์ง์ ๋๋ค.
AWS์๋ SNS(Simple Notification Service)๋ผ๋ ์๋น์ค์ SQS(Simple Queue Service)๋ผ๋ ์๋น์ค๊ฐ ์กด์ฌํฉ๋๋ค. ๋ ์๋น์ค๋ ์ด๋ฆ์ ์ฝ์๊ฐ ๋น์ทํ๊ณ ๋ฉ์์ง๋ฅผ ์ ๋ฌ ๋ฐ ์ฒ๋ฆฌํ๋ ๋ฐ์ ์ฌ์ฉํ๋ค๋ ์ ์ด ๋์ผํด์ ํผ๋ํ๊ธฐ ์ฌ์ด๋ฐ์.
๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ AWS SNS์ SQS์ ๋ํด ๋น๊ตํ๋ฉฐ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฉ์์ง(Message)๋ ์ด๋ค ๊ฑธ ์๋ฏธํ๋์?
AWS SNS์ SQS์์ ์ด์ผ๊ธฐํ๋ ๋ฉ์์ง๋ ๋ง ๊ทธ๋๋ก ๋ฌธ์์ด์ด ๋ ์๋ ์๊ณ , JSON ํ์์ ๋ฐ์ดํฐ์ผ ์๋ ์์ต๋๋ค.
์ด๋ฐ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ์๋น์ค๊ฐ ๋ฐ๋ก ์กด์ฌํ๋ ์ด์ ๋ ์ต๊ทผ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๊ฐ ๋ณดํธํ๋ ๊ฒ๊ณผ๋ ๊ด๋ จ์ด ๊น์๋ฐ์.
์ํคํ ์ฒ ๋ด์ ์กด์ฌํ๋ ์๋ง์ ์ปดํฌ๋ํธ๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ ์ํฉ์ด ๋น๋ฒํ๋ค๋ณด๋, ํจ์จ์ ์ด๊ณ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ํ์์ฑ์ด ๋์์ง ๊ฑฐ์ฃ .
์ด๋ ๊ฒ ๋ฉ์์ง๋ฅผ ์ ์กํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ ํจํด 2๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ฐ๋ก ๋ฐํ/๊ตฌ๋ (Pub/Sub) ํจํด๊ณผ ๋ฉ์์ง ํ(Queue) ํจํด์ธ๋ฐ์.
๊ฒฐ๋ก ๋ถํฐ ์ด์ผ๊ธฐํ์๋ฉด, AWS SNS๋ ๋ฐํ/๊ตฌ๋ ํจํด์ ๋ฐ๋ฅด๊ณ , AWS SQS๋ ๋ฉ์์ง ํ ํจํด์ ๋ฐ๋ฅด๋ ์๋น์ค์ ๋๋ค.
๊ฐ ํจํด์ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์๋ฐ์. ๋ ๊ตฌ์กฐ์ ๋ํด์๋ AWS SNS์ SQS ์๋น์ค์ ๋ํด ์์๋ณด๋ฉด์ ์ข ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
AWS SNS๋ ์ด๋ค ์๋น์ค์ธ๊ฐ์?
AWS SNS๋ ๋ฐํ์(Publisher)์์ ๊ตฌ๋ ์(Subscriber)๋ก ๋ฉ์์ง๋ฅผ ์ ๋ฌํ ์ ์๋ ๊ด๋ฆฌํ ์๋น์ค์ ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ฌ์ด์(Application-to-Application, A2A) ์๋ฆผ ์ ์ก์ด ํ์ํ ๋ AWS SNS๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ์.
๋ฟ๋ง ์๋๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด์ฉ์์๊ฒ(Application-to-Person, A2P) ์๋ฆผ์ ์ ์กํ ๋์๋ ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ SMS ๋ฌธ์๋ ํธ์ ์๋ฆผ, ์ด๋ฉ์ผ ๋ฑ์ผ๋ก ์๋ฆผ ์ ์ก์ด ๊ฐ๋ฅํฉ๋๋ค.
AWS SNS์ ๋ฉ์์ง ํํฐ๋ง์ด๋ ๋ฐฐ์น ์ ์ก, ์ค๋ณต ์ ๊ฑฐ ๋ฑ์ ๊ธฐ๋ฅ์ผ๋ก ์ํคํ ์ฒ ๊ฐ์ํ์ ๋น์ฉ ์ ๊ฐ ํจ๊ณผ๋ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ผ AWS SNS๋ ์ด๋ป๊ฒ ๋์ํ ๊น์? ์์์ ์ ๊น ์ด์ผ๊ธฐํ ๊ฒ์ฒ๋ผ, AWS SNS๋ ๋ฐํ/๊ตฌ๋ ํจํด์ ๋ฐ๋ฅด๋๋ฐ์.
๋ฐํ์๋ ํ ํฝ(Topic)์ด๋ผ๋ ๋ ผ๋ฆฌ์ ์ ๊ทผ ํฌ์ธํธ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก ๊ตฌ๋ ์์ ๋น๋๊ธฐ์ ์ผ๋ก ํต์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ๋ AWS SNS์ ํ ํฝ์ ๊ตฌ๋ ํด์ ํ ํฝ์ ๊ฒ์๋ ๋ฉ์์ง๋ฅผ ์๋ ์ ํ์ ์๋ํฌ์ธํธ๋ก ๋ฐ์๋ณผ ์ ์๋ ๊ฒ์ ๋๋ค.
- AWS Lambda
- AWS SQS
- AWS Data Firehose
- HTTP
- ์ด๋ฉ์ผ
- ๋ชจ๋ฐ์ผ ํธ์ ์๋ฆผ
- ๋ชจ๋ฐ์ผ ๋ฌธ์ ๋ฉ์์ง (SMS)
์ด๋ฐ AWS SNS์ ๋์ ๋ฐฉ์์ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
AWS SNS๋ ๋ฉ์์ง์ ์์๊ฐ ๊ณ ์ ๋๋๋ก ์ค์ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ณด๋ด์ง๋ ๋ฉ์์ง์ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ ํ๋ณด๊ฐ ํ์ํ ๋ ํ์ฉํ ์ ์๋๋ฐ์.
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์ ์ก๋๋ ๋ฉ์์ง๋ AWS Key Management Service(KMS)๋ก ์ํธํ๋๊ธฐ ๋๋ฌธ์, ์ ๋ฌ ๊ณผ์ ์ ํ๋ผ์ด๋ฒ์ ๋ณดํธ๊ฐ ํ์ํ ๋์๋ ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
AWS SNS๋ ๋ถ์, ์ปดํจํ , ์ปจํ ์ด๋, DB ๋ฑ ๋ค์ํ AWS ์๋น์ค์์ ๋ฐ์ํ ์ด๋ฒคํธ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ผ ํ ๋์๋ ์ ์ฉํ๊ฒ ํ์ฉ๋ฉ๋๋ค.
๊ทธ๋ผ AWS SQS๋ AWS SNS๋ ์ด๋ค ์ ์์ ๋ค๋ฅธ๊ฐ์?
AWS SQS๋ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ถ์ฐ ์์คํ , ์๋ฒ๋ฆฌ์ค ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํจ๊ป ํ์ฉ ๊ฐ๋ฅํ ๊ด๋ฆฌํ ๋ฉ์์ง ํ ์๋น์ค์ ๋๋ค.
๋๊ท๋ชจ ๋ฐ์ดํฐ์ ๋ํด์๋ ๋ฉ์์ง๊ฐ ๋๋ฝ๋ ๊ฑฑ์ ์์ด ์์ ์ ์ผ๋ก ์ ๋ฌ ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋๋ฐ์.
๋ํ ์์ AWS SNS์ ๋ง์ฐฌ๊ฐ์ง๋ก, AWS Key Management ์๋น์ค๋ฅผ ํ์ฉํด์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ์์ ํ๊ฒ ์ ๋ฌ ๊ฐ๋ฅํฉ๋๋ค.
AWS SQS๋ ์ฌ์ฉ๋์ ๋ฐ๋ผ ์ ์ฐํ๊ณ ๋น์ฉ ํจ์จ์ ์ผ๋ก ์ค์ผ์ผ ์กฐ์ ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ๋ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด AWS SQS๋ ์ด๋ป๊ฒ ์๋ํ ๊น์? ์๋ SQS์์ ์ฒ๋ฆฌ๋๋ ๋ฉ์์ง์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ด ์ดํด๋ณด๋ฉฐ ์์๋ด ์๋ค.
- ๋ฉ์์ง ์์ฐ์๊ฐ ๋ฉ์์ง A๋ฅผ ํ๋ก ๋ณด๋ด๋ฉด ํด๋น ๋ฉ์์ง๋ SQS ์๋ฒ์ ๋ฐฐํฌ๋ฉ๋๋ค.
- ๋ฉ์์ง ์๋น์๊ฐ ํ์์ ๋ฉ์์ง A๋ฅผ ๊ฐ์ ธ์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ, ํด๋น ๋ฉ์์ง๋ ๊ฐ์์ฑ ์ ํ ์๊ฐ(Visibility timeout) ๋์ ํ์ ๊ณ์ ๋จ์์์ผ๋ ๋ค๋ฅธ ์์ฒญ์ ์ํด ์ ๋ฌ๋์ง ์๋ ์ํ๊ฐ ๋ฉ๋๋ค.
- ๋ฉ์์ง ์๋น์๋ ๊ฐ์ ธ์จ ๋ฉ์์ง๋ฅผ ํ์์ ์ญ์ ํ์ฌ ๊ฐ์์ฑ ์ ํ ์๊ฐ ์ดํ์ ํด๋น ๋ฉ์์ง๊ฐ ๋ค์ ์ ๋ฌ๋๊ฑฐ๋ ์ฒ๋ฆฌ๋์ง ์๋๋ก ํฉ๋๋ค.
์ฐธ๊ณ ๋ก, ์ต๋ ๋ฉ์์ง ๋ณด์กด ๊ธฐ๊ฐ(Maximum message retention period)์ ์ค์ ํ๋ฉด ํ์ ํด๋น ๊ธฐ๊ฐ ์ด์ ์กด์ฌํ๋ ๋ฉ์์ง๊ฐ ์๋์ผ๋ก ์ญ์ ๋ฉ๋๋ค. ์ต๋ ๋ฉ์์ง ๋ณด์กด ๊ธฐ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ 4์ผ์ ๋๋ค.
AWS SQS๋ ์ฒ์์๋ ์ ๊น ์ธ๊ธํ๋ ๊ฒ์ฒ๋ผ, ๋ง์ดํฌ๋ก์๋น์ค์ ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ํ ์๋ฒ๋ก ๊ฐ์ํ๊ณ ์์ ์ ์ผ๋ก ์ฐ๊ฒฐํด์ผ ํ ๋ ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก ํธ์๋ ์์คํ ๊ณผ ๋ฐฑ์๋ ์์คํ ์ ๋ถ๋ฆฌ์ํฌ ๋์๋ AWS SQS๋ฅผ ํ์ฉํ ์ ์๋๋ฐ์.
ํ๋ก ํธ์๋์์ ์ฌ์ฉ์์ ์์ฒญ์ด ์์ ๋ ์ฆ๊ฐ์ ์ธ ๋ฐ์์ ๋ณด๋ด๊ณ , ๋ฐฑ์๋์์ ๊ทธ ์์ฒญ๊ณผ ๊ด๋ จ๋ ๋ณต์กํ๊ฑฐ๋ ์๊ฐ์ด ์๋์ ์ผ๋ก ์ค๋๊ฑธ๋ฆฌ๋ ์์ ์ ์ํํ๋ ๋น๋๊ธฐ์ ์ธ ์์ ์ฒ๋ฆฌ์ AWS SQS๋ฅผ ํ์ฉํ ์ ์๋ ๊ฒ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋๊ท๋ชจ ์ํคํ ์ฒ์์ ๋ฉ์์ง์ ์์๋ ์ ์งํ๊ณ ์ค๋ณต์ ๋ฐฉ์งํ๋ฉฐ ๋ฉ์์ง ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋์๋ AWS SQS๋ฅผ ํ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
์ง๊ธ๊น์ง AWS SNS์ SQS์ ๋ํด ์ดํด๋ดค๋๋ฐ์. ๋ ์๋น์ค ๋ชจ๋ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋ฉ์์ง ์ ๋ฌ์ด ๊ฐ๋ฅํ๋ค๋ ๊ณตํต์ ์ ์์ง๋ง...
- SNS๋ ํ๋์ ๋ฉ์์ง๋ฅผ ์ฌ๋ฌ ๊ตฌ๋ ์๊ฐ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ์ฉํ๋ฉฐ,
- SQS๋ ํ๋์ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์๊ฐ ํ๋์ ๋ฐฉ์์ผ๋ก ํ์ฉํ๋ค๋ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
๐ญ๋ง์น๋ฉฐ...
AWS์๋ ๋๋ฌด๋ ๋ค์ํ ์๋น์ค๊ฐ ์กด์ฌํ๋ค๋ณด๋, ์ ๋ฆฌํ๋ ๊ณผ์ ์์ ๋ด์ฉ์ด ์ฐธ ๋ฐฉ๋ํ๋ค๋ ๋๋์ ๋ง์ด ๋ฐ์ต๋๋ค. ์ด๊ฑด ๋ค๋ฅธ ๊ณต๋ถ๋ ์ผ๋ ๋ง์ฐฌ๊ฐ์ง์ผ ํ ๋ฐ์.
๊ทธ๋๋ ๊ธด ํธํก์ด ํ์ํ๋จ ๊ฒ์, ๊ทธ๋งํผ ๊ทธ ์ผ์ ์๋ฏธ๊ฐ ๊ฐ๋ณ์ง ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ง๊ธ ๋น์ฅ ๊ฒฐ๊ณผ๊ฐ ๋์ ๋ณด์ด์ง ์๋๋ผ๋, ๋๋ดํ์ง ์๊ณ ๊พธ์คํ ๋์๊ฐ๋ ํ ์ฃผ๊ฐ ๋์ จ์ผ๋ฉด ํฉ๋๋ค.
ํน์ ์ด๋ฒ ๋ด์ฉ ๊ด๋ จํด์ ๋ ๊ถ๊ธํ ์ ์ด ์์ผ์๋ค๋ฉด ์๋ ๋ฉ์ผ๋ฆฌ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์.๐
๊ทธ๋ผ, ๋ค์ ์์์ง์์ ๋ณด๋ค ์์ฐจ๊ณ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ผ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค.
์ค๋๋ ๊ฐ์ฌํฉ๋๋ค, ๊ตฌ๋ ์๋ ๐บ
๐References
- https://aws.amazon.com/sns/?nc1=h_ls
- https://docs.aws.amazon.com/sns/latest/dg/message-delivery.html
- https://docs.aws.amazon.com/sns/latest/dg/welcome.html
- https://docs.aws.amazon.com/sns/latest/dg/sns-event-sources-and-destinations.html
- https://seohyun0120.tistory.com/entry/AWS-SNS-vs-SQS-%EC%B0%A8%EC%9D%B4%EC%A0%90
์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์