[AWS] Amazon SNS
2023. 7. 26. 09:53ใDevops/AWS
https://jeidiiy.notion.site/Amazon-SNS-2ece4a5e47114bf0a543cf427ebb5032?pvs=4
๐ก๋ ธ์ ์ ์ต์ ํ๋ ๊ธ์ ๋๋ค. ์ ๋งํฌ๋ฅผ ํตํด ์ ๊ทผํ ์ ์์ต๋๋ค.
- Simple Notification Service
1. SNS๋?
- ํ๋์ ๋ฉ์์ง๋ฅผ ์ฌ๋ฌ ์์ ์์๊ฒ ์ ์กํด์ผ ํ ๋ ์ฌ์ฉ
- Pub/Sub ํจํด - ๋ฉ์์ง๋ฅผ ํ๋์ ์ฃผ์ (Topic)์ผ๋ก ๊ฒ์(Publish)ํ๋ฉด ๊ตฌ๋ ์(Subscriber)๋ค์ด ์ด๋ฅผ ์์ ํ์ฌ ๋ณด๊ด
- ์ด๋ฒคํธ ์์ฐ์๋ ํ SNS ํ ํฝ์๋ง ๋ฉ์์ง ์ก์
- ์ด๋ฒคํธ ์์ ์(๊ตฌ๋ ์)๋ ํด๋น ์ฃผ์ ๋ก ์ ์ก๋ ๋ฉ์์ง๋ฅผ ๋ชจ๋ ์์ (์ ๊ท ๊ธฐ๋ฅ: ๋ฉ์์ง ํํฐ๋ง ๊ธฐ๋ฅ)
- ์ฃผ์ ๋ณ ์ต๋ ์ฝ 12,500,000๋ช ์ ๊ตฌ๋ ์ ๊ฐ๋ฅ
- ๊ณ์ ๋น ์ต๋ ์ฝ 10๋ง ๊ฐ์ ํ ํฝ ๊ฐ๋ฅ
- ๋ง์ AWS ์๋น์ค์ ํตํฉ ๊ฐ๋ฅ
- AWS์์ ์๋ฆผ์ด ๋ฐ์ํ๋ฉด ์ด๋ฌํ ์๋น์ค๊ฐ ์ง์ ๋ SNS ํ ํฝ์ผ๋ก ์๋ฆผ ์ ์ก
2. ์ง์๋๋ ๊ตฌ๋ ์(subscriber) ์ข ๋ฅ
- ์ด๋ฉ์ผ
- SMS ๋ฐ ๋ชจ๋ฐ์ผ ์๋ฆผ
- HTTP(S) ์๋ํฌ์ธํธ๋ก ์ง์ ๋ฐ์ดํฐ ์ ์ก
- SQS์ ํตํฉํ์ฌ ํ๋ก ๋ฉ์์ง ์ ์ก
- ๋ฉ์์ง ์์ ํ ํจ์๊ฐ ์ฝ๋๋ฅผ ์ํํ๋๋ก Lambda์ ์ ์ก
- Firehose๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ S3๋ Redshift๋ก ์ ์ก
3. ํผ๋ธ๋ฆฌ์ฑ ๋ฐฉ๋ฒ
1. ํ ํฝ ํผ๋ธ๋ฆฌ์ (SDK ์ฌ์ฉ)
- ํ ํฝ ์์ฑ
- ๊ตฌ๋ ์์ฑ
- SNS ํ ํฝ ํผ๋ธ๋ฆฌ์
2. ์ง์ ํผ๋ธ๋ฆฌ์ (for ๋ชจ๋ฐ์ผ ์ฑ SDK)
- ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ
- ํ๋ซํผ ์๋ํฌ์ธํธ ์์ฑ
- ํ๋ซํผ ์๋ํฌ์ธํธ์ ํผ๋ธ๋ฆฌ์
์์ ๊ฐ๋ฅ ๋์
- GCM
- Apple APNS
- Amazon ADM ๊ตฌ๋ ์ ๋ฑ
4. Security
- ์ํธํ
- HTTPS API๋ฅผ ์ฌ์ฉํ ๋คํธ์ํน ๊ฐ ์ํธํ
- KMS ํค๋ฅผ ์ฌ์ฉํ ๋ฏธ์ฌ์ฉ ์ํธํ
- ํด๋ผ์ด์ธํธ ์ํธํ - SQS์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ์ง๋ ์์
- ์ ๊ทผ ์ ์ด: IAM ์ ์ฑ
- SNS ์ ๊ทผ ์ ์ฑ
: S3 ๋ฒํท ์ ์ฑ
๊ณผ ๋น์ทํ ์ ์ฑ
- SNS ํ ํฝ์ ๊ต์ฐจ ๊ณ์ ์ ๊ทผ ๊ถํ์ ๊ฐ๊ฑฐ๋ S3 ์ด๋ฒคํธ์ ๊ฐ์ ์๋น์ค๊ฐ SNS ํ ํฝ์ ์์ฑํ ์ ์๋๋ก ํ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๋งค์ฐ ์ ์ฉ
5. SNS + SQS: Fan Out
- ๋ฉ์์ง๋ฅผ ์ฌ๋ฌ SQS ํ๋ก ๋ณด๋ด๊ณ ์ถ์๋ฐ ๋ชจ๋ SQS ํ์ ๊ฐ๋ณ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ
- ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๊ฐ์ ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋๊ฑฐ๋, ์ ๋ฌ ์คํจ, SQS ํ์ ์ถ๊ฐ
- ์ฌ๋ฌ ํ์ ๋์ผํ ์ด๋ฒคํธ ์๋ฆผ์ ๋ณด๋ด๋ ค๋ ๊ฒฝ์ฐ
- Kinesis Data Firehose๋ฅผ ํตํด SNS์์ S3๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ค๋ ๊ฒฝ์ฐ
๐ก ์ด๋ฌํ ๊ฒฝ์ฐ Fan Out ํจํด์ ์ ์ฉํ ์ ์๋ค.
1๋ฒ ์ํคํ ์ฒ - ๋ฉ์์ง๋ฅผ ์ฌ๋ฌ SQS ํ๋ก ๋ณด๋ด๋ ค๋ ๊ฒฝ์ฐ
- SNS ํ ํฝ์ ๋ฉ์์ง๋ฅผ ์ ์กํ ํ ์ํ๋ ์์ SQS ํ๊ฐ SNS ํ ํฝ์ ๊ตฌ๋
- ์ด ํ๋ค์ ๊ตฌ๋ ์๋ก์ SNS๋ก ๋ค์ด์ค๋ ๋ฉ์์ง ์์
- ์์ ํ ๋ถ๋ฆฌ๋ ๋ชจ๋ธ, ๋ฐ์ดํฐ ์์ค X
- SQS๋ก ์์ ์ฌ์๋ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ ์ง์์ฑ, ์ง์ฐ ์ฒ๋ฆฌ ์ํ ๊ฐ๋ฅ
- ๋ ๋ง์ SQS ํ ์ถ๊ฐ ๊ฐ๋ฅ
- ๋ฆฌ์ ๊ฐ ์ ๋ฌ ๊ฐ๋ฅ
- ๋ณด์์ ๊ฐ๋ฅํ๋ค๋ฉด ํ ๋ฆฌ์ ์ SNS ํ ํฝ์์ ๋ค๋ฅธ ๋ฆฌ์ ์ SQS ํ๋ก ๋ฉ์์ง ์ ๋ฌ ๊ฐ๋ฅ
๐ก SQS ์ ๊ทผ ์ ์ฑ ์์ SNS ํ ํฝ์ด SQS ํ์ ์ฐ๊ธฐ ์์ ์ ํ ์ ์๋๋ก ํ์ฉํด์ผ ํ๋ค.
2๋ฒ ์ํคํ ์ฒ - ์ฌ๋ฌ ํ์ ๋์ผํ ์ด๋ฒคํธ ์๋ฆผ์ ๋ณด๋ด๋ ค๋ ๊ฒฝ์ฐ
- S3 ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ S3 ๋ฒํท์ ์ด๋ฒคํธ๋ฅผ ๋ง๋ค๊ณ ์ด ์ด๋ฒคํธ๋ฅผ SNS ํ ํฝ์ผ๋ก ์ ์กํ ํ Fan Out ํจํด์ผ๋ก ๋ง์ SQS ํ๊ฐ SNS ํ ํฝ์ ๊ตฌ๋
ํ๊ฒ ํจ
- ๋ค๋ฅธ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ , ์ด๋ฉ์ผ, Lambda ํจ์ ๋ฑ๋ ๊ตฌ๋ ๊ฐ๋ฅ
3๋ฒ ์ํคํ ์ฒ - Kinesis Data Firehose๋ฅผ ํตํด SNS์์ S3๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ค๋ ๊ฒฝ์ฐ
- SNS๋ฅผ KDF์ ์ง์ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ SNS ํ ํฝ์ผ๋ก ์ ์ก ๊ฐ๋ฅ
- ๊ทธ ๋ค์ KDF์์ ํด๋น ์ ๋ณด๋ฅผ ์์ ํ๊ณ ํด๋น KDF์์ S3 ๋ฒํท์ผ๋ก ์ ๋ฌํ๊ฑฐ๋ ํน์ KDF ๋ชฉ์ ์ง๋ก ์ ๋ฌ ๊ฐ๋ฅ
๐ก ์ด๋ฐ ๋ฐฉ์์ผ๋ก SNS ํ ํฝ์ ๋ฉ์์ง๋ฅผ ๊ณ์ ์ด์ด๊ฐ๋๋ก ํ์ฅ์ด ๊ฐ๋ฅํ๋ค.
6. FIFO ํ ํฝ
- SNS์๋ ํ ํฝ์ ๋ฉ์์ง ์์๋ฅผ ์ง์ ํ๋ FIFO ๊ธฐ๋ฅ ์กด์ฌ
- ๋ฉ์์ง ๊ทธ๋ฃน ID์ ๋ฐ๋ผ ์์๋ฅผ ๋งค๊ธฐ๊ณ ์ค๋ณต ์ ๊ฑฐ ID๋ฅผ ํ์ฉํ๊ฑฐ๋ ๋ด์ฉ์ ๋น๊ตํ์ฌ ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ
- SQS FIFO ํ๋ฅผ FIFO SNS ํ ํฝ์ ๊ตฌ๋ ์๋ก ์ค์
- ์ ํ์ ์ธ ์ฒ๋ฆฌ๋ - SQS ํ์ ๋์ผ
- SQS FIFO ํ๋ง SNS FIFO ํ ํฝ์ ์ฝ์ด๋ค์ผ ์ ์๊ธฐ ๋๋ฌธ
7. ๋ฉ์์ง ํํฐ๋ง
- SNS ํ ํฝ์ ๊ตฌ๋ ํ ๋ ์ ์ก๋๋ ๋ฉ์์ง๋ฅผ ํํฐ๋งํ๋๋ฐ ์ฌ์ฉ๋๋ JSON ์ ์ฑ
- ๊ธฐ๋ณธ ๋์ - ํํฐ๋งํ์ง ์์
'Devops > AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Kinesis Data Firehose (0) | 2023.07.26 |
---|---|
[AWS] Kinesis Data Stream (0) | 2023.07.26 |
[AWS] Amazon SQS (0) | 2023.07.26 |
[AWS] AWS DataSync (0) | 2023.07.04 |
[AWS] AWS Transfer Family (0) | 2023.07.04 |