์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ! ์ ์ด๋ฆ์ ํ๋ฒจ ์๊ฐ๋ ์ธ ํค์ ๋๋ค. ์ ๋ Lamoda ๋ฐฐ์ก ์์คํ ์ ๊ฐ๋ฐํ๋ ํ์์ ํ์ฅ์ผ๋ก ์ผํ๊ณ ์์ต๋๋ค. 2018๋ ์ ์ ๋ HighLoad++ ์ปจํผ๋ฐ์ค์์ ์ฐ์ค์ ํ๊ณ , ์ค๋์ ์ ๋ณด๊ณ ์์ ๋ น์ทจ๋ก์ ๋ฐํํ๊ณ ์ถ์ต๋๋ค.
์ ์ฃผ์ ๋ ๋ค์ํ ํ๊ฒฝ์ ์์คํ ๊ณผ ์๋น์ค๋ฅผ ๋ฐฐํฌํ ์ฐ๋ฆฌ ํ์ฌ์ ๊ฒฝํ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์์คํ ์ ์ผ๋ฐ ๊ฐ์ ์๋ฒ์ ๋ฐฐํฌํ๋ ์ ์ฌ ์๋๋ถํฐ ์์ํ์ฌ Nomad์์ Kubernetes ๋ฐฐํฌ๋ก ์ ์ง์ ์ผ๋ก ์ ํ๋์์ต๋๋ค. ์ ๊ทธ๋ ๊ฒ ํ๋์ง, ๊ทธ ๊ณผ์ ์์ ์ด๋ค ๋ฌธ์ ๊ฐ ์์๋์ง ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค.
VM์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
3๋ ์ ํ์ฌ์ ๋ชจ๋ ์์คํ ๊ณผ ์๋น์ค๊ฐ ์ผ๋ฐ ๊ฐ์ ์๋ฒ์ ๋ฐฐํฌ๋์๋ค๋ ์ฌ์ค๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก๋ ์ ํจ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์กฐ๋ฆฝ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ ๋ชจ๋ ์ฝ๋๋ฅผ ์ ์ฅํ๊ณ ์กฐ๋ฆฝํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. Ansible์ ์ฌ์ฉํ์ฌ ๋ฒ์ ์ ์ด ์์คํ ์์ ๊ฐ์ ์๋ฒ๋ก ์ถ์๋์์ต๋๋ค. ๋ํ ์ฐ๋ฆฌ ํ์ฌ์ ๊ฐ ์์คํ ์ ์ต์ 2๊ฐ์ ์๋ฒ์ ๋ฐฐํฌ๋์์ต๋๋ค. ๊ทธ ์ค ํ๋๋ ํค๋์, ๋ค๋ฅธ ํ๋๋ ํ ์ผ์ ๋ฐฐ์น๋์์ต๋๋ค. ์ด ๋ ์์คํ ์ ๋ชจ๋ ์ค์ , ์ ์, ๊ตฌ์ฑ ๋ฑ์ด ์์ ํ ๋์ผํ์ต๋๋ค. ์ด๋ค ์ฌ์ด์ ์ ์ผํ ์ฐจ์ด์ ์ Head๊ฐ ์ฌ์ฉ์ ํธ๋ํฝ์ ์์ ํ๋ ๋ฐ๋ฉด Tail์ ์ฌ์ฉ์ ํธ๋ํฝ์ ์์ ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ฌด์์ ์ํด ํํด์ก์ต๋๊น?
์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก์ด ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐฐํฌํ ๋ ์ํํ ๋กค์์, ์ฆ ์ฌ์ฉ์์๊ฒ ๋์ ๋๋ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํ๊ณ ์ถ์์ต๋๋ค. ์ด๋ Ansible์ ์ฌ์ฉํ์ฌ ๋ค์ ์ปดํ์ผ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์ต์ข ์ถ์๋์๊ธฐ ๋๋ฌธ์ ๋ฌ์ฑ๋์์ต๋๋ค. ๊ทธ๊ณณ์์ ๋ฐฐํฌ์ ์ฐธ์ฌํ ์ฌ๋๋ค์ ๋ชจ๋ ๊ฒ์ด ์ ์์ธ์ง ํ์ธํ๊ณ ํ์ธํ ์ ์์์ต๋๋ค. ๋ชจ๋ ์งํ, ์น์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ํ๊ณ ์์์ต๋๋ค. ํ์ํ ์คํฌ๋ฆฝํธ๊ฐ ์์๋ฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ๋ค๊ณ ํ์ ํ ํ์์ผ ํธ๋ํฝ์ด ์ ํ๋์์ต๋๋ค. ์ด์ ์ tail์ด์๋ ์๋ฒ๋ก ์ด๋ํ๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ํค๋์๋ ํญ๋ชฉ์ ์ฌ์ฉ์ ํธ๋ํฝ ์์ด ๊ทธ๋๋ก ์ ์ง๋์์ผ๋ฉฐ ์ด์ ๋ฒ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ ํ ๋จ์ ์์ต๋๋ค.
๊ทธ๋์ ์ฌ์ฉ์์๊ฒ๋ ์ํํ์ต๋๋ค. ์ค์์นญ์ ์ฆ๊ฐ์ ์ด๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๋ฐธ๋ฐ์๋ฅผ ์ค์์นญํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ๋จํ ๋ฐธ๋ฐ์๋ฅผ ๋ค์ ์ ํํ๋ฉด ์ด์ ๋ฒ์ ์ผ๋ก ๋งค์ฐ ์ฝ๊ฒ ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ํธ๋ํฝ์ ์์ ํ๊ธฐ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ฐ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ด ๋งค์ฐ ํธ๋ฆฌํ์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์์ ์ฐ๋ฆฌ๋ ์ด๋ค ์ด์ ์ ๋ณด์์ต๋๊น?
- ์ฐ์ ์ ์ถฉ๋ถํด์ ๊ทธ๋ฅ ์๋ํฉ๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ผ๋ฐ ๊ฐ์ ์๋ฒ์ ๋ฐฐํฌํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๋ฐฐํฌ ์ฒด๊ณ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ชจ๋๊ฐ ์ดํดํฉ๋๋ค.
- ์ด๊ฒ์ผ๋ก ์ถฉ๋ถํ๋ค ํ์คํ๊ฒ, ๋ฐฐํฌ ๊ธฐ์ ์ด ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ์์ฒ ๊ฐ์ ํ์ฌ์์ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค์ต๋๋ค. ์๋ฐฑ๋ง ๋์ ์๋ฒ๊ฐ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ๋ฌด์ธ๊ฐ๋ฅผ ๊นจ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ง์นจ๋ด ์ฐ๋ฆฌ๋ ์ป์ ์ ์์์ต๋๋ค ์์์ ๋ฐฐํฌ. ์ด์ ๋ฒ์ ๊ณผ ์ ๋ฒ์ ์ฌ์ด๋ฅผ ์ ํํ๋ ๋์ ๋๋ ๋จ๊ณ ์์ด ์ฌ์ฉ์์๊ฒ ๋์์ ๋ฐ์ํ๋ ๋ฐฐํฌ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ด ๋ชจ๋ ๊ฒ์์ ๋ช ๊ฐ์ง ๋จ์ ๋ ๋ฐ๊ฒฌํ์ต๋๋ค.
- ํ๋ก๋์ ํ๊ฒฝ, ๊ฐ๋ฐ ํ๊ฒฝ ์ธ์๋ ๋ค๋ฅธ ํ๊ฒฝ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด QA ๋ฐ ์ฌ์ ์ ์์ด ์์ต๋๋ค. ๊ทธ ๋น์ ์ฐ๋ฆฌ๋ ๋ง์ ์๋ฒ์ ์ฝ 60๊ฐ์ ์๋น์ค๋ฅผ ๋ณด์ ํ๊ณ ์์์ต๋๋ค. ์ด๋ฐ ์ด์ ๋ก ํ์ํ์ต๋๋ค. ๊ฐ ์๋น์ค์ ๋ํด ์ต์ ๋ฒ์ ์ ์ ์งํฉ๋๋ค. ๊ฐ์ ๊ธฐ๊ธฐ. ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์ ์ข ์์ฑ์ ์ค์นํ๋ ค๋ฉด ๋ชจ๋ ํ๊ฒฝ์์ ์ด ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์ ๋ฒ์ ์ ๋ฐฐํฌํ ์๊ฐ๊ณผ devops๊ฐ ํ์ํ ํ๊ฒฝ ์ค์ ์ ์ํํ๋ ์๊ฐ์ ๋๊ธฐํํด์ผ ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ชจ๋ ํ๊ฒฝ์์ ์ฐ๋ฆฌ์ ํ๊ฒฝ์ด ํ๊บผ๋ฒ์ ๋ค์ ๋ฌ๋ผ์ง๋ ์ํฉ์ ๋น ์ง๊ธฐ ์ฝ์ต๋๋ค. ์๋ฅผ ๋ค์ด, QA ํ๊ฒฝ์๋ ์ผ๋ถ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ณ ํ๋ก๋์ ํ๊ฒฝ์๋ ๋ค๋ฅธ ๋ฒ์ ์ด ์์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ข ์์ฑ์ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ด๋ ค์์ด ์์ ๋์ ์ดํ๋ฆฌ์ผ์ด์ . ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ๋ฌ๋ ค ์๋ ๊ฒ์ด ์๋๋ผ ๋ค๋ฅธ ํ์ ๋ฌ๋ ค ์์ต๋๋ค. ์ฆ, ์๋ฒ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ DevOps ํ์์. ๋น์ ์ ๊ทธ๋ค์๊ฒ ์ ์ ํ ์์ ๊ณผ ๋น์ ์ด ํ๊ณ ์ถ์ ์ผ์ ๋ํ ์ค๋ช ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
- ๊ทธ ๋น์ ์ฐ๋ฆฌ๋ ๋ํ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ํฌ๊ณ ํฐ ๋จ์ผ์ฒด๋ฅผ ๋ณ๋์ ์์ ์๋น์ค๋ก ๋๋๊ณ ์ถ์์ต๋๋ค. ๊ทธ ์ด์ ๋ ์๋น์ค๊ฐ ์ ์ ๋ ๋ง์์ง ๊ฒ์ด๋ผ๋ ์ ์ ์ดํดํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋น์ ์ฐ๋ฆฌ๋ ์ด๋ฏธ 100๊ฐ ์ด์์ ์๋น์ค๋ฅผ ๋ณด์ ํ๊ณ ์์๊ณ , ์๋ก์ด ์๋น์ค๋ง๋ค ๋ณ๋์ ์๋ก์ด ๊ฐ์ ๋จธ์ ์ ์์ฑํด์ผ ํ์ผ๋ฉฐ, ์ด๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํด์ผ ํ์ต๋๋ค. ๋ํ ์๋์ฐจ ํ ๋๊ฐ ์๋๋ผ ์ต์ํ ๋ ๋๊ฐ ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ QA ํ๊ฒฝ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์๋ก์ด ์์คํ ์ ๊ตฌ์ถํ๊ณ ์คํํ๊ธฐ๊ฐ ๋ ์ด๋ ค์์ง๋๋ค. ๋ณต์กํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ํ๋ก์ธ์ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ผ๋ฐ ๊ฐ์ ๋จธ์ ๋ฐฐํฌ์์ Docker ์ปจํ ์ด๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๋ก ์ด๋ํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. Docker๊ฐ ์์ผ๋ฉด ์ปจํ ์ด๋๋ง ํค์ธ ์๋ ์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ ์์คํ ์ด ํ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ค์ด ์ฌ๋ ค์ง๋ ์ปจํ ์ด๋ ์๋ฅผ ์ถ์ ํ์ฌ ์๋์ผ๋ก ๋ค์ด ์ฌ๋ ค์ง๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์ฐ๋ฆฌ๋ ์ ์ด ์์คํ ์ ์ ํํด์ผ ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ ๊ฒ์ ํํ ์ ์๋์ง ์ค๋ซ๋์ ์๊ฐํ์ต๋๋ค. ์ฌ์ค ๊ทธ ๋น์ ์ผ๋ฐ ๊ฐ์ ์๋ฒ์ ์ด ๋ฐฐํฌ ์คํ์ ์ต์ ๋ฒ์ ์ ์ด์ ์ฒด์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ๋ค์ ๊ตฌ์์ด์์ต๋๋ค. ์ด๋ ์์ ์๋ ์ง์ํ๊ธฐ๊ฐ ๊ทธ๋ฆฌ ํธ๋ฆฌํ์ง ์์ FreeBSD๋ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ Docker๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ๋ค๋ ๊ฒ์ ์ดํดํ์ต๋๋ค. ์ฐ๋ฆฌ ๋ฐ๋ธ์ต์ค๋ ๋ค์ํ ์๋ฃจ์ ์ ๋ํ ๊ธฐ์กด ๊ฒฝํ์ ์ดํด๋ณด๊ณ Nomad์ ๊ฐ์ ์์คํ ์ ์ ํํ์ต๋๋ค.
๋ ธ๋ง๋๋ก ์ ํ
Nomad๋ HashiCorp์ ์ ํ์ ๋๋ค. ๊ทธ๋ค์ ๋ํ ๋ค๋ฅธ ์๋ฃจ์ ์ผ๋ก๋ ์๋ ค์ ธ ์์ต๋๋ค:
"์์ฌ" ์๋น์ค ๊ฒ์์ ์ํ ๋๊ตฌ์
๋๋ค.
"ํ ๋ผํผ" - ์์ ์ฝ๋ํ ์ธํ๋ผ๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ตฌ์ฑ์ ํตํด ์๋ฒ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ ์๋ฒ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค.
"๋ฐฉ๋์" ํน์ ๊ตฌ์ฑ ํ์ผ์ ํตํด ๋ก์ปฌ ๋๋ ํด๋ผ์ฐ๋์ ๊ฐ์ ๋จธ์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
๋น์ Nomad๋ ์ ์ฒด ์ธํ๋ผ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ๋น ๋ฅด๊ฒ ์ ํํ ์ ์๋ ์๋นํ ๊ฐ๋จํ ์๋ฃจ์ ์ฒ๋ผ ๋ณด์์ต๋๋ค. ๊ฒ๋ค๊ฐ ๋ฐฐ์ฐ๊ธฐ๋ ๋งค์ฐ ์ฝ์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ ์ปจํ ์ด๋์ ์ฌ๊ณผ ์์คํ ์ผ๋ก ์ด๋ฅผ ์ ํํ ์ด์ ์ ๋๋ค.
Nomad์ ์์คํ ์ ๋ฐฐํฌํ๋ ค๋ฉด ๋ฌด์์ด ํ์ํฉ๋๊น?
- ์ฐ์ ๋น์ ์๊ฒ ํ์ํ ๊ฒ์ ๋์ปค ์ด๋ฏธ์ง ๋์ ์ดํ๋ฆฌ์ผ์ด์ . ์ด๋ฅผ ๋น๋ํ๊ณ docker ์ด๋ฏธ์ง ์ ์ฅ์์ ๋ฐฐ์นํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ค์ํ ์ ํ์ ๋ค์ํ ์ํฐํฉํธ๋ฅผ ํธ์ํ ์ ์๋ ์์คํ ์ธ ์ํฐํฉํธ์ ๋๋ค. ์์นด์ด๋ธ, ๋์ปค ์ด๋ฏธ์ง, Composer PHP ํจํค์ง, NPM ํจํค์ง ๋ฑ์ ์ ์ฅํ ์ ์์ต๋๋ค.
- ๋ํ ํ์ ๊ตฌ์ฑ ํ์ผ, ์ด๋ Nomad์๊ฒ ๋ฌด์์, ์ด๋์, ์ด๋ ์ ๋ ๋ฐฐํฌํ๋ ค๋์ง ์๋ ค์ค ๊ฒ์ ๋๋ค.
Nomad์ ๋ํด ์ด์ผ๊ธฐํ ๋ Nomad๋ ์ ๋ณด ํ์ผ ํ์์ผ๋ก HCL ์ธ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. HashiCorp ๊ตฌ์ฑ ์ธ์ด. ์ด๋ Nomad ์ฉ์ด๋ก ์๋น์ค๋ฅผ ์ค๋ช ํ ์ ์๋ Yaml์ ์์ ์งํฉ์ ๋๋ค.
์ด๋ฅผ ํตํด ๋ฐฐํฌํ ์ปจํ
์ด๋ ์, ๋ฐฐํฌ ์ค์ ์ด๋ค ์ด๋ฏธ์ง์์ ๋ค์ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ง ๋งํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ํ์ผ์ Nomad์ ์ ๊ณตํ๋ฉด Nomad๋ ์ด์ ๋ฐ๋ผ ์ปจํ
์ด๋๋ฅผ ํ๋ก๋์
์ผ๋ก ์์ํฉ๋๋ค.
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ, ๋จ์ํ ๊ฐ ์๋น์ค์ ๋ํด ์์ ํ ๋์ผํ HCL ํ์ผ์ ์์ฑํ๋ ๊ฒ์ ๊ทธ๋ฆฌ ํธ๋ฆฌํ์ง ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์๋น์ค๊ฐ ๋ง๊ณ ๋๋ก๋ ์ด๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ๋์ ์๋น์ค๊ฐ ํ๋์ ์ธ์คํด์ค๊ฐ ์๋ ๋ค์ํ ์ธ์คํด์ค์ ๋ฐฐํฌ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก๋์ ํ๊ฒฝ์ ์๋ ์์คํ ์ค ํ๋์๋ ํ๋ก๋์ ์ธ์คํด์ค๊ฐ 100๊ฐ๊ฐ ๋์ต๋๋ค. ๋์ผํ ์ด๋ฏธ์ง์์ ์คํ๋์ง๋ง ๊ตฌ์ฑ ์ค์ ๊ณผ ๊ตฌ์ฑ ํ์ผ์ด ๋ค๋ฆ ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๋ฐฐํฌํ ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ์ ํ๋์ ๊ณตํต ์ ์ฅ์์ ์ ์ฅํ๋ ๊ฒ์ด ํธ๋ฆฌํ๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์์คํ ์ ๋ณผ ์ ์์์ต๋๋ค. ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฌ์ ๊ณ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์์คํ ์ ๋ณด์ ํ๊ณ ์๋์ง ํ์ธํ ์ ์์์ต๋๋ค. ํ์ํ ๊ฒฝ์ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ๋ ์ฝ์ต๋๋ค. ์ ์์คํ ์ ์ถ๊ฐํ๋ ๊ฒ๋ ์ด๋ ต์ง ์์ต๋๋ค. ์ ๋๋ ํฐ๋ฆฌ ๋ด์ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ ์์๋ ์๋น์ค์ ๋ํ ์ค๋ช ์ด ํฌํจ๋ service.hcl๊ณผ ํ๋ก๋์ ์ ๋ฐฐํฌ๋๋ ๋ฐ๋ก ์ด ์๋น์ค๋ฅผ ๊ตฌ์ฑํ ์ ์๋ ์ผ๋ถ env ํ์ผ์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ผ๋ถ ์์คํ
์ ํ๋์ ๋ณต์ฌ๋ณธ์ด ์๋ ๋์์ ์ฌ๋ฌ ๋ณต์ฌ๋ณธ์ผ๋ก ํ๋ก๋์
ํ๊ฒฝ์ ๋ฐฐํฌ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ๊ตฌ์ฑ์ ์์ํ ํ์์ด ์๋ ํ
ํ๋ฆฟ ํ์์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ด ํธ๋ฆฌํ๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ ํํ๋ค ์ง์ 2. ์ด ํ์์์๋ ์๋น์ค ์์ฒด์ ๊ตฌ์ฑ๊ณผ ์๋น์ค์ ํ์ํ env ํ์ผ์ ๋ชจ๋ ์ ์ฅํฉ๋๋ค.
๋ํ ๋ชจ๋ ํ๋ก์ ํธ์ ๊ณตํต์ ์ธ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฅ์์ ๋ฐฐ์นํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์๋น์ค๋ฅผ ํ๋ก๋์ , ์ํ๋ ํ๊ฒฝ, ์ํ๋ ๋์์ผ๋ก ์์ํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค. HCL ๊ตฌ์ฑ์ ํ ํ๋ฆฟ์ผ๋ก ์ ํํ ๊ฒฝ์ฐ ์ด์ ์๋ ์ผ๋ฐ Nomad ๊ตฌ์ฑ์ด์๋ HCL ํ์ผ์ด ์ด ๊ฒฝ์ฐ ์ฝ๊ฐ ๋ค๋ฅด๊ฒ ๋ณด์ด๊ธฐ ์์ํ์ต๋๋ค.
์ฆ, ์ผ๋ถ ๊ตฌ์ฑ ์์น ๋ณ์๋ฅผ env ํ์ผ์ด๋ ๋ค๋ฅธ ์์ค์์ ๊ฐ์ ธ์จ ์ฝ์
๋ ๋ณ์๋ก ๋์ฒดํ์ต๋๋ค. ๋ํ HCL ํ์ผ์ ๋์ ์ผ๋ก ์์งํ ์ ์๋ ๊ธฐํ๋ ์ป์์ต๋๋ค. ์ฆ, ์ผ๋ฐ์ ์ธ ๋ณ์ ์ฝ์
๋ฟ๋ง ์๋๋ผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. jinja๋ ๋ฃจํ์ ์กฐ๊ฑด์ ์ง์ํ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ์์น์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ ๊ตฌ์ฑ ํ์ผ์ ์์ฑํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ฌ์ ํ๋ก๋์ ๋ฐ ํ๋ก๋์ ์ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ ค๊ณ ํฉ๋๋ค. ์ฌ์ ํ๋ก๋์ ์์ cron ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ์ถ์ง ์๊ณ ์๋น์ค๊ฐ ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ๋ณ๋์ ๋๋ฉ์ธ์์ ์๋น์ค๋ฅผ ๋ณด๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ ๋ชจ๋ ์ฌ๋์๊ฒ ํ๋ก์ธ์ค๋ ๋งค์ฐ ๊ฐ๋จํ๊ณ ํฌ๋ช ํด ๋ณด์ ๋๋ค. ์ฌ๋ฌ๋ถ์ด ํด์ผ ํ ์ผ์ ๋ฐฐํฌ.sh ํ์ผ์ ์คํํ๊ณ ๋ฐฐํฌํ๋ ค๋ ์๋น์ค์ ๋์์ ์ง์ ํ๋ ๊ฒ๋ฟ์ ๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ์์คํ ์ ๋ฌ์์, ๋ฒจ๋ก๋ฃจ์ ๋๋ ์นด์ํ์คํ์ ๋ฐฐํฌํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋งค๊ฐ๋ณ์ ์ค ํ๋๋ฅผ ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ์ฌ๋ฐ๋ฅธ ๊ตฌ์ฑ ํ์ผ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
Nomad ์๋น์ค๊ฐ ์ด๋ฏธ ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฒซ์งธ, ๋ชจ๋ ์ฌ์ฉ์ ํธ๋ํฝ์ ์์ ํ ์ผ์ข
์ ์ธ๋ถ ๋ฐธ๋ฐ์๊ฐ ํ์ํฉ๋๋ค. Consul๊ณผ ํจ๊ป ์๋ํ์ฌ ํน์ ๋๋ฉ์ธ ์ด๋ฆ์ ํด๋นํ๋ ํน์ ์๋น์ค๊ฐ ์๋ ์์น, ๋
ธ๋, IP ์ฃผ์๋ฅผ ์์๋
๋๋ค. Consul์ ์๋น์ค๋ Nomad ์์ฒด์์ ์ ๊ณต๋ฉ๋๋ค. ๊ฐ์ ํ์ฌ์ ์ ํ์ด๋ค ๋ณด๋ ์๋ก ์ฐ๊ด์ฑ์ด ๊ฝค ๊น์ต๋๋ค. Nomad๋ ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์๋น์ค๋ฅผ Consul ๋ด๋ถ์ ๋ฑ๋กํ ์ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
ํ๋ฐํธ ์๋ ๋ก๋ ๋ฐธ๋ฐ์๋ ํธ๋ํฝ์ ๋ณด๋ผ ์๋น์ค๋ฅผ ์๊ณ ๋๋ฉด ํด๋น ํธ๋ํฝ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ผ์นํ๋ ์ ์ ํ ์ปจํ ์ด๋ ๋๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ก ์ ๋ฌํฉ๋๋ค. ๋น์ฐํ ์์ ์ ๋ํด์๋ ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์๋น์ค๊ฐ ์ปจํ ์ด๋์ ๋์ผํ ๊ฐ์ ๋จธ์ ์์ ์คํ๋๋๋ผ๋ ์ผ๋ฐ์ ์ผ๋ก ํน์ ์๋น์ค์์ ๋ค๋ฅธ ์๋น์ค๋ก์ ๋ฌด๋ฃ ์ก์ธ์ค๋ฅผ ๋ฐฉ์งํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ธ๋ถํ๋ฅผ ํตํด ์ด๋ฅผ ๋ฌ์ฑํ์ต๋๋ค. ๊ฐ ์๋น์ค๋ ๋ผ์ฐํ ๊ท์น๊ณผ ๋ค๋ฅธ ์์คํ ๋ฐ ์๋น์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์ฉ/๊ฑฐ๋ถํ๋ ๊ท์น์ด ๊ท์ ๋ ์์ฒด ๊ฐ์ ๋คํธ์ํฌ์์ ์์๋์์ต๋๋ค. ์ด ํด๋ฌ์คํฐ ๋ด๋ถ์ ์ธ๋ถ ๋ชจ๋์ ์์นํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋น์ค๊ฐ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ ๊ฒฝ์ฐ ๋คํธ์ํฌ ์์ค ๋ถํ ์ ํตํด ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์ฆ, ์ค์๋ก ํ ์คํธ ํ๊ฒฝ์์ ํ๋ก๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ค์๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ ํ์ผ๋ก ์ธํด ์ธ์ ์์ ์ธก๋ฉด์์ ๋น์ฉ์ด ์ผ๋ง๋ ๋ค์๋์?
ํ์ฌ ์ ์ฒด๋ฅผ Nomad๋ก ์ ํํ๋ ๋ฐ๋ ์ฝ 5~6๊ฐ์์ด ๊ฑธ๋ ธ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋น์ค๋ณ๋ก ์งํํ์ง๋ง ์๋นํ ๋น ๋ฅธ ์๋๋ก ์งํํ์ต๋๋ค. ๊ฐ ํ์ ์๋น์ค๋ฅผ ์ํ ์์ฒด ์ปจํ ์ด๋๋ฅผ ๋ง๋ค์ด์ผ ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ ํ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์์คํ ์ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ์ฑ ์์ง๋ ์ ๊ทผ ๋ฐฉ์์ ์ฑํํ์ต๋๋ค. DevOps๋ ๋ฐฐํฌ์ ํ์ํ ์ผ๋ฐ์ ์ธ ์ธํ๋ผ, ์ฆ ํด๋ฌ์คํฐ ์์ฒด์ ๋ํ ์ง์, CI ์์คํ ์ ๋ํ ์ง์ ๋ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ฐ๋ฆฌ๋ 60๊ฐ ์ด์์ ์์คํ ์ Nomad๋ก ์ด์ ํ๋๋ฐ, ์ด๋ ์ฝ 2๊ฐ์ ์ปจํ ์ด๋์ ํด๋นํฉ๋๋ค.
Devops๋ ๋ฐฐํฌ ๋ฐ ์๋ฒ์ ๊ด๋ จ๋ ๋ชจ๋ ๊ฒ์ ์ผ๋ฐ์ ์ธ ์ธํ๋ผ๋ฅผ ๋ด๋นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ๊ฐ๋ฐ ํ์ ํน์ ์ปจํ ์ด๋์ ์ผ๋ฐ์ ์ผ๋ก ํ์ํ ๊ฒ์ด ๋ฌด์์ธ์ง ์๊ณ ์๋ ํ์ด๊ธฐ ๋๋ฌธ์ ํน์ ์์คํ ์ ๋ํ ์ปจํ ์ด๋ ๊ตฌํ์ ๋ด๋นํฉ๋๋ค.
๋ ธ๋ง๋๋ฅผ ํฌ๊ธฐํ ์ด์
Nomad, docker ๋ฑ์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋ก ์ ํํจ์ผ๋ก์จ ์ด๋ค ์ด์ ์ ์ป์์ต๋๊น?
- ์ฐ๋ฆฌ ๋๋ฑํ ์กฐ๊ฑด์ ์ ๊ณต ๋ชจ๋ ํ๊ฒฝ์ ์ ํฉํฉ๋๋ค. ๊ฐ๋ฐ, QA ํ๊ฒฝ, ์ฌ์ ํ๋ก๋์ , ํ๋ก๋์ ์์๋ ๋์ผํ ์ข ์์ฑ๊ณผ ๋์ผํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ก ํ๋ก๋์ ํ๊ฒฝ์์ ๊ฒฐ๊ณผ๊ฐ ์ด์ ์ ๋ก์ปฌ ๋๋ ํ ์คํธ ํ๊ฒฝ์์ ํ ์คํธํ ๋ด์ฉ๊ณผ ๋ค๋ฅผ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์์ต๋๋ค.
- ์ฐ๋ฆฌ๋ ๋ํ ๊ทธ๊ฒ์ด ์ถฉ๋ถํ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค ์๋ก์ด ์๋น์ค๋ฅผ ์ถ๊ฐํ๊ธฐ ์ฝ๋ค. ๋ฐฐํฌ ๊ด์ ์์ ๋ณผ ๋ ๋ชจ๋ ์ ์์คํ ์ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ์์๋ฉ๋๋ค. ๊ตฌ์ฑ์ ์ ์ฅํ๋ ์ ์ฅ์๋ก ์ด๋ํ์ฌ ์์คํ ์ ๋ํ ๋ค๋ฅธ ๊ตฌ์ฑ์ ์ถ๊ฐํ๋ฉด ๋ชจ๋ ์ค์ ์ด ์๋ฃ๋ฉ๋๋ค. DevOps์ ์ถ๊ฐ ๋ ธ๋ ฅ ์์ด ์์คํ ์ ํ๋ก๋์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ๊ตฌ์ฑ ํ์ผ ํ๋์ ๊ณตํต ์ ์ฅ์์ ๊ฒํ ์ค์ธ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ๊ฐ์ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ ๋ฐฐํฌํ ๋น์์๋ ๊ตฌ์ฑ์ด ๋์ผํ ์ ์ฅ์์ ์๋ Ansible์ ์ฌ์ฉํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์์๊ฒ๋ ์ด ์์ ์ด ์กฐ๊ธ ๋ ์ด๋ ค์ ์ต๋๋ค. ์ฌ๊ธฐ์ ์๋น์ค ๋ฐฐํฌ๋ฅผ ์ํด ์ถ๊ฐํด์ผ ํ๋ ๊ตฌ์ฑ ๋ฐ ์ฝ๋์ ์์ด ํจ์ฌ ์์์ก์ต๋๋ค. ๊ฒ๋ค๊ฐ ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ์์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ๋ ๋งค์ฐ ์ฝ์ต๋๋ค. ์๋ฅผ ๋ค์ด Nomad์ ์ ๋ฒ์ ์ผ๋ก ์ ํํ๋ ๊ฒฝ์ฐ ๋์ผํ ์์น์ ์๋ ๋ชจ๋ ์ด์ ํ์ผ์ ๊ฐ์ ธ์ ๋๋ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ํ ๋ช ๊ฐ์ง ๋จ์ ์ ์ง๋ฉดํ์ต๋๋ค:
์ฐ๋ฆฌ๋ ์ํํ ๋ฐฐํฌ๋ฅผ ๋ฌ์ฑํ ์ ์์์ต๋๋ค. ๋ ธ๋ง๋์ ๊ฒฝ์ฐ. ๋ค์ํ ์กฐ๊ฑด์์ ์ปจํ ์ด๋๋ฅผ ์ถ์ํ๋ฉด ์คํ ์ค์ธ ๊ฒ์ผ๋ก ํ๋ช ๋ ์ ์์ผ๋ฉฐ Nomad๋ ์ด๋ฅผ ํธ๋ํฝ์ ์์ ํ ์ค๋น๊ฐ ๋ ์ปจํ ์ด๋๋ก ์ธ์ํ์ต๋๋ค. ์ด๋ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋๊ธฐ๋ ์ ์ ๋ฐ์ํ์ต๋๋ค. ์ด๋ฌํ ์ด์ ๋ก ์์ง ํธ๋ํฝ์ ๋ฐ์๋ค์ผ ์ค๋น๊ฐ ๋์ง ์์ ์ปจํ ์ด๋๋ก ํธ๋ํฝ์ด ์ด๋ํ๊ธฐ ์์ํ๊ธฐ ๋๋ฌธ์ ์์คํ ์์๋ ์งง์ ์๊ฐ ๋์ 500๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ช๋ช์ ๋ง๋ฌ์ต๋๋ค. ์ต์ง์ ์ํด. ๊ฐ์ฅ ์ฌ๊ฐํ ๋ฒ๊ทธ๋ ์์คํ ๊ณผ ์ปจํ ์ด๋๊ฐ ๋ง์ ๊ฒฝ์ฐ Nomad๊ฐ ๋๊ท๋ชจ ํด๋ฌ์คํฐ๋ฅผ ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค. Nomad ํด๋ฌ์คํฐ์ ํฌํจ๋ ์๋ฒ ์ค ํ๋๋ฅผ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํด ๊บผ๋ด๋ ค๊ณ ํ ๋ ํด๋ฌ์คํฐ๊ฐ ๋ณ๋ก ์ข์ง ์์ ๋ฌด๋์ง ๊ฐ๋ฅ์ฑ์ด ์๋นํ ๋์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ถ ์ปจํ ์ด๋๋ ๋จ์ด์ง์ง๋ง ์ฌ๋ผ๊ฐ์ง ์์ ์ ์์ต๋๋ค. ๋ชจ๋ ํ๋ก๋์ ์์คํ ์ด Nomad๊ฐ ๊ด๋ฆฌํ๋ ํด๋ฌ์คํฐ์ ์๋ ๊ฒฝ์ฐ ๋์ค์ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ค์์ ์ด๋๋ก ๊ฐ์ผํ ์ง ์๊ฐํด๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๊ทธ ์์ ์์ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ๋ฌ์ฑํ๊ณ ์ ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ํจ์ฌ ๋ ์ ์๊ฒ ๋์์ต๋๋ค. ์ฆ, ์ฐ๋ฆฌ๋ ์ ๋ขฐ์ฑ, Nomad๊ฐ ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ์กฐ๊ธ ๋ ๋ง์ ๊ธฐ๋ฅ, ๋ ์ฑ์ํ๊ณ ์์ ์ ์ธ ์์คํ ์ ์ํฉ๋๋ค.
์ด๋ฌํ ์ ์์ ์ฐ๋ฆฌ๋ ํด๋ฌ์คํฐ ์ถ์๋ฅผ ์ํ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํ๋ซํผ์ผ๋ก Kubernetes๋ฅผ ์ ํํ์ต๋๋ค. ํนํ ์ปจํ ์ด๋์ ํฌ๊ธฐ์ ๊ฐ์๊ฐ ์ถฉ๋ถํ ์ปธ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ฐ ๋ชฉ์ ์ผ๋ก ๋ณผ ๋ ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๊ฐ์ฅ ์ ํฉํ ์์คํ ์ธ ๊ฒ ๊ฐ์์ต๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ก ์ ํ
Kubernetes์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ Nomad์์ ์ฐจ์ด์ ์ ๋ํด ์กฐ๊ธ ๋ง์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ฐ์ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
์ ํฌ๋(Pod) ๊ฐ๋
์ด๋ค. ์์ ๋ฌด๋ฆฌ ํญ์ ํจ๊ป ์คํ๋๋ ํ๋ ์ด์์ ์ปจํ
์ด๋ ๊ทธ๋ฃน์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ํญ์ ํ๋์ ๊ฐ์ ๋จธ์ ์์๋ง ์๋ํ๋ ๊ฒ์ฒ๋ผ ์๋ํฉ๋๋ค. ์๋ก ๋ค๋ฅธ ํฌํธ์์ IP 127.0.0.1์ ํตํด ์๋ก ์ก์ธ์คํ ์ ์์ต๋๋ค.
nginx์ php-fpm(ํด๋์ ๊ตฌ์ฑํ)์ผ๋ก ๊ตฌ์ฑ๋ PHP ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ง๋ nginx์ php-fpm ์ปจํ ์ด๋๋ฅผ ํญ์ ํจ๊ป ์ ์งํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. Kubernetes๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฅผ ํ๋์ ๊ณตํต ํฌ๋๋ก ์ค๋ช ํ์ฌ ์ด๋ฅผ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ๊ฐ Nomad์์๋ ์ป์ ์ ์์๋ ๊ฒ์ ๋๋ค.
๋ ๋ฒ์งธ ์ปจ์ ์ ์ ๊ฐ. ์ฌ์ค ํฌ๋ ์์ฒด๋ ์ผ์์ ์ธ ๊ฒ์ด๋ฉฐ ์์๋๊ณ ์ฌ๋ผ์ง๋๋ค. ์ด์ ์ปจํ ์ด๋๋ฅผ ๋ชจ๋ ์ข ๋ฃํ ํ ์ ๋ฒ์ ์ ํ ๋ฒ์ ์์ํ์๊ฒ ์ต๋๊น, ์๋๋ฉด ์ ์ง์ ์ผ๋ก ์ถ์ํ์๊ฒ ์ต๋๊น?์ด๊ฒ์ด ๋ฐฐํฌ ๊ฐ๋ ์ด ๋ด๋นํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ํฌ๋๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ, ์๋, ์ ๋ฐ์ดํธ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ธ ๋ฒ์งธ ์ปจ์ ์ ์๋น์ค. ๊ทํ์ ์๋น์ค๋ ์ค์ ๋ก ์ผ๋ถ ํธ๋ํฝ์ ์์ ํ ๋ค์ ์ด๋ฅผ ๊ทํ์ ์๋น์ค์ ํด๋นํ๋ ํ๋ ์ด์์ Pod๋ก ์ ๋ฌํ๋ ์์คํ ์ ๋๋ค. ์ฆ, ์ด๋ฌํ ์ด๋ฆ์ ๊ฐ์ง ํด๋น ์๋น์ค๋ก ๋ค์ด์ค๋ ๋ชจ๋ ํธ๋ํฝ์ด ์ด๋ฌํ ํน์ ํฌ๋๋ก ์ ์ก๋์ด์ผ ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๋์์ ํธ๋ํฝ ๊ท ํ๋ ์ ๊ณตํฉ๋๋ค. ์ฆ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๊ฐ์ ํฌ๋๋ฅผ ์์ํ ์ ์์ผ๋ฉฐ ๋ชจ๋ ์์ ํธ๋ํฝ์ ์ด ์๋น์ค์ ๊ด๋ จ๋ ํฌ๋ ๊ฐ์ ๊ท ๋ฑํ๊ฒ ๊ท ํ์ ์ด๋ฃน๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค ๋ฒ์งธ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ ๊ตฌ. ์ด๋ Kubernetes ํด๋ฌ์คํฐ์์ ์คํ๋๋ ์๋น์ค์ ๋๋ค. ๋ชจ๋ ์์ฒญ์ ์ธ๊ณ๋ฐ๋ ์ธ๋ถ ๋ก๋ ๋ฐธ๋ฐ์ ์ญํ ์ ํฉ๋๋ค. Ingress๋ Kubernetes API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ์์ฒญ์ ์ด๋๋ก ๋ณด๋ด์ผ ํ๋์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ๊ทธ๋ ์ด ์ผ์ ๋งค์ฐ ์ ์ฐํ๊ฒ ํด๋ธ๋ค. ์ด ํธ์คํธ ๋ฑ์ ๋ํ ๋ชจ๋ ์์ฒญ๊ณผ ๊ทธ๋ฌํ URL์ด ์ด ์๋น์ค๋ก ์ ์ก๋๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํธ์คํธ์ ๋ค๋ฅธ URL๋ก ๋ค์ด์ค๋ ์์ฒญ์ ๋ค๋ฅธ ์๋น์ค๋ก ์ ์ก๋ฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ์ฌ๋์ ๊ด์ ์์ ๋ณผ ๋ ๊ฐ์ฅ ๋ฉ์ง ์ ์ ๋ชจ๋ ๊ฒ์ ์ค์ค๋ก ๊ด๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. Ingress ๊ตฌ์ฑ์ ์ค์ ํ๋ฉด ์ด๋ฌํ API๋ก ๋ค์ด์ค๋ ๋ชจ๋ ํธ๋ํฝ์ ์๋ฅผ ๋ค์ด Go๋ก ์์ฑ๋ ๋ณ๋์ ์ปจํ ์ด๋๋ก ๋ณด๋ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ๋๋ฉ์ธ์ด์ง๋ง ๋ค๋ฅธ URL๋ก ์ค๋ ์ด ํธ๋ํฝ์ ๋ ผ๋ฆฌ๊ฐ ๋ง์ง๋ง ์๋๊ฐ ๊ทธ๋ฆฌ ๋น ๋ฅด์ง ์์ PHP๋ก ์์ฑ๋ ์ปจํ ์ด๋๋ก ์ ์ก๋์ด์ผ ํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฐ๋ ์ ๋ ธ๋ง๋์ ๋น๊ตํด ๋ณด๋ฉด ์ฒ์ ์ธ ๊ฐ์ง ๊ฐ๋ ์ด ๋ชจ๋ ํฉ์ณ์ ธ ์๋น์ค๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Nomad ์์ฒด์๋ ๋ง์ง๋ง ๊ฐ๋ ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ธ๋ถ ๋ฐธ๋ฐ์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ต๋๋ค. haproxy, nginx, nginx+ ๋ฑ์ด ๋ ์ ์์ต๋๋ค. ํ๋ธ์ ๊ฒฝ์ฐ์๋ ์ด ์ถ๊ฐ ๊ฐ๋ ์ ๋ณ๋๋ก ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค. ํ์ง๋ง ๋ด๋ถ์ ์ผ๋ก Ingress๋ฅผ ์ดํด๋ณด๋ฉด nginx, haproxy ๋๋ traefik ์ค ํ๋์ด์ง๋ง ์ผ์ข ์ Kubernetes์ ๋ด์ฅ๋์ด ์์ต๋๋ค.
์ ๊ฐ ์ค๋ช ํ ๋ชจ๋ ๊ฐ๋ ์ ์ค์ ๋ก Kubernetes ํด๋ฌ์คํฐ ๋ด์ ์กด์ฌํ๋ ๋ฆฌ์์ค์ ๋๋ค. ํ๋ธ์์ ์ด๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด Nomad์ ๊ฒฝ์ฐ HCL ํ์ผ๋ณด๋ค ์ฝ๊ธฐ ์ฝ๊ณ ์น์ํ yaml ํ์์ด ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ตฌ์กฐ์ ์ผ๋ก๋ Pod์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋์ผํ ๋ด์ฉ์ ์ค๋ช ํฉ๋๋ค. ๊ทธ๋ค์ ๋งํฉ๋๋ค-์ ๋ ๊ทธ๋ฌํ ์ด๋ฏธ์ง์ ํจ๊ป ๊ทธ๋ฌํ ํฌ๋๋ฅผ ๊ทธ๋ฌํ ์๋์ผ๋ก ๋ฐฐํฌํ๊ณ ์ถ์ต๋๋ค.
๋ํ ๋ฐฐํฌ, ์๋น์ค, Ingress ๋ฑ ๊ฐ๋ณ ๋ฆฌ์์ค๋ฅผ ๊ฐ๊ฐ ์ง์ ์์ฑํ๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๋์ ๋ฐฐํฌ ์ค์ Kubernetes ์ธก๋ฉด์์ ๊ฐ ์์คํ
์ ์ค๋ช
ํ์ฌ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค ์ข
์์ฑ์ ์ฌ๋ฐ๋ฅธ ์์๋ก ์๋์ผ๋ก ๋ค์ ์์ฑํ ํ์๊ฐ ์๋๋ก ํ๊ณ ์ถ์์ต๋๋ค. ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ์์คํ
์ผ๋ก Helm์ด ์ ํ๋์์ต๋๋ค.
Helm์ ๊ธฐ๋ณธ ๊ฐ๋
ํฌ๊ตฌ๋ ํจํค์ง ๊ด๋ฆฌ์ ์ฟ ๋ฒ๋คํฐ์ค์ฉ. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํจํค์ง ๊ด๋ฆฌ์๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด nginx ๋ฐฐํฌ, php-fpm ๋ฐฐํฌ, Ingress ๊ตฌ์ฑ, configmaps(์์คํ ์ env ๋ฐ ๊ธฐํ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํ ์ ์๋ ์ํฐํฐ)๋ก ๊ตฌ์ฑ๋ ์๋น์ค๋ฅผ ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์ ์ฅํ ์ ์์ต๋๋ค. ์ฐจํธ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋์์ ํฌ๋ฆ Kubernetes ์์์ ์คํ. ์ฆ, ์ด๊ฒ์ ์ผ์ข ์ ์์คํ ์ด ์๋๋ผ ํ๋ธ ๋ด๋ถ์์ ์์๋๋ ๋ ๋ค๋ฅธ ์๋น์ค์ ๋๋ค. ์ฝ์ ๋ช ๋ น์ ํตํด API๋ฅผ ํตํด ์ํธ ์์ฉํฉ๋๋ค. Helm์ ํธ๋ฆฌํจ๊ณผ ์๋ฆ๋ค์์ Helm์ด ์์๋๊ฑฐ๋ ํด๋ฌ์คํฐ์์ ์ ๊ฑฐํ๋๋ผ๋ Helm์ ๋ณธ์ง์ ์ผ๋ก ์์คํ ์ ์์ํ๋ ์ญํ ๋ง ํ๊ธฐ ๋๋ฌธ์ ์๋น์ค๊ฐ ์ฌ๋ผ์ง์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด Kubernetes ์์ฒด๊ฐ ์๋น์ค ์ฑ๋ฅ๊ณผ ์ํ๋ฅผ ๋ด๋นํฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ๊ทธ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ํ ํ๋ฆฟํ์ด์ ์ ๊ตฌ์ฑ์ jinja๋ฅผ ๋์ ํ์ฌ ์ค์ค๋ก ์ํํด์ผ ํ๋ ์์ ์ helm์ ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ์์คํ ์ ๋ํด ์์ฑํ ๋ชจ๋ ๊ตฌ์ฑ์ ํ ํ๋ฆฟ ํํ๋ก helm์ ์ ์ฅ๋ฉ๋๋ค. jinja์ ์ฝ๊ฐ ์ ์ฌํ์ง๋ง ์ค์ ๋ก๋ Kubernetes์ ๊ฐ์ด helm์ด ์์ฑ๋๋ Go ์ธ์ด์ ํ ํ๋ฆฟ์ ์ฌ์ฉํฉ๋๋ค.
Helm์ ์ฐ๋ฆฌ๋ฅผ ์ํด ๋ช ๊ฐ์ง ๊ฐ๋ ์ ๋ ์ถ๊ฐํฉ๋๋ค.
๊ฑฐ๋์ฐจํธ - ๊ทํ์ ์๋น์ค์ ๋ํ ์ค๋ช ์ ๋๋ค. ๋ค๋ฅธ ํจํค์ง ๊ด๋ฆฌ์์์๋ ์ด๋ฅผ ํจํค์ง, ๋ฒ๋ค ๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ผ๋ก ๋ถ๋ฆ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฐจํธ๋ผ๊ณ ํฉ๋๋ค.
๋ง์ผํ ์: ํ ํ๋ฆฟ์์ ๊ตฌ์ฑ์ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉํ๋ ค๋ ๋ณ์์ ๋๋ค.
ํด์ . helm์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ๋ ์๋น์ค๊ฐ ๋ฆด๋ฆฌ์ค์ ์ฆ๋ถ ๋ฒ์ ์ ๋ฐ์ ๋๋ง๋ค. Helm์ ์ด์ ๋ฆด๋ฆฌ์ค, ๊ทธ ์ด์ ๋ฆด๋ฆฌ์ค ๋ฑ์ ์๋น์ค ๊ตฌ์ฑ์ ๊ธฐ์ตํฉ๋๋ค. ๋ฐ๋ผ์ ๋กค๋ฐฑ์ด ํ์ํ ๊ฒฝ์ฐ helm callback ๋ช ๋ น์ ์คํํ์ฌ ์ด์ ๋ฆด๋ฆฌ์ค ๋ฒ์ ์ ๊ฐ๋ฆฌํค๋ฉด ๋ฉ๋๋ค. ๋กค๋ฐฑ ์ ์ ์ฅ์์ ํด๋น ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์๋๋ผ๋ helm์ ์ฌ์ ํ โโ๊ทธ ๊ตฌ์ฑ์ ๊ธฐ์ตํ๊ณ ์์คํ ์ ์ด์ ๋ฆด๋ฆฌ์ค์ ์ํ๋ก ๋กค๋ฐฑํฉ๋๋ค.
helm์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Kubernetes์ ์ผ๋ฐ ๊ตฌ์ฑ๋ ๋ณ์, ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ์กฐ๊ฑด๋ฌธ์ ์ ์ฉํ ์ ์๋ ํ ํ๋ฆฟ์ผ๋ก ์ ํ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๊ฒฝ์ ๋ฐ๋ผ ์๋น์ค ๊ตฌ์ฑ์ ์์งํ ์ ์์ต๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ๋ Nomad์์ ํ๋ ๊ฒ๊ณผ๋ ์กฐ๊ธ ๋ค๋ฅด๊ฒ ์ผ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. Nomad์์ ์๋น์ค๋ฅผ ๋ฐฐํฌํ๋ ๋ฐ ํ์ํ ๋ฐฐํฌ ๊ตฌ์ฑ๊ณผ n-๋ณ์๊ฐ ๋ชจ๋ ํ๋์ ์ ์ฅ์์ ์ ์ฅ๋์ด ์๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์๋ ์ด๋ฅผ ๋ ๊ฐ์ ๋ณ๋ ์ ์ฅ์๋ก ๋๋๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. "๋ฐฐํฌ" ์ ์ฅ์๋ ๋ฐฐํฌ์ ํ์ํ n-๋ณ์๋ง ์ ์ฅํ๊ณ "ํฌ๋ฆ" ์ ์ฅ์๋ ๊ตฌ์ฑ ๋๋ ์ฐจํธ๋ฅผ ์ ์ฅํฉ๋๋ค.
์ด๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ๋ฌด์์ ์ฃผ์๋์?
๊ตฌ์ฑ ํ์ผ ์์ฒด์๋ ์ค์ ๋ก ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๋๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ . ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๋น๋ฐ๋ฒํธ์ ๋๋ค. Kubernetes์๋ ๋น๋ฐ๋ก ์ ์ฅ๋์ง๋ง, ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ๋ชจ๋ ์ฌ๋์๊ฒ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๊ณ ์ถ์ง ์์ ํน์ ์ฌํญ์ด ์ฌ์ ํ ์์ต๋๋ค. ๋ฐ๋ผ์ "๋ฐฐํฌ" ์ ์ฅ์์ ๋ํ ์ก์ธ์ค๊ฐ ๋ ์ ํ๋๋ฉฐ "helm" ์ ์ฅ์์๋ ์๋น์ค์ ๋ํ ์ค๋ช ๋ง ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ์ฌ๋๋ค์ด ์์ ํ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ๊ฒฝ๋ ์์ผ๋ฏ๋ก ์ด๋ฌํ ๋ถ๋ฆฌ ๋๋ถ์ ํฌ๋ฆ ์ฐจํธ๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ํ๋ก๋์ ๋ฟ๋ง ์๋๋ผ QA ํ๊ฒฝ์๋ ์๋น์ค๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ๋ก์ปฌ๋ก ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ ๋ฏธ๋์ฟ ๋ฒ - ์ด๋ Kubernetes๋ฅผ ๋ก์ปฌ์์ ์คํํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๊ฐ ์ ์ฅ์ ๋ด๋ถ์๋ ๊ฐ ์๋น์ค์ ๋ํด ๋ณ๋์ ๋๋ ํฐ๋ฆฌ๋ก ๊ตฌ๋ถ์ ๋์์ต๋๋ค. ์ฆ, ๊ฐ ๋๋ ํ ๋ฆฌ ๋ด๋ถ์๋ ํด๋น ์ฐจํธ์ ๊ด๋ จ๋ ํ ํ๋ฆฟ์ด ์์ผ๋ฉฐ ์์คํ ์ ์คํํ๊ธฐ ์ํด ๋ฐฐํฌํด์ผ ํ๋ ๋ฆฌ์์ค๋ฅผ ์ค๋ช ํฉ๋๋ค. "๋ฐฐํฌ" ์ ์ฅ์์๋ ํ๊ฒฝ๋ง ๋จ๊ฒจ๋์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, helm ์์ฒด๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ํ๋ฆฟ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ jinja๋ฅผ ์ฌ์ฉํ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ์ด๊ฒ์ด ์ฃผ์ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค.
helm์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ์์์ ๋จ์ํํ๊ณ ํ์คํํ๋ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ์ธ ๋ฐฐํฌ.sh๋ฅผ ๋จ๊ฒผ์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐฐํฌ๋ฅผ ์ํ๋ ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ ๋ฐฐํฌ ์ธํฐํ์ด์ค๊ฐ Nomad๋ฅผ ํตํด ๋ฐฐํฌํ ๋์ ๋๊ฐ์ ๋ณด์ ๋๋ค. ๋์ผํ ๋ฐฐํฌ.sh, ์๋น์ค ์ด๋ฆ, ๋ฐฐํฌํ๋ ค๋ ์์น. ์ด๋ก ์ธํด Helm์ด ๋ด๋ถ์ ์ผ๋ก ์์๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ ํ๋ฆฟ์์ ๊ตฌ์ฑ์ ์์งํ๊ณ ํ์ํ ๊ฐ ํ์ผ์ ์ฌ๊ธฐ์ ์ฝ์ ํ ๋ค์ ๋ฐฐํฌํ์ฌ Kubernetes์ ์คํํฉ๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
Kubernetes ์๋น์ค๋ Nomad๋ณด๋ค ๋ ๋ณต์กํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
์ฌ๊ธฐ์ ๋๊ฐ๋ ํธ๋ํฝ์ด Ingress๋ก ๋ค์ด์ต๋๋ค. ์ด๋ ๋ชจ๋ ์์ฒญ์ ์ธ๊ณ๋ฐ์ ์์ฒญ ๋ฐ์ดํฐ์ ํด๋นํ๋ ์๋น์ค๋ก ๋ณด๋ด๋ ์ ๋ฉด ์ปจํธ๋กค๋ฌ์ผ ๋ฟ์
๋๋ค. Helm์ ์ ํ๋ฆฌ์ผ์ด์
์ค๋ช
์ ํฌํจ๋ ๊ตฌ์ฑ๊ณผ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ค์ ํ ๊ตฌ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์๋น์ค๋ ํด๋น ํฌ๋, ์ฆ ํน์ ์ปจํ
์ด๋์ ์์ฒญ์ ๋ณด๋ด ์ด ์๋น์ค์ ์ํ ๋ชจ๋ ์ปจํ
์ด๋ ๊ฐ์ ์์ ํธ๋ํฝ์ ๊ท ํ์ ์กฐ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ์ฐ๋ฆฌ๋ ๋คํธ์ํฌ ์์ค์ ๋ณด์์์ ๋ฒ์ด๋์๋ ์ ๋๋ค๋ ์ ์ ์์ด์๋ ์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ธ๋ถํ๋ ํ๊ทธ ์ง์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Kubernetes ํด๋ฌ์คํฐ์์ ์๋ํฉ๋๋ค. ๋ชจ๋ ์๋น์ค์๋ ํด๋ฌ์คํฐ ๋ด๋ถ ๋๋ ์ธ๋ถ์ ํน์ ์ธ๋ถ/๋ด๋ถ ๋ฆฌ์์ค์ ๋ํ ์๋น์ค์ ์ก์ธ์ค ๊ถํ์ด ์ฐ๊ฒฐ๋ ํน์ ํ๊ทธ๊ฐ ์์ต๋๋ค.
์ ํ์ ์งํํ๋ฉด์ ์ฐ๋ฆฌ๋ Kubernetes๊ฐ ์ด์ ์ ์ฌ์ฉํ๋ Nomad์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์๊ณ ์๋ก์ด ๊ธฐ๋ฅ๋ ๋ง์ด ์ถ๊ฐํ๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ ํตํด ํ์ฅํ ์ ์์ผ๋ฉฐ ์ค์ ๋ก๋ ์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค ์ ํ์ ํตํด ํ์ฅํ ์ ์์ต๋๋ค. ์ฆ, Kubernetes์ ํจ๊ป ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๋ฆฌ์์ค๋ฅผ ์ฝ์ ์ ์๋ ๊ณ ์ ํ ๋ฆฌ์์ค์ ์๋น์ค๋ฅผ ๋ง๋ค ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๋ค. ์ด๋ Kubernetes๋ฅผ ๋ค์ ์ค์นํ๊ฑฐ๋ ์์ ํ์ง ์๊ณ ๋ ์์คํ ์ ํ์ฅํ ์ ์๋ ์ถ๊ฐ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ์ฌ์ฉ์ ์๋ก๋ Kubernetes ํด๋ฌ์คํฐ ๋ด์์ ์คํ๋๋ Prometheus๊ฐ ์์ต๋๋ค. ํน์ ์๋น์ค์์ ๋ฉํธ๋ฆญ ์์ง์ ์์ํ๋ ค๋ฉด ์๋น์ค ์ค๋ช ์ ์๋น์ค ๋ชจ๋ํฐ๋ผ๋ ๋ฆฌ์์ค ์ ํ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. Prometheus๋ Kubernetes์์ ์์๋ ๋ ์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค ์ ํ์ ์ฝ์ ์ ์๋ค๋ ์ฌ์ค๋ก ์ธํด ์๋์ผ๋ก ์ ์์คํ ์์ ์งํ ์์ง์ ์์ํฉ๋๋ค. ๊ฝค ํธ๋ฆฌํฉ๋๋ค.
Kubernetes์ ๋ํ ์ฒซ ๋ฒ์งธ ๋ฐฐํฌ๋ 2018๋
3000์์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ๊ฐ ๋์ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ํด ์ด๋ค ๋ฌธ์ ๋ ๊ฒฝํํ์ง ์์์ต๋๋ค. ํฐ ๋ฒ๊ทธ ์์ด ์์ฃผ ์์ ์ ์ผ๋ก ์๋ํฉ๋๋ค. ๊ฒ๋ค๊ฐ ๋ ํ์ฅํ ์๋ ์์ต๋๋ค. ์ค๋๋ ์ฐ๋ฆฌ๋ ์ถฉ๋ถํ ๊ธฐ๋ฅ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ Kubernetes์ ๊ฐ๋ฐ ์๋๋ฅผ ์ ๋ง ์ข์ํฉ๋๋ค. ํ์ฌ Kubernetes์๋ XNUMX๊ฐ๊ฐ ๋๋ ์ปจํ
์ด๋๊ฐ ์์ต๋๋ค. ํด๋ฌ์คํฐ๋ ์ฌ๋ฌ ๋
ธ๋๋ฅผ ์ฐจ์งํฉ๋๋ค. ๋์์ ์๋น์ค๊ฐ ๊ฐ๋ฅํ๊ณ ์์ ์ ์ด๋ฉฐ ์ ์ด๊ฐ ์ฉ์ดํฉ๋๋ค.
์ถ์ฒ : habr.com