CAP ์ ๋ฆฌ์ ํ๋ณต๋ ฅ ํจํด์ผ๋ก ์ค๊ณํ๋ ๊ณ ๊ฐ์ฉ์ฑ ๋ถ์ฐ ์์คํ
Distributed Systems: Where Physics, Murphy's Law, and Your Career Collide ๐ฅ
AI ์์ฝ
Context
๋คํธ์ํฌ ํํฐ์ ๋ฐ์ ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๊ฐ์ฉ์ฑ ์ฌ์ด์ ํธ๋ ์ด๋์คํ ๋ฐ์. ์๋ชป๋ ์ผ๊ด์ฑ ๋ชจ๋ธ ์ ํ์ผ๋ก ์ธํ ๋ฐ์ดํฐ ๋ถ์ผ์น์ ๊ธ์ ์ ์์ค ์ํ ์กด์ฌ. ์๋น์ค ๊ฐ ์์กด์ฑ์ผ๋ก ์ธํ ์ฅ์ ์ ํ ๋ฐ ์์คํ ์ ์ฒด ๋ถ๊ดด ๊ฐ๋ฅ์ฑ ์์กด.
Technical Solution
- ๋ฐ์ดํฐ ์ฑ๊ฒฉ์ ๋ฐ๋ฅธ ์ผ๊ด์ฑ ์ ๋ต ๋ถ๋ฆฌ ์ค๊ณ. ๊ฒฐ์ ๋ฐ ์ฌ๊ณ ๊ด๋ฆฌ์๋ Strong Consistency(CP)๋ฅผ ์ ์ฉํ๊ณ ์ฝํ ์ธ ๋ฐ ํ๋กํ ์ ๋ณด์๋ Eventual Consistency(AP)๋ฅผ ์ฑํ
- ์๋น์ค ์ฅ์ ์ ํ ๋ฐฉ์ง๋ฅผ ์ํ Circuit Breaker ๋์ . CLOSED, OPEN, HALF-OPEN ์ํ ์ ํ์ ํตํด ์คํจํ ์์ฒญ์ ์ฆ์ ์ฐจ๋จํ๊ณ ๋ฆฌ์์ค ๊ณ ๊ฐ ๋ฐฉ์ง
- Thundering Herd ํ์ ํด๊ฒฐ์ ์ํ Exponential Backoff ๋ฐ Jitter ์ ์ฉ. ์ฌ์๋ ๊ฐ๊ฒฉ์ ์ง์์ ์ผ๋ก ๋๋ฆฌ๊ณ ๋ฌด์์ ์๊ฐ์ ์ถ๊ฐํ์ฌ ํธ๋ํฝ ๋ถ์ฐ ์ ๋
- ์ฌ์๋ ๋์ ๋ฒ์๋ฅผ HTTP 429, 502, 503, 504 ๋ฐ ๋คํธ์ํฌ ํ์์์์ผ๋ก ์ ํํ์ฌ ๋ถํ์ํ ๋ถํ ์ ๊ฑฐ
- ๋ฐ์ดํฐ ์ค๋ณต ์์ฑ ๋ฐฉ์ง๋ฅผ ์ํด POST ์์ฒญ ์ Idempotency Key๋ฅผ ํ์ฉํ ๋ฉฑ๋ฑ์ฑ ๋ณด์ฅ ๊ตฌ์กฐ ์ค๊ณ
- ์์คํ ์ผ๋ถ ์ฅ์ ๊ฐ ์ ์ฒด๋ก ํ์ฐ๋์ง ์๋๋ก ๊ฒฉ๋ฆฌ ๊ตฌ์ญ์ ์ค์ ํ๋ Bulkhead ํจํด ์ ์ฉ
Impact
- ๋ณต์ ์ง์ฐ(Replication Lag) 3์ด ๋ฐ์ ์ EU ์ง์ญ ๊ฐ๊ฒฉ ๋ถ์ผ์น๋ก ์ธํ 200K ๋ฌ๋ฌ ํ๋ถ ๋น์ฉ ๋ฐ์
Key Takeaway
๋ถ์ฐ ์์คํ ์ค๊ณ ์ ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ๋ง๋ ์ผ๊ด์ฑ ์์ค์ ์ ์ํ๊ณ , ์คํจ๋ฅผ ์ ์ ๋ก ํ ํ๋ณต๋ ฅ ํจํด์ ๊ณ์ธต์ ์ผ๋ก ์ ์ฉํ์ฌ ์์คํ ์์ ์ฑ์ ํ๋ณดํด์ผ ํจ.
์ค์ฒ ํฌ์ธํธ
๊ธ์ ๋ฐ ์ฌ๊ณ ๊ด๋ จ ๋ก์ง์ ๋ฐ๋์ CP ์ค๊ณ๋ฅผ ์ ์ฉํ๊ณ , ๋ชจ๋ ์ธ๋ถ API ํธ์ถ์ Jitter๊ฐ ํฌํจ๋ ์ฌ์๋ ์ ๋ต๊ณผ Circuit Breaker๋ฅผ ์ค์ ํ ๊ฒ