๋ฐฑ์๋ ๊ฐ๋ฐ ๋งฅ๋ฝ์์ ์๋ฒ ๊ตฌ์ฑ์ ์๋ฒ์ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐ ํ์ํ ๋ค์ํ ๋งค๊ฐ ๋ณ์, ์ค์ ๋ฐ ๊ตฌ์ฑ ์์๋ฅผ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์ฑ์ ์๋ฒ๊ฐ ๋์ ์์ค์ ๋ณด์๊ณผ ์์ ์ฑ์ ์ ์งํ๋ฉด์ ํธ์คํธ ๋ด์์ ํธ์คํ ๋๋ ์ฌ์ฉ์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ๋ฐ ํ์ํฉ๋๋ค. ์๋ฒ ๊ตฌ์ฑ์ ์์คํ ์ ํน์ ์๊ตฌ ์ฌํญ ๋ฐ ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํํธ์จ์ด, ํ๋์จ์ด, ๋คํธ์ํฌ ๋ฐ ๋ณด์ ์ค์ ์ ํฌํจํ ์ ์์ต๋๋ค.
๋ชจ๋ ๋ฐฑ์๋ ์์คํ ์ ์ค์ํ ๋ถ๋ถ์ธ ์๋ฒ ๊ตฌ์ฑ์ ๊ธฐ์ ์๋ฃจ์ ์ ์ฑ๋ฅ, ์์ ์ฑ ๋ฐ ํ์ฅ์ฑ์ ๊ฒฐ์ ํ๋ ์ธ๋ถ ์ญํ ์ ํฉ๋๋ค. InformationWeek์ ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด ์์คํ ์ฑ๋ฅ ์ต์ ํ๋ ์กฐ์ง์ IT ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์์ด ๊ฐ์ฅ ์ค์ํ ์ฑ๊ณต ์์ธ์ด๋ฉฐ ์๋ต์์ ์ฝ 81%๊ฐ ์๋ฒ ๊ตฌ์ฑ์ด ์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ํฌ๊ฒ ๊ธฐ์ฌํ๋ค๋ ๋ฐ ๋์ํ์ต๋๋ค.
์๋ฒ ๊ตฌ์ฑ์ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ ๋จ๊ณ๋ฅผ ํฌํจํ๋ ๋ค๋จ๊ณ ํ๋ก์ธ์ค์ ๋๋ค.
- ์ด์ ์ฒด์ ๊ตฌ์ฑ: ์๋ฒ์ ์ด์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ๊ด๋ฆฌ์๋ Linux, Windows Server ๋๋ Unix์ ๊ฐ์ ์ ์ ํ ์ด์ ์ฒด์ (OS)๋ฅผ ์ ํํ๊ณ ์ฌ์ฉ์, ๊ถํ, ์ญํ , ์ ๋ฐ์ดํธ, ํจ์น, ๋ฐ ๋ณด์ ์ ์ฑ .
- ํ๋์จ์ด ๊ตฌ์ฑ: ์๋ฒ์ CPU, ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง ๋ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ๊ณผ ๊ฐ์ ์ ์ ํ ๋ฆฌ์์ค๊ฐ ์๋์ง ํ์ธํ๋ ๊ฒ์ ์ต์ ์ ์ฑ๋ฅ์ ์ํด ํ์์ ์ ๋๋ค. ํ๋์จ์ด ๊ตฌ์ฑ์๋ ์ฌ์ฉ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ํ๊ฐํ๊ณ ๋ฌผ๋ฆฌ์ ๋๋ ๊ฐ์ ์๋ฒ์ ๋ํด ํ์์ ๋ฐ๋ผ ์กฐ์ ํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค.
- ์ํํธ์จ์ด ๊ตฌ์ฑ: ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ๊ธฐ์ ๋ฐ ํ๋ซํผ์ ๋ฐ๋ผ ์น ์๋ฒ(์: Apache, Nginx), ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ(์: Tomcat, Node.js)์ ๊ฐ์ ํน์ ์ํํธ์จ์ด ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ๊ณ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค. , ๋ฐ์ดํฐ๋ฒ ์ด์ค(์: PostgreSQL, MySQL) ๋ฐ ์คํฌ๋ฆฝํ ์ธ์ด(์: PHP, Python). ์ ์ ํ ์ํํธ์จ์ด ๊ตฌ์ฑ์ ํธํ์ฑ, ์ต์ ์ ์ฑ๋ฅ ๋ฐ ๋ณด์์ ๋ณด์ฅํฉ๋๋ค.
- ๋คํธ์ํฌ ๊ตฌ์ฑ: IP ์ฃผ์, ๋ผ์ฐํ ํ ์ด๋ธ, DNS ์ค์ , ๋ถํ ๋ถ์ฐ ๋ฐ ๋ฐฉํ๋ฒฝ๊ณผ ๊ฐ์ ๋คํธ์ํฌ ์ค์ ๊ตฌ์ฑ์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์์ ์ ์ด๊ณ ์์ ํ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๋คํธ์ํฌ์ ๋ค๋ฅธ ์๋น์ค ๋ฐ ๋ฆฌ์์ค์์ ํต์ ์ ์ฉ์ดํ๊ฒ ํ๋ ๋ฐ ์ค์ํฉ๋๋ค. .
- ๋ณด์ ๊ตฌ์ฑ: ์ฌ์ด๋ฒ ์ํ์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ ๊ฐ๋ ฅํ ์๋ฒ ๋ณด์ ์ ์ง์ ์ค์์ฑ์ ์๋ฌด๋ฆฌ ๊ฐ์กฐํด๋ ์ง๋์น์ง ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ ์ ํ ์ํธํ ์ค์ , ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ ๊ตฌํ, ์ ์ฌ์ ์นจ์ ๋ชจ๋ํฐ๋ง, ์๋ ค์ง ์ทจ์ฝ์ ์ ์ ๊ธฐ์ ์ ๋ฐ์ดํธ ๋ฐ ํจ์น๊ฐ ํฌํจ๋ฉ๋๋ค.
์๋ฒ ๊ตฌ์ฑ์์ ๋ฐ๋ณต ์์ ์๋ํ, ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ณํํ๋ ์๊ตฌ ์ฌํญ์ ๋ํ ์ ์์ ํจ๊ณผ์ ์ธ ๋ฐฑ์๋ ๊ด๋ฆฌ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ตฌ์ฑ ๊ด๋ฆฌ ์์คํ (์: Ansible, Chef, Puppet), CI/CD(์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ) ํ์ดํ๋ผ์ธ(์: Jenkins, GitLab, Travis CI), ์ปจํ ์ด๋ํ ํ๋ซํผ(์: Docker, Kubernetes)๊ณผ ๊ฐ์ ์ฌ๋ฌ ๋๊ตฌ ๋ฐ ๊ธฐ์ ), ์ด๋ฌํ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์ธ์ ์ค๋ฅ๋ฅผ ์ต์ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํด ์ค๊ณ๋ AppMasterno-code ํ๋ซํผ์ ์๋ฒ ๊ตฌ์ฑ์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ํ์ฉํฉ๋๋ค. ํ๋ซํผ์ด Go(golang) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ์ด๋ฅผ Docker ์ปจํ ์ด๋์ ํจํค์งํ๋ฉด ์๋ฒ ๊ตฌ์ฑ ์ค์ ์ด ์๋์ผ๋ก ์ต์ ํ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ด๋ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๋ณด์ฌ์ฃผ๋ฉฐ ๋๊ธฐ์ ๊ณผ ์๊ธฐ์ ๋ชจ๋์ ๊ณ ๋ถํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค.
AppMaster PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํํ ํตํฉ์ ์ถ๊ฐ๋ก ์ง์ํ์ฌ ๋ค์ํ ์๋ฒ ๊ตฌ์ฑ์ ๋ํ ์ต๋ ํธํ์ฑ๊ณผ ์ฌ์ฉ ํธ์์ฑ์ ๋ณด์ฅํฉ๋๋ค. ๊ฐ๋ ฅํ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ํตํด ๊ธฐ์ ์ ๋ถ์ฑ๊ฐ ๋์ ๋์ง ์๊ณ ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ๊ณ ๊ฐ์๊ฒ ์๊ฐ๊ณผ ๋น์ฉ์ ์ ์ฝํ ์ ์์ต๋๋ค.
์๋ฒ ๊ตฌ์ฑ์ ๊ธฐ์ ์๋ฃจ์ ์ ์ฑ๋ฅ, ํ์ฅ์ฑ ๋ฐ ์์ ์ฑ์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ์ ์์์ ๋๋ค. ๊ตฌ์ฑ ๊ด๋ฆฌ๋ฅผ ์๋ํํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋์ ์์ค์ ์ํํธ์จ์ด ํ์ง์ ์ ์งํ๋ฉด์ ์๊ฐ๊ณผ ์์์ ์ ์ฝํ ์ ์์ต๋๋ค. AppMasterno-code ํ๋ซํผ์ ์ต์ ์๋ฃจ์ ์ด ํจ๊ณผ์ ์ธ ์๋ฒ ๊ตฌ์ฑ ํ๋ก์ธ์ค์ ์ด์ ์ ํ์ฉํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ, ํ์ฅ์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ์ธก๋ฉด์์ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ํ๋ฅญํ ์์ ๋๋ค.