Message Broker Selection.md - 100-hours-a-week/KTB4-17th-wiki GitHub Wiki
Valkey Pub/Sub ์ ํ ๊ทผ๊ฑฐ์ ํฌ๊ธฐ ๊ณ์ฐ
์ ํ ๊ทผ๊ฑฐ
์๋น์ค๋ 1:1 ์ฑํ ๋ง ์ ๊ณตํ๋ฉฐ, ๋ฐฉ๋น ํ๊ท 10๊ฑด์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค๊ณ ๊ฐ์ ํ๋ค. ๋ ์ฑํ ์๋ฒ๊ฐ ๊ฐ์ ์ฑ๋์ ๊ตฌ๋ ํ๋ฉด ๋ฐ์ ์๋ฒ๋ ์์ ์๊ฐ ์ด๋ ์๋ฒ์ ์ ์ํ๋์ง ์ ํ์๊ฐ ์๋ค. ๋ ์๋ฒ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ ๋ค ๊ฐ์์ ๋ก์ปฌ ์ฐ๊ฒฐ๋ง ๊ฒ์ฌํ๋ค. ElastiCache Pub/Sub ์ฌ์ฉ ์ฌ๋ก
Valkey Pub/Sub์ ์จ๋ผ์ธ ์๋ฆผ ๊ฒฝ๋ก์ด๊ณ RDS๋ ๋ฉ์์ง ์๋ณธ์ด๋ค. RDS์ ๋ฉ์์ง๋ฅผ ์ ์ฅํ ๋ค ์ด๋ฒคํธ๋ฅผ ๋ฐํํ๋ค. ๋ฐ์ ์์ ์ฌ์ ์ก์๋ ํด๋ผ์ด์ธํธ ์์ฒญ ID๋ฅผ ์ฌ์ฉํด ์ค๋ณต ์ ์ฅ์ ๋ง๊ณ , ๋ฐ์ ์์๊ฒ ์ฃผ๋ ์ ์ฅ ์๋ฃ ์๋ต๊ณผ ์๋๋ฐฉ์ ์ ๋ฌยท์ฝ์ ์ํ๋ฅผ ๊ตฌ๋ถํ๋ค. Pub/Sub์ ์ต๋ 1ํ ์ ๋ฌ์ด๋ฏ๋ก ์ฌ๊ตฌ๋ ๋ฐ ์ฑ ๋ณต๊ท ๋ RDS์์ ๋๋ฝ๋ถ์ ์กฐํํ๋ค. DB ์ ์ฅ ํ ์ด๋ฒคํธ ๋ฐํ ์ ์ ์ฅ์ ๊น์ง ์ผ์ ์๊ฐ ์์ ๋ณต๊ตฌํด์ผ ํ๋ค๋ฉด ํธ๋์ญ์ ๋ ์์๋ฐ์ค ๋ฑ์ ์ถ๊ฐ๋ก ๊ฒํ ํ๋ค. Valkey Pub/Sub, AWS ํธ๋์ญ์ ๋ ์์๋ฐ์ค
๋ฉ์์ง๋
์๊ฐ ์ฌ์ฉ์ 42๋ง ๋ช
์ด ๊ฐ๊ฐ ํ๊ท 15.6๊ฐ ์ฑํ
๋ฐฉ์ ์ฐธ์ฌํ๊ณ , 1:1 ๋ฐฉ์ ๋ ์ฐธ์ฌ์๋ฅผ ๊ฐ๊ฐ ์ผ ๊ฐ์ด๋ผ๊ณ ๊ฐ์ ํ๋ค. ์ ๊ณ ์ ์ฑํ
๋ฐฉ์ 420,000 ร 15.6 รท 2 = 3,276,000๊ฐ๋ค. ๋ฐฉ๋น 10๊ฑด์ด๋ฉด ์ ๋ฉ์์ง ์๋ 3,276,000 ร 10 = 32,760,000๊ฑด, 30์ผ ํ๊ท ์ 12.64๊ฑด/์ด๋ค. ํ๋ฃจ ์ ๊ท ๊ณ ์ ๋ฐฉ์ ํ๊ท 109,200๊ฐ๋ค.
์คํ 8~10์์ ์ฌ์ฉ์ 45%๊ฐ ์ฑ์ ์ฌ์ฉํ๋ค๋ ์์น๋ง์ผ๋ก ๋ฉ์์ง์ 45%๊ฐ ํด๋น ์๊ฐ์ ๋ฐ์ก๋๋ค๊ณ ๋จ์ ํ ์ ์๋ค. ๋ฉ์์ง 45%๊ฐ ๊ทธ ์๊ฐ๋์ ์ง์ค๋๋ค๋ ์ถ๊ฐ ๊ฐ์ ์ ๋ ๊ฒฝ์ฐ ์ฝ 68.25๊ฑด/์ด๋ ๊ทธ 2์๊ฐ์ ํ๊ท ์ด๋ฉฐ ์๊ฐ ํผํฌ๋ ์๋๋ค. ์๊ฐ ํผํฌ๋ ์ค์ ๋ถ๋นยท์ด๋น ๋ฉ์์ง ์งํ๋ก ๊ฒ์ฆํ๋ค.
๋ธ๋ก์ปค์ ์บ์ ํฌ๊ธฐ ๋ถ๋ฆฌ
| ์ฉ๋ | ๊ณ์ฐ ๊ธฐ์ค | ํ์ฌ ์ถ์ |
|---|---|---|
| Pub/Sub ๋ธ๋ก์ปค | ๋ฉ์์ง ์ฅ๊ธฐ ๋ณด๊ด ์์. ๊ตฌ๋ ์ฐ๊ฒฐ, ์ผ์์ ์ถ๋ ฅ ๋ฒํผ, CPUยท๋คํธ์ํฌ ๋ถํ๋ฅผ ์ธก์ | ์ ์ฅ ๋ฉ์์ง ์ฉ๋์ ์ฐ์ ํ์ง ์์ |
| ์ต๊ทผ ๋ฉ์์ง ์บ์ | ์ค์ ์์ฃผ ๋ฐฉ ์ ร ๋ฐฉ๋น ์ง๋ ฌํ๋ ์ต๊ทผ 10๊ฑด ํฌ๊ธฐ | ๊ฑด๋น 130B๋ฅผ ๊ฐ์ ํ๋ฉด ๋ฐฉ๋น ์์ ๋ฐ์ดํฐ 1,300B |
| ์ ์ ์ ๋ณด | Valkey์ ๋ณ๋๋ก ์ ์ฅํ๋ ๊ฒฝ์ฐ์๋ง ๊ณ์ฐ | 128,000 ร 200B = 25.6MB ์์ ๋ฐ์ดํฐ |
์บ์ ์์๋ก ํ๋ฃจ ์ ๊ท ๊ณ ์ ๋ฐฉ 109,200๊ฐ๊ฐ ๋ชจ๋ ์์ฃผํ๊ณ ๋ฐฉ๋น 1,300B๋ฅผ ์ด๋ค๋ฉด ์ฝ 142MB๋ค. ์ดํ์น ์ ๊ท ๋ฐฉ์ ๋ชจ๋ ๋ณด๊ดํ๋ฉด ์ฝ 284MB๋ค. ์ด๋ ์ค์ ์บ์ ์์ฃผ ๋ฐฉ ์๊ฐ ์๋๋ผ ๊ฐ์ ์ ๋ฐ๋ฅธ ์์๋ค. ์บ์ TTL, ์ด์ ๋ฐฉ์ ์ฌ๋ฐฉ๋ฌธ, ์ด๋ฏธ์ง ๋ฉ์์ง ๋ฉํ๋ฐ์ดํฐ, ํคยท์๋ฃ๊ตฌ์กฐยท์ง๋ ฌํ ์ค๋ฒํค๋๋ฅผ ์ธก์ ํด์ผ ํ๋ค. WebSocket ์ธ์ ์ ์ฑํ ์๋ฒ์๋ง ๋ณด๊ดํ๋ค๋ฉด ์ 25.6MB๋ Valkey ๋ฉ๋ชจ๋ฆฌ์์ ์ ์ธํ๋ค.
ElastiCache ๊ตฌ์ฑ
๋ค๋ฅธ AZ์ ๊ธฐ๋ณธ ๋
ธ๋ 1๋์ ๋ณต์ ๋
ธ๋ 1๋, ์ด cache.t4g.small 2๋๋ฅผ ๋๋ค. Multi-AZ ์๋ ์ฅ์ ์กฐ์น๋ ๊ธฐ๋ณธ ๋
ธ๋ ์ฅ์ ์ ๋ณต์ ๋
ธ๋๋ฅผ ์น๊ฒฉํ์ง๋ง, ๋๊ธด Pub/Sub ๊ตฌ๋
์ ์ด๋ฒคํธ๋ฅผ ๋ณต๊ตฌํ์ง๋ ์๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฐ๊ฒฐยท์ฌ๊ตฌ๋
๊ณผ RDS ๋๋ฝ ์กฐํ๋ฅผ ์ํํ๋ค. ๋ณต์ ๋
ธ๋๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ฏ๋ก ๋
ธ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ๋ฐฐ๋ก ํฉ์ฐํด ์ฌ์ฉ ๊ฐ๋ฅ ์ฉ๋์ผ๋ก ๋ณด์ง ์๋๋ค. AWS Multi-AZ
cache.t4g.small์ ํ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋
ธ๋๋น 1.37GiB๋ค. ์์ฝ ๋ฉ๋ชจ๋ฆฌ์ ์ค์ ํค ์ค๋ฒํค๋๋ฅผ ์ ์ธํด์ผ ํ๋ฏ๋ก, ์ด ์ ํ์ ์ต์ข
ํ์ ๊ฐ์ด ์๋๋ผ ๋ถํ ํ
์คํธ ๋์์ด๋ค. CPU ํฌ๋ ๋ง, ๋ฉ๋ชจ๋ฆฌ, ์ฐ๊ฒฐ ์, ์ถ๋ ฅ ๋ฒํผ, ์ฅ์ ์กฐ์น ์ค ์๋ฆผ ์ง์ฐ์ ํ์ธํ ๋ค ํ์ ํ๋ค. AWS ๋
ธ๋ ์ฌ์, ์์ฝ ๋ฉ๋ชจ๋ฆฌ ์ง์นจ