18. AWS Integration & Messaging
SQS, SNS & Kinesis
Contents
Application communication
Application communication ๋ ๊ฐ์ง ํจํด
- Synchronous communications (application to application)
- Synchronous๋ ์์ฒญ๋์ด ๊ธ์ฆํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ํฌ ์ ์๋ค.
- Asynchronous / Event based (application to queue to application)
์ ํ๋ฆฌ์ผ์ด์
์์กด๊ด๊ณdecouple
๋ฅผ ๋ฎ์ถ๋ ์ฌ๋ก
์๋ ์๋น์ค๋ค์ ์ฌ์ฉํ์ฌ ์ฆ๊ฐ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ๊ฐ๋ฅ ํ๋ค.
- SQS ์ฌ์ฉ : Queue ๋ชจ๋ธ
- SNS ์ฌ์ฉ : pub/sub ๋ชจ๋ธ
- Kinesis : ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ธ
Amazon SQS
Amazon SQS - Standard Queue
- AWS์์ ๊ฐ์ฅ ์ค๋๋ ์๋น์ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ decouplingํ๊ธฐ ์ํด ์๋น์ค๋ฅผ ๊ด๋ฆฌ
- ์ค๋ณต ๋ฉ์ธ์ง๋ฅผ ๊ฐ์ ์ ์๋ค. -> ์ ์ด๋ ํ๋ฒ์ ์ ์ก ๋๋ค.
- Can have out of order messages (best effort ordering)
ํน์ง
- ํ์ ์ ์ฌํ ์ ์๋ ๋ฉ์ธ์ง ๋ฐ ์ฒ๋ฆฌ๋์ ์ ํ์ด ์๋ค
unlimited throughput
. - ๊ธฐ๋ณธ 4์ผ์์ ์ต๋ 14์ผ๊น์ง ํ์ ๋ฉ์ธ์ง๋ฅผ ๋ณด์กดํ ์ ์๋ค.
- ๋ฎ์ ์ง์ฐ
- ๋ฉ์ธ์ง์ ํฌ๊ธฐ๋ 256KB๋ก ์ ํ
Produing Message
- SDK์
SendMessage API
๋ฅผ ํตํด SQS ๋ฉ์ธ์ง๋ฅผ ์์ฐ - ๋ฉ์ธ์ง๋ consumer๊ฐ ์ญ์ ํ๊ธฐ ์ ๊น์ง SQS์ ์ ์ง๋๋ค.
- ๋ฉ์ธ์ง ๋ณด์กด๊ธฐ๊ฐ : ๊ธฐ๋ณธ 4 days ~ 14 days
example
์์) ์ฃผ๋ฌธ์ ๋ณด๋ฅผ ์ ์กํ๋ค.
- Order Id
- Customer Id
- ๋ค๋ฅธ ์์ฑ ๊ฐ๋ค…
Consuming Message
- consumers : ์ด์ฉ์ค์ธ EC2 ์ธ์คํด์ค, ์๋ฒ ๋๋ AWS ๋๋ค ์๋น์ค ๋ฑ
- Poll SQS for message : ๋งค 10์ด๋ง๋ค ๋ฉ์ธ์ง๋ฅผ ํด๋ง ํ๋ค.
- Process the message : ex) RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฉ์ธ์ง๋ฅผ ์ ์ฅ
DeleteMessage API
๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋๋ฉด ๋ฉ์ธ์ง๋ฅผ ์ญ์ ํด์ผ ํ๋ค.
Multiple EC2 ์ธ์คํด์ค ์ปจ์๋จธ
- ์ปจ์๋จธ๋ค์ ๋ฉ์ธ์ง๋ฅผ ์์ ๋ฐ๊ณ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
- ์ ์ด๋ ํ๋ฒ์ ์ ์ก์ด ๋๋ค.
- ์ปจ์๋จธ๋ ์ฒ๋ฆฌ๊ฐ ์๋ฃ๋๋ฉด ๋ฉ์ธ์ง๋ฅผ ์ญ์ ํ๋ค.
- ์ปจ์๋จธ๋ฅผ ๋ณ๋ ฌ๋ก ํ์ฅํ์ฌ ํ๋ก์ธ์ค ์ฒ๋ฆฌ๋์ ์ฆ๊ฐ์ํฌ ์ ์๋ค.
SQS with Auto Scaling Group (ASG)
SQS to decouple between application tiers
SQS ๋ณด์
์ํธํ
- HTTPS API๋ฅผ ํตํ ์ ์ก์ค ์ํธํ
- KMS ํค๋ฅผ ํตํ
At-rest
์ํธํ - ํด๋ผ์ด์ธํธ ์ํ๋๋๋ก ์/๋ณตํธํ๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์์ ๊ฐ๋ฅ
์ ๊ทผ์ ํ
IAM
์ ์ฑ ์