A distributed system is one in which the failure of a computer you didnโt even know existed can render your own computer unusable.
Leslie Lamport
๋ ์ฌ๋ฆฌ ๋ํฌํธ์ ํ์..
์ค๋๋ ์ ์์คํ ์ ๋๋ถ๋ถ ๋ถ์ฐ ์์คํ ์ด๋ค. ์ฐ๋ฆฌ ์ฃผ๋ณ์์ ๊ฐ์ฅ ํํ๊ฒ ์ฐพ์๋ณผ ์ ์๋ ํด๋ผ์ด์ธํธ-์๋ฒ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ๋ค์ ๋ถ์ฐ ์์คํ ์ผ๋ก ๋ณผ ์๋ ์๋ค. ์ฌ์ด ์ดํด๋ฅผ ์ํด ๋ง๋ถ์ด์๋ฉด ์ฌ๊ธฐ์ ํด๋ผ์ด์ธํธ๋ ์ฌ๋ฌ๋ถ ํธ๋ํฐ์ ์ค์น๋ ์ฑ์ ํด๋น๋๊ณ , ์ฑ์ ์์ฒญ์ ๋ณดํต ์๋ฒ๊ฐ ์ฒ๋ฆฌํด์ค๋ค.
๊ธฐ์กด ์์คํ ์ ๋จ์ผ ๋ ธ๋์ ์ปดํจํฐ์์ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ผ๋ก๋ ์ถฉ๋ถํ์๋ค. ์๋น์ค๋ฅผ ํ๋๋ผ๋ ๋จ์ผ ๋ ธ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๊ณ ์ฑ๋ฅ, ์ฉ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์์ง ํ์ฅ(Vertical Scaling)์ผ๋ก ๋ฌธ์ ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ๋ฌด์ด์ ๋ฒ์น์ด ๋ฌผ๋ฆฌ์ ํ๊ณ์ ๋ง์ฃผํ ์ค๋๋ ์ ์ด์ผ๊ธฐ๊ฐ ๋ค๋ฅด๋ค. ๋ฌด์ด์ ๋ฒ์น์ ํ๊ณ๋ ๊ณง ๋จ์ผ ๋จธ์ ์ ํ๊ณ๊ฐ ์๊ฒผ๋ค๋ ๋ป์ด๋ค. ์์ง ํ์ฅ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๊ธฐ๋ ํ๋ค๊ณ , ํ๋ ค๊ณ ํ๋๋ผ๋ ๋น์ฉ์ด ํฌ๋ค.
์ด๋ฌํ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ๊ฐ์ผ ๋ ธ๋๋ฅผ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฌถ๊ณ ์ด๋ฅผ ํ๋์ ๋ ผ๋ฆฌ์ ์ธ ์ํฐํฐ์ฒ๋ผ ์ทจ๊ธํ๋ ๊ฒ์ด ๋ฐ๋ก ๋ถ์ฐ ์์คํ ์ ๊ณจ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ํ ํ์ฅ(Scale Horizontally)์ ํด๋นํ๋ค.
์ฐ๋ฆฌ ํ์ฌ๋ ๊ท๋ชจ๊ฐ ์์์ ๋ถ์ฐ ์์คํ ๊ฐ์๊ฑฐ ์์ฐ๋๋ฐ์? ๊ทธ๋ด๋ฆฌ๊ฐ ์๋ค. ์ ์ด๋ API ์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ถ๋ฆฌํ๋๊น. ์ด๋ฏธ ์์คํ ์ด ์ทจ๊ธํ๋ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ๋ถ๋ฆฌ๊ฐ ๋์ด ์๊ณ ๋คํธ์ํฌ๋ฅผ ํตํด์ ํต์ ํ๋ค. ์๋น์ค DB์์ ๋ถ์ ์ฟผ๋ฆฌ ๋ ๋ฆฌ๋ค๊ฐ ์๋น์ค๊ฐ ์ค๋จ๋๋ ๋ฉ์ง ์ผ์ด ๋ฐ์ํ๋ฉด read replica๋ก ๋ถ๋ฆฌํ๋ ์ ํ์ ํ์ง ์๋๊ฐ? ๊ทธ๋ ๋ค. ์ด๋ฏธ ์ฐ๋ฆฌ๋ ๋ถ์ฐ ์์คํ ์ ์จ์ฌ๋ฏ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ๋ ์ธ์์์ ์ด๊ณ ์๋ค.
๋ถ์ฐ ์์คํ ์ ๋ํ ์ด๋ก ์ ์ด๋ฏธ ์ถฉ๋ถํ ์ค๋์ ์ ๋์จ ๊ฒ๋ค์ด๊ณ ๋น๊ต์ ์ต๊ทผ์ ์์์ผ ์์ฉํ๋ฅผ ํตํด ์ฌ์ฉ๋๊ธฐ ์์ํ๋ค. ๊ทธ๋? ์ด๋ก ์ถฉ๋ถํ๋ค. ๊ทธ๋ฅ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐํ๋ฉด ๋๋๊ฑฐ ์๋? ์๋๋ค. ๊ณ ๋ คํด์ผํ ๊ฒ์ด ๋๋ฌด๋๋ ๋ง์์ง๋ค. ๊ทธ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณด์.
๋ถ์ฐ ์์คํ
์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐธ์ฌ์
๊ฐ ์กด์ฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ์ฐธ์ฌ์๋ ๊ณ ์ ํ ์ง์ญ์ ์ํ(Local State)๋ฅผ ์ง๋๊ณ ์๋ค. ์ด๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํตํด์ ์ฐ๊ฒฐ๋์ด ์๊ณ ๋ฉ์ธ์ง๋ฅผ ๊ตํํ๋ ๋ฐฉ์์ผ๋ก ์ปค๋ฎค๋์ผ์ด์
์ ํ๋ค.
์ฌ๊ธฐ์๋ถํฐ ๊ณ ํต์ ์์๋๋ค.