์๋
๋ง์๋ ๋ฌ์์ PostgreSQL ์ปค๋ฎค๋ํฐ์ ๋ ๋ค๋ฅธ ์๋ฐฉ์ก์ด ์งํ๋์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํ ๋ก ์ ์ฃผ์ ๋ถ๋ถ์ ๋ํ ๊ธฐ๋ก์ ์ถํํ๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ Kubernetes
NS: ์ค๋์ VACUUM๊ณผ CHECKPOINT์ ๋ํด์๋ ์ด์ผ๊ธฐํ์ง ์๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ Kubernetes์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ๋๋ ๋น์ ์ด ๋ค๋ ๊ฐ์ ๊ฒฝํ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋๋ ๋น์ ์ ๋น๋์ค๋ฅผ ๋ณด์๊ณ ๊ทธ ์ค ์ผ๋ถ๋ฅผ ๋ค์ ๋ณด๊ธฐ๋ ํ์ต๋๋ค... ์์ ์ผ๋ก ๋ฐ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค: ์ K8s์์ Postgres๋ MySQL์ด ํ์ํ๊ฐ์?
DS: ์ด ์ง๋ฌธ์ ๋ํ ๋ช ํํ ๋๋ต์ ์์ผ๋ฉฐ, ๊ทธ๋ด ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ๋จ์์ฑ๊ณผ ํธ์์ฑ... ์ ์ฌ๋ ฅ์ ๋๋ค. ๋๊ตฌ๋ ๊ด๋ฆฌํ ์๋น์ค๋ฅผ ์ํฉ๋๋ค.
NS: ์ด๋ป๊ฒ
DS: ์: RDS์ฒ๋ผ ์ด๋์๋ ๊ฐ๋ฅํฉ๋๋ค.
NS: '์ด๋๋ ์ง'๊ฐ ์ข์ ์ง์ ์ด์์. ๋๊ธฐ์ ์์๋ ๋ชจ๋ ๊ฒ์ด ๋ค๋ฅธ ์ฅ์์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋๊ธฐ์ ์ด๋ผ๋ฉด ๊ธฐ์ฑ ์๋ฃจ์ ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์๋ฅผ ๋ค์ด Nutanix์๋ ์์ฒด ๊ฐ๋ฐ์ด ์๊ณ ๋ค๋ฅธ ํ์ฌ(VMware...)์๋ ๋์ผํ "RDS, only home"์ด ์์ต๋๋ค.
DS: ํ์ง๋ง ์ฐ๋ฆฌ๋ ํน์ ์กฐ๊ฑด์์๋ง ์๋ํ๋ ๋ณ๋์ ๊ตฌํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Kubernetes์ ๊ดํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ฉด ๋งค์ฐ ๋ค์ํ ์ธํ๋ผ(K8์ ์์ ์ ์์)๊ฐ ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ด๋ ํด๋ผ์ฐ๋์ ๋ํ API์ ํ์ค์ ๋๋ค.
NS: ๊ทธ๊ฒ๋ ๋ฌด๋ฃ์์!
DS: ๋ณ๋ก ์ค์ํ์ง ์์ต๋๋ค. ์์ฅ์ ๊ท๋ชจ๊ฐ ํฌ์ง ์์ ๋ถ๋ฌธ์์๋ ์์ ๋๊ฐ ์ค์ํฉ๋๋ค. ๋ค๋ฅธ ๊ฒ ์ค์ํ๋ฐ... ์๋ง ๋ณด๊ณ ์๋ฅผ ๊ธฐ์ตํ์ค ๊ฒ๋๋ค.โ
NS์.
DS: ๋งค์ฐ ๋ชจํธํ๊ฒ ๋ฐ์๋ค์ฌ์ก์์ ๊นจ๋ฌ์์ต๋๋ค. ์ด๋ค ์ฌ๋๋ค์ ๋ด๊ฐ โ์๋ค์, ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟ ๋ฒ๋คํฐ์ค์ ๋ฃ์!โ๋ผ๊ณ ๋งํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ์ด๊ฒ๋ค์ด ๋ชจ๋ ๋์ฐํ ์์ ๊ฑฐ๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ํ์ง๋ง ์ ๋ ์์ ํ ๋ค๋ฅธ ๋ง์ ํ๊ณ ์ถ์์ต๋๋ค. โ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง, ์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง, ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์๋์ง ์ดํด๋ณด์ธ์. ์ง๊ธ Kubernetes ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น์? ์์ฐ? ๊ธ์์, ๋น์ ์ด ์ข์ํ๋ ๊ฒฝ์ฐ์๋ง...ํน์ ์ผ์ ํ๋ ๊ฑฐ์ฃ . ํ์ง๋ง ๊ฐ๋ฐ์ ์ ์ฅ์์๋ ์ถ์ฒํ๋ค๊ณ ๋ง์๋๋ฆด ์ ์์ต๋๋ค. ๊ฐ๋ฐ์์๊ฒ๋ ํ๊ฒฝ ์์ฑ/์ญ์ ์ ์ญ๋์ฑ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.โ
NS: ๊ฐ๋ฐ์๋ ํ๋ก๋์ ์ด ์๋ ๋ชจ๋ ํ๊ฒฝ์ ์๋ฏธํ๋์? ์คํ ์ด์ง, QAโฆ
DS: ์ฑ๋ฅ ์คํ ๋์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ฉด ์๊ตฌ ์ฌํญ์ด ๊ตฌ์ฒด์ ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค. ์คํ ์ด์ง์ ์ํด ๋งค์ฐ ํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ ํน๋ณํ ๊ฒฝ์ฐ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ฉด ์๋ง๋ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋๋ค... ์ด๊ฒ์ด ์ ์ ์ด๋ฉฐ ์๋ช ์ด ๊ธด ํ๊ฒฝ์ด๋ผ๋ฉด K8s์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฐ์นํ๋ฉด ์ด๋ค ์ด์ ์ด ์์ต๋๊น?
NS: ์์. ๊ทธ๋ฌ๋ ์ ์ ํ๊ฒฝ์ ์ด๋์์ ๋ณผ ์ ์์ต๋๊น? ์ ์ ํ๊ฒฝ์ ๋ด์ผ์ด๋ฉด ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ฒ ๋ฉ๋๋ค.
DS: ์คํ ์ด์ง์ ์ ์ ์ผ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ์๊ฒ ๊ณ ๊ฐ์ด ์์ต๋๋ค...
NS: ๋ค, ์ ๋ ์์ด์. 10TB ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 200GB ์คํ ์ด์ง์ด ์๋ค๋ฉด ํฐ ๋ฌธ์ ์ ๋๋ค...
DS: ๋ํํ ์์ฃผ ๋ฉ์ง ์ผ์ด์ค๊ฐ ์์ด! ์ค๋น ๋จ๊ณ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ ์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ "ํ๋ก๋์ ์ถ์" ๋ฒํผ์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ(๋ธํ)์ ํ๋ก๋์ ํ๊ฒฝ์ ์ถ๊ฐ๋ฉ๋๋ค(๋จ์ํ API๋ฅผ ํตํด ๋๊ธฐํ๋๋ ๊ฒ ๊ฐ์ต๋๋ค). ์ด๊ฒ์ ๋งค์ฐ ์ด๊ตญ์ ์ธ ์ต์ ์ ๋๋ค.
NS: RDS๋ ์ฌ์ง์ด Heroku์ ์๋ ์คํํธ์ ์ ๋ฐธ๋ฆฌ์์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ 2~3๋ ์ ์ ์ด์ผ๊ธฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋ ธํธ๋ถ์ ๋คํ๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ์ ํ 80GB์ ๋ถ๊ณผํ๊ณ ๋ ธํธ๋ถ์ ๊ณต๊ฐ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ์ฌ๋์ ์ํด ์ถ๊ฐ ๋์คํฌ๋ฅผ ๊ตฌ์ ํ์ฌ ์๋ก ๋ค๋ฅธ ๊ฐ๋ฐ์ ์ํํ ์ ์๋ 3๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ต๋๋ค. ์ด๋ฐ ์ผ๋ ์ผ์ด๋ฉ๋๋ค. ๋๋ ๋ํ ๊ทธ๋ค์ด prod๋ฅผ ์คํ ์ด์ง์ ๋ณต์ฌํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ์๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด๋ ํ์ฌ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ํ ๊ทธ๋ค์ด ๋งค์ฐ ๋๋ ค์ํ๊ณ ์ข ์ข ์๊ฐ๊ณผ ์์ด ์ถฉ๋ถํ์ง ์๋ค๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ํ์ง๋ง ์ด ์ฃผ์ ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ Kubernetes์ ๋ํด ๋ฃ๊ณ ์ถ์ต๋๋ค. ์์ง ์๋ฌด๋ prod์ ์ฐธ์ฌํ์ง ์์๋ค๋ ๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ์์ต๋๊น?
DS: ์ฐ๋ฆฌ๋ ํ๋ก๋์
์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ณต์ ๋ณธ์ ๋ง๋ค๊ธฐ์๋ ๋๋ฌด ๊ฒ์ผ๋ฅธ ์์ญ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ์ค์ํ์ง ์์ ์๋น์ค์ ์ค์ํ์ง ์์ ์๋น์ค์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Kubernetes ์๋์ ์ผ๋ฐ ์คํ ๋ฆฌ์ง๊ฐ ์๋ ๊ฒฝ์ฐ์ ํํฉ๋๋ค. ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ์คํ ๋ฆฌ์ง ์์คํ
์์ ์๋ VMware์ ๊ฐ์ ๋จธ์ ์์ ์๋ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ฃ์๋ค
NS: ์ด ํฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(์ต๋ 100GB)๋ ์ข์ ๋์คํฌ์ ์ข์ ๋คํธ์ํฌ์์ ๋ช ๋ถ ์์ ๋กค์์ํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ฃ ? ์ด๋น 1GB์ ์๋๋ ๋ ์ด์ ์ด๊ตญ์ ์ด์ง ์์ต๋๋ค.
DS: ์, ์ ํ ์๋์์๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
NS: ์ข์์, prod์ ๋ํด์๋ง ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋นํ๋ก๋์
ํ๊ฒฝ์ ์ํด Kubernetes๋ฅผ ๊ณ ๋ คํ๊ณ ์๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ์๋๋์์ ๋ณธ ๊ฒ ๊ฐ์๋ฐ
DS: ๋ฌด์จ ํน์ฌ์? Postgres ํธ๋ํฝ์ ๊ท ํ์ ๊ตฌ์ฒด์ ์ผ๋ก ์กฐ์ ํ์๋์?
NS: ์. ์ฆ, ๊ทธ๋ค์ Linux ๋ฐฐํฌํ๊ณผ ์ปค๋์ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ PostgreSQL์ด ์ปค๋์ด๊ณ ํด๋ผ์ฐ๋ ์นํ์ ์ด๊ณ Kubernetes์์ ์คํ๋๋ ๋ฐฐํฌํ์ ๋ง๋ค๊ณ ์ถ์ดํ๋ค๊ณ ๋ด ๋๋ค. ๊ทธ๋ค์ ๊ตฌ์ฑ ์์(๋ฐฑ์ ๋ฑ)๋ฅผ ํจ๊ป ๋ชจ์ผ๊ณ ์ ๋๋ก ์๋ํ๋๋ก ๋๋ฒ๊น ํฉ๋๋ค.
DS: ์์ฃผ ๋ฉ์ง๋ค์! ๋ณธ์ง์ ์ผ๋ก ์ด๊ฒ์ ์์ ๋ง์ ๊ด๋ฆฌํ Postgres๋ฅผ ์์ฑํ๋ ์ํํธ์จ์ด์ ๋๋ค.
NS: Linux ๋ฐฐํฌํ์๋ ๋ชจ๋ ํ๋์จ์ด๊ฐ ์ง์๋๋๋ก ๋๋ผ์ด๋ฒ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ์์ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ Kubernetes์์ ์๋ํ ๊ฒ์ด๋ผ๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ต๊ทผ Zalando ์ด์์๊ฐ AWS์ ์ฐ๊ฒฐ๋๋ ๊ฒ์ ํ์ธํ๋๋ฐ ์ด๋ ๋ ์ด์ ์ข์ง ์์ต๋๋ค. ํน์ ์ธํ๋ผ์ ์ฐ๊ฒฐ๋์ด์๋ ์ ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ ์ ๋ฌด์์ ๋๊น?
DS: ์๋๋๊ฐ ์ด๋ค ์ํฉ์ ์ฒํ๋์ง๋ ์ ํํ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ฟ ๋ฒ๋คํฐ์ค์์๋ ์ด์ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋์คํฌ ๋ฐฑ์
์ด ๋ถ๊ฐ๋ฅํ๋๋ก ์คํ ๋ฆฌ์ง๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค. ์ต๊ทผ ํ์ค - ์ต์ ๋ฒ์
NS: ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋๋ก๋ ์ธํ๋ผ์ ์์กดํด์ผ ํ ๋๋ ์์ต๋๋ค. ์์ง ์ด๊ธฐ ๋จ๊ณ์ธ ์ฑ์ฅํต์ธ ๊ฒ ๊ฐ์์. ์ง๋ฌธ: K8์์ PgSQL์ ์ฌ์ฉํด ๋ณด๊ณ ์ถ์ ์ด๋ณด์์๊ฒ ์ด๋ค ์กฐ์ธ์ ํด์ฃผ๊ณ ์ถ๋์? ์๋ง๋ ์ด๋ค ์ด์์์ผ๊น์?
DS: ๋ฌธ์ ๋ Postgres๊ฐ ์ฐ๋ฆฌ์๊ฒ 3%๋ผ๋ ๊ฒ์
๋๋ค. ๋ํ Kubernetes์๋ ๋งค์ฐ ๋ค์ํ ์ํํธ์จ์ด ๋ชฉ๋ก์ด ์์ผ๋ฏ๋ก ๋ชจ๋ ๊ฒ์ ๋์ดํ์ง๋ ์๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ผ์คํฑ์์น. ๋ง์ ์ด์์๊ฐ ์์ต๋๋ค. ์ผ๋ถ๋ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ ์ค์ด๊ณ ๋ค๋ฅธ ์ผ๋ถ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฅผ ์ง์งํ๊ฒ ๋ฐ์๋ค์ด๊ธฐ ์ํด ์ด์์๊ฐ ๊ฐ์ถฐ์ผ ํ ์ฌํญ์ ๋ํ ์๊ตฌ ์ฌํญ์ ์ค์ค๋ก ์์ฑํ์ต๋๋ค. "Amazon์ ์กฐ๊ฑด์์ ์์
์ ์ํํ๋ ์ฐ์ฐ์"๊ฐ ์๋ Kubernetes ์ ์ฉ ์ฐ์ฐ์์์... ์ฌ์ค ์ฐ๋ฆฌ๋ ์๋นํ ๊ด๋ฒ์ํ๊ฒ(= ๊ฑฐ์ ๋ชจ๋ ํด๋ผ์ด์ธํธ) ๋จ์ผ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
NS: ๊ทธ๋ฆฌ๊ณ MySQL์๋ ํด๋น๋์ง ์๋์? Percona๋ ํ์ฌ MySQL, MongoDB ๋ฐ Postgres์์ ์์ ํ๊ณ ์์ผ๋ฏ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ชจ๋ ํด๋ผ์ฐ๋ ๊ณต๊ธ์๋ฅผ ์ํ ์ผ์ข ์ ๋ฒ์ฉ ์๋ฃจ์ ์ ๋ง๋ค์ด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
DS: MySQL์ ์ฐ์ฐ์๋ฅผ ์ดํด๋ณผ ์๊ฐ์ด ์์์ต๋๋ค. ์ด๊ฒ์ ์ง๊ธ ์ฐ๋ฆฌ์ ์ฃผ์ ์ด์ ์ด ์๋๋๋ค. MySQL์ ๋ ๋ฆฝ ์คํํ์์ ์ ์๋ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง ์์ํ ์ ์๋๋ฐ ์ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํฉ๋๊น? Postrges๋ฅผ ์ฌ์ฉํ์ฌ Docker ์ปจํ ์ด๋๋ฅผ ์์ํ ์๋ ์๊ณ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์์ํ ์๋ ์์ต๋๋ค.
NS: ์ด์ ๋ํ ์ง๋ฌธ๋ ์์์ต๋๋ค. ์ด์์๊ฐ ์ ํ ์๋์?
DS: ๋ค, ์ฐ๋ฆฌ ์ค 100%๋ ์ฐ์ฐ์ ์์ด PostgreSQL์ ์คํํ๊ณ ์์ต๋๋ค. ์ง๊ธ๊น์ง. ์ฐ๋ฆฌ๋ Prometheus ๋ฐ Redis์ ์ฐ์ฐ์๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ Elasticsearch๋ฅผ ์ํ ์ด์์๋ฅผ ์ฐพ์ ๊ณํ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ 100% ๊ฒฝ์ฐ์ Kubernetes์ ์ค์นํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ "๋ถํ์ค๋ฅด๋" ์ด์์์ ๋๋ค. MongoDB๋ ํญ์ Kubernetes์ ์ค์น๋๋๋ก ํ๋ ค๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ฌ๊ธฐ์๋ ํน์ ์์์ด ๋ํ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ญ๊ฐ๋ฅผ ํ ์ ์๋ค๋ ๋๋์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ Postgres๋ ๋ณด์ง ์์์ต๋๋ค. ๋ฌผ๋ก ์ฐ๋ฆฌ๋ ๋ค์ํ ์ต์ ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ค์ ๋ก๋ ๋ ๋ฆฝํ ์ต์ ๋ ์์ต๋๋ค.
Kubernetes์์ ํ ์คํธ์ฉ DB
NS: ํ ์คํธ ์ฃผ์ ๋ก ๋์ด ๊ฐ์๋ค. DevOps ๊ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ. ๋ง์ดํฌ๋ก์๋น์ค, ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ผ๋ฉฐ ํญ์ ์ด๋๊ฐ์์ ๋ฌด์ธ๊ฐ๊ฐ ๋ณํํ๊ณ ์์ต๋๋ค. DBMS ๊ด์ ์์ ๋ชจ๋ ๊ฒ์ด ์ ๋๋๋๋ก ์ ์์ ์ธ CI/CD๋ฅผ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ. ๋น์ ์ ์ ๊ทผ ๋ฐฉ์์ ๋ฌด์์ ๋๊น?
DS: ๋ต์ ํ๋์ผ ์ ์์ต๋๋ค. ๋ช ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ๋กค์์ํ๋ ค๋ ๋ฒ ์ด์ค์ ํฌ๊ธฐ์ ๋๋ค. ๋น์ ์ ๊ธฐ์ ๋ค์ด ๊ฐ๋ฐ ๋ฐ ๋จ๊ณ์์ ์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ๋ณธ์ ๊ฐ๋ ๊ฒ์ ๋ํด ์๋ก ๋ค๋ฅธ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ์ง์ ์ธ๊ธํ์ต๋๋ค.
NS: ๊ทธ๋ฆฌ๊ณ GDPR์ ์กฐ๊ฑด ํ์์ ๊ทธ๋ค์ ์ ์ ๋ ์กฐ์ฌํ๊ณ ์๋ ๊ฒ ๊ฐ์์... ์ ๋ฝ์์๋ ์ด๋ฏธ ๋ฒ๊ธ์ ๋ถ๊ณผํ๊ธฐ ์์ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
DS: ๊ทธ๋ฌ๋ ์ข ์ข ํ๋ก๋์ ์์ ๋คํ๋ฅผ ๊ฐ์ ธ์ ๋๋ ํํ๋ ์ํํธ์จ์ด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ๋ก๋์ ๋ฐ์ดํฐ๋ ํ๋๋์ง๋ง(์ค๋ ์ท, ๋คํ, ๋ฐ์ด๋๋ฆฌ ๋ณต์ฌ๋ณธ...) ์ต๋ช ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋์ ์์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์์ ์ ์์ต๋๋ค. ์ด๋ ๊ณ ์ ๋ฌผ์ผ ์๋ ์๊ณ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๋ ์คํฌ๋ฆฝํธ์ผ ์๋ ์์ต๋๋ค. ๋ฌธ์ ๋ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฐ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์? ๊ทธ๋ฆฌ๊ณ ์ํ๋ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋ฐ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์?
์ฐ๋ฆฌ๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ณ ์ ๋ฐ์ดํฐ ์ธํธ(๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ต์ ๋ฒ์ )๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ณํ์ ์ธ์ ์ต๋๋ค. ๊ฒํ ํ๊ฒฝ์ ๊ดํด ์ด์ผ๊ธฐํ๋ค๋ฉด ๋ธ๋์น๋ฅผ ์์ฑํ ๋ ์ ํ๋ฆฌ์ผ์ด์
์ธ์คํด์ค๋ฅผ ๋ฐฐํฌํ๊ณ ๊ฑฐ๊ธฐ์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋กค์์ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ๋์๋ค์
NS: ๋จ์ ๋ณต์ฌ๋ก?
DS: ๋ฐ์ดํฐ๋ Docker ์ด๋ฏธ์ง์ ์ง์ ์ ์ฅ๋ฉ๋๋ค. ์ ๊ฒ๋ค. ๋น๋ก 100GB์ด์ง๋ง ๊ธฐ์ฑ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค. Docker์ ๋ ์ด์ด ๋๋ถ์ ์ด ์ด๋ฏธ์ง๋ฅผ ํ์ํ ๋งํผ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ฐฉ๋ฒ์ ๋ฐ๋ณด๊ฐ์ง๋ง ํจ๊ณผ๋ ์ข์ต๋๋ค.
NS: ๊ทธ๋ผ ํ ์คํธ๋ฅผ ํ๋ฉด Docker ๋ด๋ถ์์ ๋ฐ๋ก ๋ฐ๋์ฃ ? Docker ๋ด๋ถ์ Copy-on-Write - ๋ฒ๋ฆฌ๊ณ ๋ค์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ์์ ! ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ์ด๋ฏธ ๊ทธ๊ฒ์ ์ต๋ํ ํ์ฉํ๊ณ ์์ต๋๊น?
DS: ์ค๋ซ๋์.
NS: ์ฐ๋ฆฌ๋ ๋งค์ฐ ์ ์ฌํ ์ผ์ ํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ Docker์ Copy-On-Write๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
DS: ์ผ๋ฐ์ ์ธ ๊ฒ์ ์๋๋๋ค. Docker๋ ์ด๋์์๋ ์๋ํฉ๋๋ค.
NS: ์ด๋ก ์ ์ผ๋ก๋ ๊ทธ๋ ์ต๋๋ค. ํ์ง๋ง ๊ฑฐ๊ธฐ์๋ ๋ชจ๋๋ ์์ผ๋ฏ๋ก ๋ค์ํ ๋ชจ๋์ ๋ง๋ค๊ณ ๋ค์ํ ํ์ผ ์์คํ ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค. ์ ๋ง ์๊ฐ์ด๊ตฐ์. Postgres ์ธก์์๋ ์ด ๋ชจ๋ ๊ฒ์ ๋ค๋ฅด๊ฒ ๋ด ๋๋ค. ์ด์ Docker ์ธก๋ฉด์์ ์ดํด๋ณด๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ 1TB์ ๊ฐ์ด ํฌ๋ค๋ฉด ์ด ๋ชจ๋ ์์ ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ฐค์ ์์ ํ๊ณ ๋ชจ๋ ๊ฒ์ Docker์ ์ฑ์ฐ๋ ์์ ... ๊ทธ๋ฆฌ๊ณ 5TB๋ฅผ Docker์ ์ฑ์ฐ๋ ๊ฒฝ์ฐ... ์๋๋ฉด ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์ต๋๊น?
DS: ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ ๋จ์ง ๋นํธ์ ๋ฐ์ดํธ์ผ ๋ฟ์ธ ์ผ๋ฃฉ์ ๋๋ค.
NS: ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋คํ ๋ฐ ๋ณต์์ ํตํด ์ํํฉ๋๊น?
DS: ์ ํ ํ์ํ์ง ์์ต๋๋ค. ์ด ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฅผ ์ ์์ต๋๋ค.
NS: ์ผ๋ถ ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ด๋ฏธ์ง๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์์ฑํ์ง ์๊ณ ์ง์์ ์ผ๋ก ์ต์ ์ํ๋ก ์ ์งํ๋๋ก ๋ง๋ค์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก ๋ณต์ ๋ณธ์ด์ง๋ง ๋ง์คํฐ๋ก๋ถํฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ง ์๊ณ ์์นด์ด๋ธ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ต๋๋ค. WAL์ด ๋งค์ผ ๋ค์ด๋ก๋๋๊ณ ๋ฐฑ์ ์ด ์ํ๋๋ ๋ฐ์ด๋๋ฆฌ ์์นด์ด๋ธ... ์ด๋ฌํ WAL์ ์ฝ๊ฐ์ ์ง์ฐ(๋ฌธ์ ๊ทธ๋๋ก 1-2์ด) ํ์ ๊ธฐ๋ณธ ์ด๋ฏธ์ง์ ๋๋ฌํฉ๋๋ค. ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ๋ณต์ ํฉ๋๋ค. ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ZFS๊ฐ ์์ต๋๋ค.
DS: ๊ทธ๋ฌ๋ ZFS์์๋ ํ๋์ ๋ ธ๋๋ก ์ ํ๋ฉ๋๋ค.
NS: ์. ํ์ง๋ง ZFS์๋ ๋ง๋ฒ ๊ฐ์ ๊ธฐ๋ฅ๋ ์์ต๋๋ค. PGDATA
. ์ค์ ๋ก ์ด๋ฌํ ์์
์ ์ํด ์ค์ ๋ก ๊ณ ๋ คํ์ง ์์ ๋ ๋ค๋ฅธ ๋๊ตฌ๊ฐ ์์ต๋๋ค. PostgreSQL์๋
๋ฐ๋ผ์ ๋ ๋ง์ DBA ์ธก๋ฉด์์ ์ฐ๋ฆฌ๋ ๊ทํ๊ฐ ๋งํ ๊ฒ๊ณผ ๋์ผํ ์์ ์ ์ํํ ์ ์๋ ๋๊ตฌ๋ฅผ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋์ด์ง๋ง ๊ฑฐ์ ๋์์ 50๋ฒ ํ ์คํธํ๋ ค๊ณ ํฉ๋๋ค.
DS: 50๋ฒ์ ์คํ ์ธ์คํด์ค 50๊ฐ๋ฅผ ์ฃผ๋ฌธํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
NS: ์๋์, ์ฐ๋ฆฌ๋ ํ๋์ ๊ธฐ๊ณ์์ ๋ชจ๋ ์์ ์ ์ํํฉ๋๋ค.
DS: ๊ทธ๋ฐ๋ฐ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ฐ ๊ฐ๋ น ํ ๋ผ๋ฐ์ดํธ๋ผ๋ฉด ์ด๋ป๊ฒ 50๋ฐฐ๋ก ํ์ฅํ ์ ์์๊น์? ์กฐ๊ฑด๋ถ 256GB RAM์ด ํ์ํ ๊ฐ๋ฅ์ฑ์ด ๊ฐ์ฅ ๋์ต๋๊น?
NS: ์, ๋๋ก๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ๋๋ ์์ต๋๋ค. ์ด๋ ์ ์์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ถ์ ์์ ๋๋ค. ์์ฐ ๋จธ์ ์๋ 96๊ฐ์ ์ฝ์ด์ 600GB๊ฐ ์์ต๋๋ค. ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ 32๊ฐ ์ฝ์ด(ํ์ฌ๋ 16๊ฐ ์ฝ์ด๋ ์์)์ 100-120GB์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
DS: ๊ทธ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์ 50์ฅ์ด ๋ค์ด๊ฐ๋์?
NS: ๊ทธ๋ผ ๋ณต์ฌ๋ณธ์ด ํ๋๋ง ์์ผ๋ฉด ZFS(Copy-On-Write)๊ฐ ์๋ํ๋๊ตฐ์... ์์ธํ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์๋ฅผ ๋ค์ด 10TB ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ต๋๋ค. ๊ทธ๋ค์ ์ด๋ฅผ ์ํ ๋์คํฌ๋ฅผ ๋ง๋ค์๊ณ ZFS๋ ํฌ๊ธฐ๋ฅผ 30-40% ์ค์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ก๋ ํ ์คํธ๋ฅผ ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ ํํ ์๋ต ์๊ฐ์ ์ค์ํ์ง ์์ต๋๋ค. ์ต๋ 2๋ฐฐ ์ ๋ ๋๋ฆฌ๊ฒ ๋๋์ด๋ ๊ด์ฐฎ์ต๋๋ค.
ํ๋ก๊ทธ๋๋จธ, QA, DBA ๋ฑ์๊ฒ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. 1~2๊ฐ์ ์ค๋ ๋์์ ํ
์คํธ๋ฅผ ์ํํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ผ์ข
์ ๋ง์ด๊ทธ๋ ์ด์
์ ์คํํ ์ ์์ต๋๋ค. ํ ๋ฒ์ 10๊ฐ์ ์ฝ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. 1๊ฐ์ Postgres ๋ฐฑ์๋, 1๊ฐ์ ์ฝ์ด๊ฐ ํ์ํฉ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์
์ด ์์๋ฉ๋๋ค. ์๋ง๋
์๋๋ฉด ์ก์ฒด์ ์ผ๋ก PGDATA
๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ๋ ์ค์ ๋ก Postgres๋ฅผ ์์ด๊ณ ์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ๋น๊ฒฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด 10๊ฐ์ Postgres๊ฐ ๋์์ ์์๋ฉ๋๋ค. ๋ณดํต ๋ฌด์จ ๋ฌธ์ ๊ฐ ์๋์? ๊ทธ๋ค์ ๋ฃ์ด
๊ทธ๋ฌ๋ ์ด๋ ์์ ์์ ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ํ์ํ์ง ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. โโshared_buffers๋ฅผ 2GB๋ก ์ค์ ํ์ต๋๋ค. PostgreSQL์๋
๋ฐ๋ผ์ ์ผ์ข ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ ์คํธํ ๋ ๋ชจ๋ ๊ณํ์ ์์งํ ์ ์์ผ๋ฉฐ ํ๋ก๋์ ์์ ์ด๋ป๊ฒ ์งํ๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ ๋ค๋ฅด์ง๋ง(๋๋ฆฌ๊ฒ) ์ค์ ๋ก ์ฝ์ ๋ฐ์ดํฐ์ ๊ณํ ์์ฒด(JOIN์ด ๋ฌด์์ธ์ง ๋ฑ)๋ ํ๋ก๋์ ํ๊ฒฝ๊ณผ ์ ํํ ๋์ผํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋์ ์์คํ ์์ ์ด๋ฌํ ์ฌ๋ฌ ๊ฒ์ฌ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ ์ ์์ต๋๋ค.
DS: ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ์ง ์๋์? ์ฒซ ๋ฒ์งธ๋ PostgreSQL์์๋ง ์๋ํ๋ ์๋ฃจ์ ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋งค์ฐ ๊ฐ์ธ์ ์ด๋ฉฐ ์ผ๋ฐ์ ์ด์ง ์์ต๋๋ค. ๋ ๋ฒ์งธ๋ Kubernetes(๋ฐ ํ์ฌ ํด๋ผ์ฐ๋ ๊ธฐ์ ์ ์ ์ฉ๋๋ ๋ชจ๋ ๊ฒ)์๋ ๋ง์ ๋ ธ๋๊ฐ ํฌํจ๋๋ฉฐ ์ด๋ฌํ ๋ ธ๋๋ ์ผ์์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๊ทํ์ ๊ฒฝ์ฐ ์ด๋ ์ํ๋ฅผ ์ ์ฅํ๋ ์๊ตฌ ๋ ธ๋์ ๋๋ค. ์ด๋ฐ ๊ฒ๋ค์ด ๋๋ฅผ ๊ฐ๋ฑํ๊ฒ ๋ง๋ ๋ค.
NS: ์ฒซ์งธ, ์ด๊ฒ์ ์์ ํ Postgres ์ด์ผ๊ธฐ๋ผ๋ ์ ์ ๋์ํฉ๋๋ค. ๋ด ์๊ฐ์ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ์ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ผ์ข ์ ์ง์ IO์ ๋ฒํผ ํ์ ๊ฐ๊ณ ์๋ค๋ฉด ์ด ์ ๊ทผ ๋ฐฉ์์ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค. ๊ณํ์ ๋ฌ๋ผ์ง ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ง๊ธ์ Postgres๋ก๋ง ์์ ํ๊ณ ๋ค๋ฅธ ๊ฒ์ ๋ํด์๋ ์๊ฐํ์ง ์์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค์ ๋ํ์ฌ. ๋น์ ์ ์ฐ๋ฆฌ๊ฐ ์๊ตฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๋ชจ๋ ๊ณณ์์ ์ฐ๋ฆฌ์๊ฒ ๋งํ์ต๋๋ค. ์ธ์คํด์ค๊ฐ ์คํจํ๋ฉด ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋์คํฌ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ Kubernetes์ ์ ์ฒด ํ๋ซํผ๋ ์์ผ๋ฉฐ Postgres๊ฐ ํฌํจ๋ ๊ตฌ์ฑ ์์๋ ๋ณ๋์ ๋๋ค(์ธ์ ๊ฐ๋ ์์ ์์ ์). ๋ฐ๋ผ์ ๋ชจ๋ ๊ฒ์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ์คํด์ค๊ฐ ๋จ์ด์ก์ง๋ง PV๋ฅผ ์ ์ฅํ๊ณ ์๋ฌด ์ผ๋ ์์๋ ๊ฒ์ฒ๋ผ ๋ค๋ฅธ (์) ์ธ์คํด์ค์ ์ฐ๊ฒฐํ์ต๋๋ค.
DS: ๋ด ๊ด์ ์์๋ Kubernetes์์ Pod๋ฅผ ์์ฑํฉ๋๋ค. K8s - ํ์ฑ: ๋งค๋ญ์ ํ์์ ๋ฐ๋ผ ์ฃผ๋ฌธ๋ฉ๋๋ค. ์๋ฌด๋ ๋จ์ํ ํฌ๋๋ฅผ ์์ฑํ๊ณ X๋งํผ์ ๋ฆฌ์์ค๊ฐ ํ์ํ๋ค๊ณ ๋งํ๋ฉด K8์ด ์ค์ค๋ก ์์๋ด๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ Kubernetes์ ์คํ ๋ฆฌ์ง ์ง์์ ์ฌ์ ํ โโ๋ถ์์ ํฉ๋๋ค.
XNUMX๊ฐ์์์ XNUMX๋ ์ด ์ง๋๋ฉด ๋ค์ ์์ ๋๊ฑฐ๋ ์ ์ด๋ ๊ทธ๋ ๊ฒ ์ ์ธ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค๋ ์ท ๋ฐ ํฌ๊ธฐ ์กฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ์์ ํ ํด๊ฒฐ๋ฉ๋๋ค. ๊ธฐ๋ฐ์ด ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์, ๋งค์ฐ ๋น ๋ฅด์ง๋ ์์ ์ ์์ง๋ง ์๋๋ "๋ด๋ถ"์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ผ๋ถ ๊ตฌํ์์๋ ๋์คํฌ ํ์ ์์คํ ์์ค์์ ๋ณต์ฌ ๋ฐ ์ฐ๊ธฐ ์ ๋ณต์ฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
NS: ์ด ๋ฒ์ ์ ์ง์ํ๋ ค๋ฉด ๋ชจ๋ ์์ง(Amazon, Google...)์ด ํ์ํฉ๋๋ค. ์ด ์ญ์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
DS: ์์ง์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค.
Kubernetes๋ฅผ ์ํ ๋ก์ปฌ ๊ฐ๋ฐ
NS: ํ ๋จธ์ ์ ๋ชจ๋ ํฌ๋๋ฅผ ์ค์นํ๊ณ ์ด๋ ๊ฒ ์์ ํ ์คํธ๋ฅผ ์ํํด์ผ ํ ๋ ๊ทธ๋ฐ ํฌ๋ง ์ฌํญ์ ๋ฐ๊ฒฌํ์ จ๋์? ๊ฐ๋ ์ฆ๋ช ์ ์ ์ํ๊ฒ ์ป์ผ๋ ค๋ฉด ๋ง์ ๋จธ์ ์ ์ ์ฉ์ผ๋ก ์ฌ์ฉํ์ง ์๊ณ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด Kubernetes์์ ์คํ๋๋์ง ํ์ธํ์ธ์. Minikube๊ฐ ์์ฃ ?
DS: ํ ๋
ธ๋์ ๋ฐฐํฌ๋ ์ด ์ฌ๋ก๋ ์ ์ ์ผ๋ก ๋ก์ปฌ ๊ฐ๋ฐ์ ๊ดํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๊ทธ๋ฌํ ํจํด์ ์ผ๋ถ ํํ. ๋จน๋ค
NS: ์ ๋ ์ด๊ฒ์ด ๋ชจ๋ Pod๋ฅผ ํ๋์ Docker ์ด๋ฏธ์ง๋ก ํฌ์ฅํ๋ ค๋ ์๋๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์์ ํ ๋ค๋ฅธ ๊ฒ์ ๊ดํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ์ด์จ๋ Docker์๋ ๋ณ๋์ ์ปจํ ์ด๋, ๋ณ๋์ ํฌ๋๊ฐ ์์ต๋๋ค.
DS: ์. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์ฐ์ค๊ฝ์ค๋ฌ์ด ๋ชจ๋ฐฉ์ด ๋ง๋ค์ด์ก๋๋ฐ ๊ทธ ์๋ฏธ๋ ์ด๋ ์ต๋๋ค... ์ฐ๋ฆฌ๋ ๋ฐฐํฌ๋ฅผ ์ํ ์ ํธ๋ฆฌํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค - werf up
: "๋ก์ปฌ Kubernetes๋ฅผ ๊ฐ์ ธ์ค์ธ์." ๊ทธ๋ฐ ๋ค์ ๊ฑฐ๊ธฐ์์ ์กฐ๊ฑด๋ฌธ์ ์คํํ์ญ์์ค. werf follow
. ๊ทธ๋ฐ ๋ค์ ๊ฐ๋ฐ์๋ IDE๋ฅผ ํธ์งํ ์ ์์ผ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ๊ณ ์ด๋ฏธ์ง๋ฅผ ๋ค์ ๋น๋ํ์ฌ ๋ก์ปฌ K8์ ์ฌ๋ฐฐํฌํ๋ ํ๋ก์ธ์ค๊ฐ ์์คํ
์์ ์์๋ฉ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ง์ญ ๋ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋
ธ๋ ฅํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
K8s ํ์ค์ ์ค๋ ์ท ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์
NS: ๊ธฐ๋ก ์ค ๋ณต์ฌ๋ก ๋์๊ฐ๋ ๊ฒฝ์ฐ. ๋๋ ๊ตฌ๋ฆ์๋ ์ค๋ ์ท์ด ์๋ค๋ ๊ฒ์ ์์์ฐจ๋ ธ์ต๋๋ค. ๊ทธ๋ค์ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด GCP์๋ ๋ฏธ๊ตญ ๋๋ถ ํด์์ ์ ํ ๋ผ๋ฐ์ดํธ ๊ท๋ชจ์ ์ธ์คํด์ค๊ฐ ์์ต๋๋ค. ์ ๊ธฐ์ ์ผ๋ก ์ค๋ ์ท์ ์ฐ์ต๋๋ค. ์ค๋ ์ท์์ ์ํด์์ ๋์คํฌ ๋ณต์ฌ๋ณธ์ ์ ํํฉ๋๋ค. ๋ช ๋ถ ์์ ๋ชจ๋ ๊ฒ์ด ์ค๋น๋๊ณ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์๋ํ๋ฉฐ ์บ์๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฑ์์ง๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํด๋ก (์ค๋ ์ท)์ ์ ๋ณผ๋ฅจ์ 'ํ๋ก๋น์ ๋'ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๋ง์ ์ธ์คํด์ค๋ฅผ ์์ฑํด์ผ ํ ๋ ์ ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ ํ
์คํธ๋ฅผ ์ํด Docker์์ ์ด์ผ๊ธฐํ๊ฑฐ๋ ZFS, btrfs, ์ฌ์ง์ด LVM์์ ์ด์ผ๊ธฐํ๋ ์ค๋
์ท์ ์ฌ์ฉํ๋ฉด ํ๋์ ์์คํ
์์ ์ค์ ๋ก ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํด๋ผ์ฐ๋์์๋ ๋งค๋ฒ ๋น์ฉ์ ์ง๋ถํ๊ณ ๋ช ์ด๊ฐ ์๋ ๋ช ๋ถ๋ง ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ฉ๋๋ค.
๋์ , ์ด ๋ฐ์ดํฐ๋ฅผ XNUMX~XNUMX์ด ์์ ๊ฐ์ ธ์์ ํ ์คํธ๋ฅผ ์คํํ๊ณ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค๋ ์ท์ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ํ์ฅํ์ฌ ์ ๋ณต์ ๋ณธ์ ์ป๊ณ ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ํ ์คํธ์ฉ์ ๋๋ค.
DS: ๋์ํ์ง ์์ต๋๋ค. ๋ณผ๋ฅจ ๋ณต์ ๊ฐ ์ ๋๋ก ์๋ํ๋๋ก ๋ง๋๋ ๊ฒ์ ํด๋ผ์ฐ๋์ ์์
์
๋๋ค. ๊ตฌํ์ ์ดํด๋ณด์ง ์์์ง๋ง ํ๋์จ์ด์์ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์๊ณ ์์ต๋๋ค. Ceph๊ฐ ์๋๋ฐ, ์ด๋ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ๋ณผ๋ฅจ(
NS: ํ์ง๋ง ์ธ์คํด์ค๋ฅผ ๋ฐ์์ํค๊ณ Docker๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐ๋ ์ฌ์ ํ ๋ช ์ด, ์์ญ ์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
DS: ์ ์ฒด ์ธ์คํด์ค๋ฅผ ํค์์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฐ๋ฆฌ๋ 32๊ฐ์ ์ฝ์ด, 16๊ฐ...๋ฅผ ๊ฐ์ง ์ธ์คํด์ค๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ฌ๊ธฐ์ ๋ค์ด๊ฐ ์ ์์ต๋๋ค(์: XNUMX๊ฐ). ๋ค์ฏ ๋ฒ์งธ๋ฅผ ์ฃผ๋ฌธํ๋ฉด ์ธ์คํด์ค๊ฐ ์ด๋ฏธ ์์ฑ๋ ํ ์ญ์ ๋ฉ๋๋ค.
NS: ๋ค, ํฅ๋ฏธ๋กญ์ต๋๋ค. Kubernetes๋ ๋ค๋ฅธ ์ด์ผ๊ธฐ๋ก ๋ฐํ์ก์ต๋๋ค. ์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ K8s์ ์์ผ๋ฉฐ ์ธ์คํด์ค๊ฐ ํ๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฉํฐํ ๋ผ๋ฐ์ดํธ ๊ท๋ชจ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ ํ๋ ๋ฐ๋ XNUMX์ด๋ ๊ฑธ๋ฆฌ์ง ์์ต๋๋ค.
DS: ์ ๋ง ์ข์์. ๊ทธ๋ฌ๋ ๋์ ์ด๊ธฐ ์์ ์ ์ด๊ฒ์ด ์ผ๋ฐ์ ์ธ ์๋ฃจ์ ์ด ์๋๋ผ๋ ๊ฒ์ ๋๋ค. ์, ์ข์ต๋๋ค. ํ์ง๋ง Postgres์ ํ๋์ ๋ ธ๋์๋ง ์ ํฉํฉ๋๋ค.
NS: ์ด๊ฒ์ Postgres์๋ง ์ ํฉํ ๊ฒ์ด ์๋๋๋ค. ์ ๊ฐ ์ค๋ช ํ ๋๋ก ์ด ๊ณํ์ Postgres์์๋ง ์๋ํฉ๋๋ค. ํ์ง๋ง ๊ณํ์ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๊ธฐ๋ฅ ํ ์คํธ๋ฅผ ์ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ง ํ์ํ๋ค๋ฉด ์ด๋ ๋ชจ๋ DBMS์ ์ ํฉํฉ๋๋ค.
DS: ๋ช ๋ ์ ์ ์ฐ๋ฆฌ๋ LVM ์ค๋ ์ท์์ ๋น์ทํ ์์ ์ ์ํํ์ต๋๋ค. ์ด๊ฒ์ ๊ณ ์ ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋งค์ฐ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉ๋์์ต๋๋ค. ์ํ ์ ์ฅ ๋ ธ๋๋ ๊ณ ํต์ค๋ฌ์ธ ๋ฟ์ ๋๋ค. ๋จ์ด๋จ๋ฆฌ๋ฉด ์ ๋๋๊น ๋ ๊ธฐ์ตํด์ผ์ง...
NS: ์ฌ๊ธฐ์ ํ์ด๋ธ๋ฆฌ๋์ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ๋ณด์๋์? ์ํ ์ ์ฅ์ด ์ผ์ข ์ ํฌ๋๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ ์ฌ๋ฌ ์ฌ๋(๋ง์ ํ ์คํฐ)์๊ฒ ์๋ํฉ๋๋ค. ๋ณผ๋ฅจ์ ํ๋์ด์ง๋ง ํ์ผ ์์คํ ๋๋ถ์ ๋ณต์ ๋ณธ์ ๋ก์ปฌ์ ๋๋ค. ํฌ๋๊ฐ ๋จ์ด์ก์ง๋ง ๋์คํฌ๋ ๋จ์ ์์ผ๋ฉด ํฌ๋๊ฐ ์ฌ๋ผ๊ฐ์ ๋ชจ๋ ํด๋ก ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ฐํ๊ณ ๋ชจ๋ ๊ฒ์ ๋ค์ ์ง์ด ๋ค๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. "์ฌ๊ธฐ ์ด ํฌํธ์์ ์คํ ์ค์ธ ํด๋ก ์ด ์์ต๋๋ค. ๊ณ์ ์์ ํ์ธ์."
DS: ๊ธฐ์ ์ ์ผ๋ก ์ด๊ฒ์ Kubernetes ๋ด์์ ๋ง์ Postgres๋ฅผ ์คํํ๋ ํ๋์ ํฌ๋๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
NS: ์. ๊ทธ์๊ฒ๋ ํ๊ณ๊ฐ ์์ต๋๋ค. ๋์์ ๊ทธ์ ํจ๊ป ์ผํ ์ ์๋ ์ฌ๋์ 10๋ช ์ดํ๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. 20๊ฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ ๋ ๋ฒ์งธ ํฌ๋๋ฅผ ์ถ์ํ๊ฒ ์ต๋๋ค. ๋ ๋ฒ์งธ ์ ์ฒด ๋ณผ๋ฅจ์ ์์ ํ๋ฉด ์ด๋ฅผ ์์ ํ ๋ณต์ ํ ๊ฒ์ด๋ฉฐ ๋์ผํ 10๊ฐ์ "์ฌ" ํด๋ก ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ๊ธฐํ๊ฐ ๋ณด์ด์ง ์๋์?
DS: ์ฌ๊ธฐ์ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ์กฐ์ง์ ์ด ํฌ๋๊ฐ ํ์ผ ์์คํ ์์ ๋นํ์ค ์์ ์ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์ ๊ถํ(๊ธฐ๋ฅ)์ ๊ฐ์ง๊ณ ์์์ ์๋ฏธํฉ๋๋ค... ํ์ง๋ง ๋ฐ๋ณตํฉ๋๋ค. ์ค๊ธฐ์ ์ผ๋ก๋ ๊ทธ๋ค์ด Kubernetes์ ์คํ ๋ฆฌ์ง๋ฅผ ๊ณ ์น ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ๊ตฌ๋ฆ์ ์ ์ฒด ์ด์ผ๊ธฐ๋ฅผ ๋ณผ๋ฅจ์ผ๋ก ๊ณ ์น ๊ฒ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ด "๊ทธ๋ฅ ์๋"ํ ๊ฒ์ ๋๋ค. ํฌ๊ธฐ ์กฐ์ , ๋ณต์ ... ๋ณผ๋ฅจ์ด ์์ต๋๋ค. "์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ณผ๋ฅจ์ ๋ง๋ญ๋๋ค."๋ผ๊ณ ๋งํ๊ณ XNUMX์ด ๋ฐ ํ์ ํ์ํ ๊ฒ์ ์ป์ต๋๋ค.
NS: ๋๋ ์ ํ ๋ผ๋ฐ์ดํธ์ ๋ํด 2์ด๋ผ๋ ๊ฒ์ ๋ฏฟ์ง ์์ต๋๋ค. Ceph์์๋ ์ง์ ์ํํ์ง๋ง ํด๋ผ์ฐ๋์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค. ํด๋ผ์ฐ๋๋ก ์ด๋ํ์ฌ ECXNUMX์์ ๋ฉํฐ ํ ๋ผ๋ฐ์ดํธ EBS ๋ณผ๋ฅจ์ ๋ณต์ ๋ณธ์ ๋ง๋ค๊ณ ์ฑ๋ฅ์ด ์ด๋ค์ง ํ์ธํ์ธ์. ๋ช ์ด๋ ๊ฑธ๋ฆฌ์ง ์์ต๋๋ค. ์ธ์ ์ด ์์ค์ ๋๋ฌํ ์ง ๋งค์ฐ ๊ถ๊ธํฉ๋๋ค. ๋๋ ๋น์ ์ด ๋งํ๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ค๋ฅด๊ฒ ๊ฐ์ฒญํฉ๋๋ค.
DS: ๋ค, ๊ทธ๋ฐ๋ฐ ๋จ๊ธฐ๊ฐ ์๋๋ผ ์ค๊ธฐ๋ผ๊ณ ๋ง์๋๋ ธ๋๋ฐ์. ๋ช ๋ ๋์.
Zalando์ PostgreSQL ์ฐ์ฐ์ ์ ๋ณด
์ด ํ์ ์ค๊ฐ์ Zalando์ ์ ๊ฐ๋ฐ์์ธ Alexey Klyukin๋ ํฉ๋ฅํ์ฌ PostgreSQL ์ด์์์ ์ญ์ฌ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค.
Postgres์ Kubernetes ๋ชจ๋์์ ์ด ์ฃผ์ ๋ฅผ ์ ๋ฐ์ ์ผ๋ก ๋ค๋ฃฌ๋ค๋ ๊ฒ์ ์ข์ ์ผ์ ๋๋ค. 2017๋ Zalando์์ ์ด ์์ ์ ์์ํ์ ๋ ๋ชจ๋๊ฐ ํ๊ณ ์ถ์ดํ๋ ์ฃผ์ ์์ง๋ง ์๋ฌด๋ ํ์ง ์์์ต๋๋ค. ๋๊ตฌ๋ ์ด๋ฏธ Kubernetes๋ฅผ ๊ฐ๊ณ ์์ง๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ฌด์์ ํด์ผ ํ๋์ง ๋ฌผ์ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ผ์ ํ์ดํ์ K8s๋ฅผ ์ค๊ตํ ๋ถ์ ์ด๋ ๊ฒ ๋ง์ํ์ จ์ต๋๋ค.โ๊ด๋ฆฌํ ์๋น์ค๋ก ์ด๋ํ์ฌ ์ฌ์ฉํ์ธ์. Kubernetes์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ์ง ๋ง์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฅผ ๋ค์ด K8์ด ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ฒฐ์ ํ๊ณ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ฉ๋ฆฌ ๋ ์๊ฐ ๊ฒ์ ๋๋ค.โ
์ฐ๋ฆฌ๋ ์ด ์กฐ์ธ๊ณผ๋ ๋ฐ๋๋ก Kubernetes์์ Postgres ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ํ ์ด์์๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์๊ฒ๋ ๊ทธ๋ด๋งํ ์ด์ ๊ฐ ์์์ต๋๋ค -
ํจํธ๋ก๋ . ์ด๋ PostgreSQL์ ๋ํ ์๋ ์ฅ์ ์กฐ์น์ด๋ฉฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋ฉ๋๋ค. etcd, consul ๋๋ ZooKeeper๋ฅผ ํด๋ฌ์คํฐ์ ๋ํ ์ ๋ณด ์ ์ฅ์๋ก ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ฌ ๋ฆฌ๋๊ฐ ๋๊ตฌ์ธ์ง ๋ฌป๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๋์ผํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์ ์ฅ์๋ ๋ชจ๋ ๊ฒ์ด ๋ถ์ฐ๋์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ถํ ๋ ๋๋๊ฐ ์๋๋ก ํฉ๋๋ค. ๊ฒ๋ค๊ฐ ์ฐ๋ฆฌ๋๋์ปค ์ด๋ฏธ์ง ๊ทธ๋ฅผ ์ํด.์ผ๋ฐ์ ์ผ๋ก ํ์ฌ์ ์๋ ์ฅ์ ์กฐ์น(failover)์ ๋ํ ํ์์ฑ์ ๋ด๋ถ ํ๋์จ์ด ๋ฐ์ดํฐ ์ผํฐ์์ ํด๋ผ์ฐ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ํ์ ๋ํ๋ฌ์ต๋๋ค. ํด๋ผ์ฐ๋๋ ๋ ์ ์ ์ธ PaaS(Platform-as-a-Service) ์๋ฃจ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋๋ค. ์คํ ์์ค์ด์ง๋ง ์ด๋ฅผ ์์ํ๊ณ ์คํํ๋ ๋ฐ ๋ง์ ์์ ์ด ํ์ํ์ต๋๋ค. ๊ทธ๊ฒ์ ๋ถ๋ ธ๋ค
์คํ .์ฒ์์๋ Kubernetes๊ฐ ์์์ต๋๋ค. ๋ ์ ํํ ๋งํ๋ฉด, ์์ฒด ์๋ฃจ์ ์ ๋์ ํ ๋น์ K8์ ์ด๋ฏธ ์กด์ฌํ์ง๋ง, ๋๋ฌด ์กฐ์กํด์ ์์ฐ์ ์ ํฉํ์ง ์์์ต๋๋ค. ๋ด ์๊ฐ์ 2015๋ ์ธ๊ฐ 2016๋ ์ด์๋ ๊ฒ ๊ฐ๋ค. 2017๋ ๊น์ง Kubernetes๋ ๋ค์ ์ฑ์ํด์ก์ผ๋ฉฐ ๊ทธ๊ณณ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ํ์๊ฐ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ด๋ฏธ Docker ์ปจํ ์ด๋๋ฅผ ๊ฐ๊ณ ์์์ต๋๋ค. Docker๋ฅผ ์ฌ์ฉํ PaaS๊ฐ ์์์ต๋๋ค. K8์ ์ํํด ๋ณด๋ ๊ฒ์ ์ด๋จ๊น์? ์์ ๋ง์ ์ฐ์ฐ์๋ฅผ ์์ฑํด ๋ณด๋ ๊ฒ์ ์ด๋จ๊น์? Avito์์ ์ฐ๋ฆฌ์๊ฒ ์จ Murat Kabilov๋ ์์ ์ ์ฃผ๋๋ก "๋์ด"๋ผ๋ ํ๋ก์ ํธ๋ก ์ด๊ฒ์ ์์ํ๊ณ ํ๋ก์ ํธ๋ "์์๋์์ต๋๋ค."
ํ์ง๋ง ์ ๋ฐ์ ์ผ๋ก AWS์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์์ต๋๋ค. ๊ณผ๊ฑฐ AWS ๊ด๋ จ ์ฝ๋๊ฐ ์์๋ ์ด์ ๋...
Kubernetes์์ ๋ฌด์ธ๊ฐ๋ฅผ ์คํํ ๋ K8s๊ฐ ์งํ ์ค์ธ ์์ ์ด๋ผ๋ ์ ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋์์์ด ๋ฐ์ ํ๊ณ , ๊ฐ์ ๋๊ณ , ๋๋ก๋ ๋ฌด๋์ง๊ธฐ๊น์ง ํฉ๋๋ค. Kubernetes์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฉด๋ฐํ ๊ด์ฐฐํด์ผ ํ๋ฉฐ, ์ด๋ค ์ผ์ด ๋ฐ์ํ๋ฉด ์ด๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์์ธํ ๋ฐฐ์ธ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํฉ๋๋ค. ์ด์ฉ๋ฉด ์ํ๋ ๊ฒ ์ด์์ผ ์๋ ์์ต๋๋ค. ์ด๋ ์์น์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์คํํ๋ ๋ชจ๋ ํ๋ซํผ์ ์ ์ฉ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ฑ๋ช ์๋ฅผ ์์ฑํ์ ๋ Postgres๋ ์ธ๋ถ ๋ณผ๋ฅจ(์ด ๊ฒฝ์ฐ AWS์์ ์์ ์ค์ด์๊ธฐ ๋๋ฌธ์ EBS)์์ ์คํ ์ค์ด์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ปค์ ธ์ ์ด๋ค ์์ ์์๋ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ผ ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด EBS์ ์ด๊ธฐ ํฌ๊ธฐ๋ 100TB์๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ทธ ์ ๋๋ก ๋์ด๋ฌ์ต๋๋ค. ์ด์ EBS๋ฅผ 200TB๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ์ด๋ป๊ฒ? ์ ์ธ์คํด์ค์์ ๋คํ/๋ณต์์ ์ํํ ์ ์์ง๋ง ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๊ฐ๋ ์ค์ง ์๊ฐ์ด ๋ฐ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ฐ๋ผ์ ์ ๋ EBS ํํฐ์ ์ ํ๋ํ ๋ค์ ํ์ผ ์์คํ ์ ์ ๊ณต๊ฐ์ ์ฌ์ฉํ๋๋ก ์ง์ํ๋ ํฌ๊ธฐ ์กฐ์ ์ ์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๋ ๊ฒ ํ์ง๋ง ๋น์ Kubernetes์๋ ํฌ๊ธฐ ์กฐ์ ์์ ์ ์ํ API๊ฐ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ AWS์์ ์ผํ ์ดํ๋ก API์ฉ ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
๋ค๋ฅธ ํ๋ซํผ์์๋ ๋์ผํ ์์ ์ ์ํํ๋ ๊ฒ์ ์๋ฌด๋ ๋ง์ ์ ์์ต๋๋ค. ์ค๋ช ์๋ AWS์์๋ง ์คํํ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์์๋ ์๋ํ์ง ์๋๋ค๋ ํํธ๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ์คํ ์์ค ํ๋ก์ ํธ์ ๋๋ค. ๋๊ตฌ๋ ์ง ์๋ก์ด API ์ฌ์ฉ์ ์ถํ ์๋๋ฅผ ๋์ด๊ณ ์ถ๋ค๋ฉด ํ์ํฉ๋๋ค. ๋จน๋ค
GitHub์ , ๋์ด์ค๊ธฐ ์์ฒญ - Zalando ํ์ ๋งค์ฐ ์ ์ํ๊ฒ ์ด์ ์๋ตํ๊ณ ์ด์์๋ฅผ ์น๊ฒฉ์ํค๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ๋ด๊ฐ ์๋ ํ, ๊ทธ ํ๋ก์ ํธ๋์ฐธ์ฌํ Google Summer of Code ๋ฐ ๊ธฐํ ์ ์ฌํ ์ด๋์ ํฐ๋ธ์์. Zalando๋ ์ด์ ๋ํด ๋งค์ฐ ์ ๊ทน์ ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
PS ๋ณด๋์ค!
PostgreSQL๊ณผ Kubernetes ์ฃผ์ ์ ๊ด์ฌ์ด ์์ผ์๋ค๋ฉด ๋ค์ Postgres ํ์์ผ์ด ์ง๋์ฃผ์ ์ด๋ ธ์ผ๋ฉฐ ์ ๊ฐ Nikolai์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๋ค๋ ์ ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค. Zalando์ Alexander Kukushkin. ํด๋น ๋์์์ ๋ณผ ์ ์์ต๋๋ค.
PPS
๋ธ๋ก๊ทธ์์๋ ์ฝ์ด๋ณด์ธ์.
- ยซ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ Kubernetes(๊ฐ์ ๋ฐ ๋์์ ๋ณด๊ณ ์) "; - ยซ
Cassandra๋ฅผ Kubernetes๋ก ๋ง์ด๊ทธ๋ ์ด์ : ๊ธฐ๋ฅ ๋ฐ ์๋ฃจ์ "; - ยซ
MongoDB๋ฅผ Kubernetes๋ก ์ํํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ "; - ยซ
RabbitMQ๋ฅผ Kubernetes๋ก ์ํํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ".
์ถ์ฒ : habr.com