TOPCIT ๋ฒผ๋ฝ์น๊ธฐ | ์์คํ ์ํคํ ์ฒ ํ์ฅ ๊ธฐ์ : ๊ฐ์ํ, ํด๋ผ์ฐ๋ ์ปดํจํ , ๋น ๋ฐ์ดํฐ ์ํคํ ์ฒ
๊ฐ์ํ์ปดํจํ ์ ์งํ
๊ฐ์ํ (Virtualization)
๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์ฑ๋ ์จํ๋ ๋ฏธ์ค๋ถํฐ ์์ํด์ ๊ฐ์ ์๋ฒ, ์ปจํ ์ด๋, ์๋ฒ๋ฆฌ์ค์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฐ์ํ์ปดํจํ ์ ์งํํ๊ณ ์๋ค.
1. ์จํ๋ ๋ฏธ์ค (On-Premises):
์ด๊ฒ์ ๊ธฐ์
์ด ์์ฒด ๋ฐ์ดํฐ ์ผํฐ๋ ๋ฌผ๋ฆฌ์ ์๋ฒ๋ฅผ ๋ณด์ ํ๊ณ ์ด์ํ๋ ์ ํต์ ์ธ ๋ฐฉ์์
๋๋ค. ๋ชจ๋ ํ๋์จ์ด์ ์ํํธ์จ์ด๋ ํ์ฌ ๋ด๋ถ์ ๊ตฌ์ถ๋๊ณ ์ ์ง ๊ด๋ฆฌ๋ฉ๋๋ค. ์ด๋ ์ ์ฒด IT ์ธํ๋ผ๋ฅผ ์ง์ ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก ์ด๊ธฐ ํฌ์ ๋ฐ ์ด์ ๋น์ฉ์ด ๋์ ์ ์์ต๋๋ค.
2. ๊ฐ์ ์๋ฒ (Virtual Machines - VMs):
๊ฐ์ํ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก, ๋ฌผ๋ฆฌ์ ์๋ฒ๋ฅผ ํ๋ ์ด์์ ๊ฐ์ ์๋ฒ๋ก ๋๋์ด ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ๋ฌผ๋ฆฌ์ ํ๋์จ์ด์ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ณ ์ฌ๋ฌ ์ด์ ์ฒด์ ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋จ์ผ ์๋ฒ์์ ์คํํ ์ ์๋๋ก ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ๋์ ๋ฌผ๋ฆฌ์ ์๋ฒ์์ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ๋ฅผ ์คํํ์ฌ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
3. ์ปจํ
์ด๋ (Containerization):
์ปจํ
์ด๋๋ ๊ฐ์ํ์ ๋ค์ ์งํ ๋จ๊ณ๋ก, ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๋ชจ๋ ์ข
์์ฑ์ ํจํค์งํ๊ณ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํํฉ๋๋ค. ์ด๋ฌํ ์ปจํ
์ด๋๋ ๊ณตํต๋ ์ด์ ์ฒด์ ์ปค๋์ ๊ณต์ ํ๋ฏ๋ก ๋ ๊ฐ๋ณ๊ณ ์์ ๋ฐ ์ค์ง๊ฐ ๋น ๋ฆ
๋๋ค. ๋ํ ์ปจํ
์ด๋ ์ค์ผ์คํธ๋ ์ด์
๋๊ตฌ์ธ Kubernetes๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ
์ด๋๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
4. ์๋ฒ๋ฆฌ์ค ์ปดํจํ
(Serverless Computing):
์๋ฒ๋ฆฌ์ค ์ปดํจํ
์ ๊ฐ๋ฐ์๊ฐ ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ ์์ด ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ฅผ ์คํํ๋ ํํ์
๋๋ค. ์ด๊ฒ์ ํด๋ผ์ฐ๋ ํ๋ก๋ฐ์ด๋๊ฐ ๋ฐฑ์๋ ์ธํ๋ผ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ฝ๋์ ์ง์คํ ์ ์์ต๋๋ค. ์๋ฒ๋ฆฌ์ค ์ปดํจํ
์ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ฉฐ ํ์ํ ๊ฒฝ์ฐ์๋ง ์คํ๋ฉ๋๋ค.
๊ฐ์ํ์ ์งํ๋ ์จํ๋ ๋ฏธ์ค ๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ ๋ชจ๋์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์จํ๋ ๋ฏธ์ค์์๋ ํ๋์จ์ด ๋ฆฌ์์ค์ ํจ์จ์ ์ธ ํ์ฉ์ ํตํด ๋ ๋ง์ ์์
์ ์ํํ๊ณ ๋น์ฉ์ ์ ๊ฐํ ์ ์์ผ๋ฉฐ, ํด๋ผ์ฐ๋ ํ๊ฒฝ์์๋ ์ค์ผ์ผ๋ง๊ณผ ๊ด๋ฆฌ์ ์ฉ์ด์ฑ์ ํตํด ์ ์ฐ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ์ํ ํํ๋ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ๊ณผ ์์ ํ์ฉ์ ๋ฐ๋ผ ์ ํํ ์ ์์ผ๋ฉฐ, ๊ธฐ์
์ ๋ค์ํ ๊ฐ์ํ ๋ฐฉ์์ ํผํฉํ์ฌ ์ต์ ์ IT ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
๊ฐ์ํ- VM(Virtual Machine)
- ๋ฌผ๋ฆฌ์ ์ธ ์ปดํฌ๋ํธ(Components, HW์ฅ์น)๋ฅผ ๋ ผ๋ฆฌ์ ์ธ ๊ฐ์ฒด๋ก ์ถ์ํํ๋ ๊ฒ
- ์ปดํจํฐ์์ ์ปดํจํฐ ๋ฆฌ์์ค์ ์ถ์ํ๋ฅผ ์ผ์ปซ๋ ๊ด๋ฒ์ํ ์ฉ์ด
- ๊ฐ์๋จธ์ (Virtual Machine)์ ๊ฐ์ํ๋ฅผ ํตํ์ฌ ๊ตฌํ๋๋ ๋ณต์ ๋ ์ปดํจํ ํ๊ฒฝ
- ํ์ดํผ๋ฐ์ด์ (Hypervisor)๋ ๊ณต์ ์ปดํจํ ์์์ ๊ด๋ฆฌํ๊ณ ๊ฐ์๋จธ์ ๋ค์ ์ปจํธ๋กคํ๋ ์ค๊ฐ ๊ด๋ฆฌ์
๊ฐ์ํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ค์ํ ์ฐจ์ด๋ 'ํ์ดํผ๋ฐ์ด์ '๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ค.
ํ์ดํผ๋ฐ์ด์ ์ ์ ํ
- TYPE 1 (NATIVEํ) : ํ์ดํผ๋ฐ์ด์ ์์๋ง ์ฌ์ฉ - ๋์ ์ฑ๋ฅ
- TYPE 2 (HOSTํ) : host OS๋ฅผ ์ฌ์ฉํ๊ณ ๊ทธ ์์ ํ์ดํผ๋ฐ์ด์ ๊ฐ ์ฌ๋ผ๊ฐ. - ์ฌ์ด ์ค์น, ์ฌ์ด ๊ด๋ฆฌ
TYPE 1 ํ์ดํผ๋ฐ์ด์ ๋ ์๋ฒ ๊ฐ์ํ์ ๋ฐ์ดํฐ ์ผํฐ ํ๊ฒฝ์์ ๋ ์ ํฉํ๋ฉฐ,
TYPE 2 ํ์ดํผ๋ฐ์ด์ ๋ ๊ฐ๋ฐ ๋ฐ ํ
์คํธ, ๋ฐ์คํฌํฑ ๊ฐ์ํ ๋ฑ์ ์์
์ ๋ ์ ํฉํ ์ ์๋ค.
Type 1 (NATIVEํ)์ ์ ๊ฐ์ํ ๋ฐฉ์๊ณผ ๋ฐ๊ฐ์ํ ๋ฐฉ์์ผ๋ก ๋๋๋ค.
- ์ ๊ฐ์ํ : ํ๋์จ์ด ์ ์ฒด๋ฅผ ๊ฐ์ํํจ. - ๊ฒ์คํธOS๋ ํ์ดํผ๋ฐ์ด์ ๋ฅผ ํตํด์ ํ๋์จ์ด์ ํต์ ์ ํ ์๋ฐ์ ์๋ค. → ์ฑ๋ฅ์ ๋ฎ์์ง์ง๋ง ๊ฒ์คํธ OS์ ๋ณํ๋ ํ์๊ฐ ์๋ค.
- ๋ฐ๊ฐ์ํ : ์ผ๋ถ๋ง ๊ฐ์ํํจ - ์์ ๋ ๊ฒ์คํธOS๊ฐ ํ๋์จ์ด์ ์ง์ ์ํต. → ๋์ ์ฑ๋ฅ ! ๊ฒ์คํธOS๊ฐ ์์ ๋์ด์ผํด ๋ณต์กํจ.
๊ฐ์ํ - ์ปจํ ์ด๋(Container)
๋ชจ๋ํ๋๊ณ ๊ฒฉ๋ฆฌ๋ ์ปดํจํ ๊ณต๊ฐ ๋๋ ์ปดํจํ ํ๊ฒฝ, ํ๋ก์ธ์ค๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ๋ชจ๋ํ๋ ํ๋ก๊ทธ๋จ ํจํค์ง๋ก์ ์ํ.
๊ฐ์๋จธ์ ์์ ํ์ํ ๊ฒ์คํธOS ๋ฐฉ์์ด ์๋๋ผ ํ๋ก๊ทธ๋จ์ด ์ํํ๋๋ฐ ํ์ํ ํจํค์ง๋ก๋ง ๊ตฌ์ฑ๋์ด ์ํ๋๋ค.
→ VM๋ฐฉ์๊ณผ ์ปจํ ์ด๋ ๋ฐฉ์์ ๊ฐ์ฅ ํฐ ์ฐจ์ด๋ ๊ฒ์คํธOS์ ์ ๋ฌด์ด๋ค.
์ปจํ ์ด๋๋ ๊ฒฝ๋์ ๊ฐ์ํ ๋ฐฉ์. ์๋ง์ ์ปจํ ์ด๋๋ค๋ก ์ด์๋ ์ ์๋ค.
์ด ์๋ง์ ๊ฑธ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ค์ผ์คํธ๋ ์ด์ (Orchestration) ํ๋ซํผ์ด ํ์ํ๋ฐ, ๊ทธ๊ฒ์ด ์ฟ ๋ฒ๋คํฐ์ค์ด๋ค.
์ฟ ๋ฒ๋คํฐ์ค
์ปจํ ์ด๋ํ๋ ์ํฌ๋ก๋์ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ฐ์ถ ์คํ์์ค ์ค์ผ์คํธ๋ ์ด์ ํ๋ซํผ.
์ฟ ๋ฒ๋คํฐ์ค ์ํคํ
์ฒ์๋ ๋ง์คํฐ ๋
ธ๋์ ์์ปค ๋
ธ๋(์ฌ๋ ์ด๋ธ)๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ๊ฐ ํฌํจ๋์ด ์๋ค.
1. ๋ง์คํฐ (Master): ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์ค์ฌ ์ ์ด ํ๋ ์ธ.
๋ง์คํฐ ๋ ธ๋ ๊ตฌ์ฑ์์
- API ์๋ฒ (API Server): ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ ์ํธ ์์ฉํ ์ ์๋ RESTful API๋ฅผ ์ ๊ณตํจ. ๋ชจ๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์์์ ์ฌ์ฉ์๊ฐ API ์๋ฒ๋ฅผ ํตํด ํต์ ํจ.
- etcd: ์ผ๊ด๋ ํค-๊ฐ ์คํ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ํด๋ฌ์คํฐ ๊ตฌ์ฑ ์ ๋ณด ๋ฐ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ.
- ์ค์ผ์ค๋ฌ (Scheduler): ์๋ก์ด ํ๋(pod)๋ฅผ ์ด๋ค ๋ ธ๋์ ๋ฐฐ์นํ ์ง ๊ฒฐ์ ํจ. ์ค์ผ์ค๋ฌ๋ ๋ฆฌ์์ค ์๊ตฌ ์ฌํญ๊ณผ ์ ์ฑ ์ ๊ณ ๋ คํ์ฌ ์ต์ ์ ๋ ธ๋๋ฅผ ์ ํํจ.
- ์ปจํธ๋กค ๋งค๋์ (Controller Manager): ํด๋ฌ์คํฐ์ ์ํ๋ฅผ ๊ฐ์ํ๊ณ ์ ์ ํ ์กฐ์น๋ฅผ ์ทจํ๋ ค๊ณ ๋ ธ๋ ฅํจ. ์๋ฅผ ๋ค์ด ๋ณต์ ์ปจํธ๋กค๋ฌ๋ ์ง์ ๋ ์์ ํ๋๊ฐ ์คํ๋๋๋ก ์ ์งํจ.
2. ์์ปค (Worker): ์ค์ ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ปจํ
์ด๋๊ฐ ์คํ๋๋ ๋
ธ๋.
์์ปค ๋ ธ๋ ๊ตฌ์ฑ์์
- Kubelet: ๊ฐ๋ณ ์์ปค ๋ ธ๋์์ ์คํ๋๋ ์ปจํ ์ด๋ ๊ด๋ฆฌ์๋ก, ๋ง์คํฐ์ ๋ช ๋ น์ ๋ฐ์ ์ปจํ ์ด๋๋ฅผ ์์ํ๊ณ ์ข ๋ฃํจ.
- Kube Proxy: ๋คํธ์ํฌ ํ๋ก์ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์๋ก, ํ๋ ๊ฐ์ ํต์ ์ ๊ด๋ฆฌํ๊ณ ์๋น์ค ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ์ง์ํจ.
- Container Runtime: ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด (์: Docker, containerd).
์์ปค ๋
ธ๋๋ ํ๋๋ผ๋ ์ต์ ์คํ ๋จ์๋ก ์ปจํ
์ด๋๋ฅผ ์คํํ๋ฉฐ, ๋ง์คํฐ ๋
ธ๋์์ ํ๋ ๋ฐฐ์น ๋ฐ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์ปจํธ๋กค ํ๋ ์ธ ์ปดํฌ๋ํธ๋ค๊ณผ ํ๋ ฅํ๋ค.
๊ฐ์ํ - ์๋ฒ๋ฆฌ์ค(Serverless)
์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋๋ฐ ํ์ํ ์ปดํจํ ๋ฆฌ์์ค์ ์คํ ๋ฆฌ์ง(์ ์ฅ์)๋ฅผ ๋์ ์ผ๋ก ํ ๋นํ๊ณ , ์ฌ์ฉ์๋ ๊ทธ ๋ถ๋ถ๋งํผ๋ง ๋น์ฉ์ ์ง๋ถํ๋ ํด๋ผ์ฐ๋ ์ปดํจํ .
๊ตฌ๋ถ | BaaS (Backend as a service) | FaaS (Function as a Service) |
๊ฐ๋ | ์น/์ฑ๊ธฐ๋ฐ ์๋น์ค์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์ ์ฅ, ํธ์, ์ฌ์ฉ์ ๊ด๋ฆฌ ๋ฐ ์ ์ ์ ์ด ๋ฑ์ ๊ธฐ๋ฅ์ ํ์คํ API๋ก ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์๋น์ค | BaaS์ ๋ฌ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ ํจ์๋ค์ ํด๋ผ์ฐ๋์์ ์ง์ ์คํํ๋ ๋ฐฉ์์ ํด๋ผ์ฐ๋ ์๋น์ค |
๋ชฉ์ | ๋ฐฑ์๋์์ ์ ๊ณต๋์ด์ผ ํ ํ์ํ ๊ธฐ๋ฅ๋ค์ ํด๋ผ์ฐ๋์์ ์ง์ ํธ์ถ | ์๋ฒ์์ ์ํ๋๋ ๊ธฐ๋ฅ๋ค์ ์ง์ ๊ฐ๋ฐ ํ ํด๋ผ์ฐ๋์์ ์ง์ ์คํ |
ํน์ง | ๋ฐฑ์๋ ์ ๊ณต ๊ธฐ๋ฅ ํธ์ถํ์ฌ ๊ฐ์ ๊ณ ์ ์๋น์ค์ ์ง์ค ๊ฐ๋ฅ | Stateless ๋ฐฉ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ๋ |
์๋น์ค | ๊ธฐ๋ก, ๊ด๋ฆฌ, ์ธ์ฆ, ์๋น์ค ๊ตฌ๋ ๋ฑ | ์์คํ ์์์ ๊ธฐ๋ฅ ๋จ์ ์๋น์ค |
ํด๋ผ์ฐ๋ ์ปดํจํ
์๋ก ๋ค๋ฅธ ๋ฌผ๋ฆฌ์ ์ธ ์์น์ ์กด์ฌํ๋ ์ปดํจํฐ๋ค์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ํ ๊ธฐ์ ๋ก ํตํฉํด ์ ๊ณตํ๋ ๊ธฐ์
M ๋ฐฉ์์ laaS, ์ปจํ
์ด๋ ๋ฐฉ์์ CaaS, ํ๋ซํผ ์ ๊ณตํ๋ PaaS, ์๋ฒ๋ฆฌ์ค ์ปดํจํ
์ ์ ๊ณตํ๋ FaaS
์ด ๋ชจ๋ ์๋น์ค๋ค์ด ํด๋ผ์ฐ๋ ์ปดํจํ
์ผ๋ก ์ ๊ณต๋๊ณ ์๋ค.
- IaaS (Infrastructure as a Service - ์ธํ๋ผ์คํธ๋ญ์ฒ ์๋น์ค):
- ์ค๋ช : IaaS๋ ๊ฐ์ํ๋ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ๋ค. ์ด ๋ชจ๋ธ์์ ์ฌ์ฉ์๋ ๊ฐ์ ๋จธ์ , ์คํ ๋ฆฌ์ง, ๋คํธ์ํฌ, ๊ทธ๋ฆฌ๊ณ ์ด์ ์ฒด์ ์ ๊ฐ์ ๊ธฐ๋ณธ ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค. ์ฌ์ฉ์๋ ์ด ์ธํ๋ผ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ฑ ์์ด ์๋ค.
- ์์: AWS EC2, Microsoft Azure VMs, Google Compute Engine
- CaaS (Container as a Service - ์ปจํ
์ด๋ ์๋น์ค):
- ์ค๋ช : CaaS๋ ์ปจํ ์ด๋ ๊ด๋ฆฌ์ ์ค์ผ์คํธ๋ ์ด์ ์ ์ํ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์ฌ์ฉ์๋ ์ปจํ ์ด๋๋ฅผ ํจํค์งํ๊ณ ๋ฐฐํฌํ๋ฉฐ, ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ํ๋ซํผ์ด ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ค. ์ด ๋ชจ๋ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ธ๋ค.
- ์์: Kubernetes, Docker Swarm, Google Kubernetes Engine (GKE)
- PaaS (Platform as a Service - ํ๋ซํผ ์๋น์ค):
- ์ค๋ช : PaaS๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ํ๋ซํผ์ ์ ๊ณตํ๋ค. ๊ฐ๋ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ง์คํ ์ ์๋ค. ์ด ๋ชจ๋ธ์์๋ ์ธํ๋ผ๋ ์ด์ ์ฒด์ ์ ๋ํ ๊ฑฑ์ ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ๋ฐฐํฌํ๊ณ ์คํํ ์ ์๋ค.
- ์์: Heroku, Google App Engine, Microsoft Azure App Service
- FaaS (Function as a Service - ํจ์ ์๋น์ค):
- ์ค๋ช : FaaS๋ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ์ ๋ฐ๋ผ ์คํ๋๋ ํจ์๋ฅผ ํธ์คํ ํ๋ ์๋น์ค๋ค. ๊ฐ๋ฐ์๋ ํจ์๋ฅผ ์์ฑํ๊ณ ์ ๋ก๋ํ๋ฉฐ, ์ด๋ฒคํธ(์: HTTP ์์ฒญ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ)๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ํจ์๊ฐ ์คํ๋๋ค. ์๋ฒ ์ธํ๋ผ ๊ด๋ฆฌ๊ฐ ํ์ ์์ผ๋ฉฐ, ๋น์ฉ์ ํจ์ ์คํ ์๊ฐ๊ณผ ๋ฆฌ์์ค ์ฌ์ฉ๋์ ๋ฐ๋ผ ์ฒญ๊ตฌ๋๋ค.
- ์์: AWS Lambda, Azure Functions, Google Cloud Functions
๊ฐ ์๋น์ค ๋ชจ๋ธ์ ๋ค๋ฅธ ์์ค์ ์ถ์ํ์ ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ฌ์ฉ ์ฌ๋ก์ ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผ ์ ํ๋๋ค. IaaS๋ ๋ ๋ง์ ์ปจํธ๋กค๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ฉฐ, PaaS ๋ฐ FaaS๋ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ํฅ์์ํค๊ณ ์ธํ๋ผ ๊ด๋ฆฌ ๋ถ๋ด์ ์ค์ธ๋ค. CaaS๋ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ๋ฅผ ๊ฐ์ํํ๋ฉฐ, ์๋ฒ๋ฆฌ์ค(FaaS)๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ง์ํ๋ค.
ํด๋ผ์ฐ๋ ์ปดํจํ ์ํคํ ์ฒ : ๋ฉํฐ ํด๋ผ์ฐ๋ / ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋
์ค์ํ ์ฐจ์ด๋, ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋๋ On-premise์ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค!
์จํ๋ ๋ฏธ์ค๋ ๊ธฐ์
๋ด๋ถ์ ๋ฐ์ดํฐ ์ผํฐ์ ์ธํ๋ผ ์์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ ๊ฒ !
์ํฌ๋ก๋ ๋ํ ๊ฐ์ด ์๋น์ค ๋ ์ ์๋ ํน์ง์ด ์๋ค.
- ๋ฉํฐ ํด๋ผ์ฐ๋ (Multi-Cloud):
- ์ค๋ช : ๋ฉํฐ ํด๋ผ์ฐ๋๋ ๊ธฐ์ ์ด ์ฌ๋ฌ ๊ฐ์ ๋ค๋ฅธ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ IT ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด์ํ๋ ๋ชจ๋ธ์ด๋ค. ์ด ๋ชจ๋ธ์ ๋ฒค๋ ๋ฝ์ธ(Vendor Lock-In)์ ํผํ๊ณ ๋ฆฌ์์ค ๊ฐ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ์ฌ๋ฌ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด์ ์๋น์ค ๋ฐ ๋ฆฌ์์ค๋ฅผ ํผํฉํ์ฌ ์ฌ์ฉ์์ ์๊ตฌ์ ๋ฐ๋ผ ์ต์ ์ ๋ฆฌ์์ค๋ฅผ ์ ํํ ์ ์๋ค.
- ์ฅ์ :
- ๋ฒค๋ ์ค๋ฆฝ์ฑ: ๋ค์ํ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒค๋ ์ข ์์ฑ์ ํผํ ์ ์๋ค.
- ๋ฆฌ์์ค ๊ฐ์ฉ์ฑ: ์ฌ๋ฌ ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์์ค ๊ฐ์ฉ์ฑ์ ํฅ์์ํฌ ์ ์๋ค.
- ๋น์ฉ ์ ๊ฐ: ๋ฆฌ์์ค์ ๋น์ฉ์ ๊ฐ์์ํค๊ณ ์ต์ ํํ ์ ์๋ค.
- ๋จ์ :
- ๋ณต์ก์ฑ: ์ฌ๋ฌ ํด๋ผ์ฐ๋๋ฅผ ๊ด๋ฆฌํ๊ณ ํตํฉํ๋ ๋ฐ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ ์ ์๋ค.
- ๊ด๋ฆฌ ์ด๋ ค์: ๋ฉํฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ค๋ฉด ๊ด๋ฆฌ ๋๊ตฌ ๋ฐ ์ ์ฑ ์ด ํ์ํ๋ค.
- ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋ (Hybrid Cloud):
- ์ค๋ช : ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋๋ ์จํ๋ ๋ฏธ์ค(On-Premises) ๋ฐ์ดํฐ ์ผํฐ์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ํตํฉํ์ฌ ์ฌ์ฉํ๋ ๋ชจ๋ธ์ด๋ค. ์ด ๋ชจ๋ธ์ ๊ธฐ์กด ์จํ๋ ๋ฏธ์ค ์ธํ๋ผ์ ํด๋ผ์ฐ๋ ์ธํ๋ผ ์ฌ์ด์ ๋ฐ์ดํฐ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ํ๊ณ ๊ณต์ ํ ์ ์๊ฒ ํ๋ค. ๋ณด์, ๊ท์ ์ค์, ๋ฆฌ์์ค ์ต์ ํ ๋ฑ์ ๊ณ ๋ คํ์ฌ ์จํ๋ ๋ฏธ์ค ๋ฐ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค๋ฅผ ํผํฉํ์ฌ ์ฌ์ฉํ๋ค.
- ์ฅ์ :
- ์ ์ฐ์ฑ: ์จํ๋ ๋ฏธ์ค ๋ฐ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค์ ์ ์ฐํ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๋ณด์ ๋ฐ ๊ท์ ์ค์: ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์จํ๋ ๋ฏธ์ค์ ์ ์งํ๋ฉด์ ํด๋ผ์ฐ๋์์ ํ์ฅ์ฑ์ ์ป์ ์ ์๋ค.
- ๋น์ฉ ์ ๊ฐ: ํ์์ ๋ฐ๋ผ ํด๋ผ์ฐ๋ ๋ฆฌ์์ค๋ฅผ ํ์ฉํ์ฌ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค.
- ๋จ์ :
- ๋ณต์ก์ฑ: ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋ ์ํคํ ์ฒ๋ ๊ตฌ์ฑ ๋ฐ ๊ด๋ฆฌ๊ฐ ๋ณต์กํ ์ ์์ผ๋ฉฐ, ์ ์ ํ ๋ณด์ ๋ฐ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค.
- ์ธํ๋ผ์คํธ๋ญ์ฒ ์ด๋: ๋ฐ์ดํฐ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์จํ๋ ๋ฏธ์ค์ ํด๋ผ์ฐ๋ ์ฌ์ด์์ ์์ง์ด๋ ๊ฒ์ ๊ด๋ฆฌ์ ์ด๋ ค์์ ์ด๋ํ ์ ์๋ค.
์ํคํ ์ฒ ์ฌ๋ก
Cloud ์ํคํ ์ฒ
ํด๋ผ์ฐ๋๋ฅผ ํ์ฉํ ์์คํ
์ํคํ
์ณ ํ์ฉ์ด๋ค.
ํด๋ผ์ฐ๋์ ์ฅ์ ์ ํ์ฉํด์, ๊ฐ๊ฐ ๋ค๋ฅธ ์์น (์ฑ๊ฐํด ์ ๋ฝ ์์์ ๋ฑ) ์ํ๋ ์์น์ ์ํ๋ ๊ธฐ๋ฅ ์ฌ๋ฆด ์ ์๋ ํด๋ผ์ฐ๋ ํ์ฉ
๋ฐ์ดํฐ ์ฑํฌ๋ผ๋ ๊ธฐ๋ฅ์ ํตํด ๊ฐ์ ์๋น์ค๋ฅผ ๊ฐ์ ์ง์ญ์ ๋ง๋ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ์ํคํ
์ณ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
MSA (Micro Service Architecture) ์ํคํ ์ฒ
์์คํ ์ํคํ ์ณ๋ ์ฌ๋ฌ๊ฐ์ง ๋ชจ๋ธ๋ก ์ ๊ณต๋ ์ ์๋ค. ๋ ์ด์ด๋ณ๋ก ๋ถ๋ฅ๋ ์์คํ ์ํคํ ์ณ๋ ๋ฐ์ดํฐ๋ ์ด์ด, ํ๋ซํผ ๋ ์ด์ด, ์๋น์ค Integration ๋ ์ด์ด ์์ ๋ง์ดํฌ๋ก ์๋น์ค ๋ณ๋ก ๋ถ๋ฅ๊ฐ ๋์ด์๊ณ ๋ง์ดํฌ๋ก ์๋น์ค๋ค์ API ์์์ ๋ผ์ฐํ , ๋ก๋๋ฐธ๋ฐ์ฑ, ๋ณด์์ฒ๋ฆฌ๋ฅผ ํ๋ค. ์ฌ์ฉ์๋ UI ๋ ์ด์ด์์ ํ๋ก ํธ UI๋ก ์ ์์ ํ๊ฒ ๋๊ณ , ํ์ํ ๊ธฐ๋ฅ์ ๋ฐฑ์คํผ์ค๋ ๋ฐฑ์๋ UI์์ ์ํ์ ํ๋ ์ํคํ ์ณ ์ฌ๋ก์ด๋ค.
MSA๋ ํ๋์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ฒ ํจํด์ผ๋ก ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ผ๋ฉฐ, ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ํนํ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๊ณ ์๋ค.
๋น ๋ฐ์ดํฐ ์ํคํ ์ฒ
ํ๋ก(Hadoop)
- ๋๋์ ์๋ฃ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ํฐ ์ปดํจํฐ ํด๋ฌ์คํฐ์์ ๋์ํ๋ ๋ถ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ง์ํ๋ ๋ถ์ฐ ์ํํธ์จ์ด ํ๋ซํผ
- ๋ถ์ฐ์ฒ๋ฆฌ ์์คํ ์ธ ๊ตฌ๊ธ ํ์ผ ์์คํ ์ ๋์ฒดํ ์ ์๋ ํ๋ก ๋ถ์ฐ ํ์ผ ์์คํ (HDFS, Haddop Distributed File System)๊ณผ ๋งต๋ฆฌ๋์ค๋ฅผ ๊ตฌํ
๋ถ๋ฅ | ์ญํ |
Hadoop Common | Hadoop ๊ตฌ์ฑ ์์๋ฅผ ์ํ ๊ณตํต ์ ํธ๋ฆฌํฐ |
HDFS (Hadoop Distributed File System) | ๋ฒ์ฉ ํ๋์จ์ด๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ์์ ์คํ๋๊ณ ๋ฐ์ดํฐ ์ก์ธ์ค ํจํด์ ์คํธ๋ฆฌ๋ฐ ๋ฐฉ์์ผ๋ก ์ง์ํ์ฌ ๋งค์ฐ ์ปค๋ค๋ ํ์ผ๋ค์ ์ ์ฅํ ์ ์๋๋ก ์ค๊ณ๋ ํ์ผ ์์คํ |
MapReduce | ๋์ฉ๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ์์ฑํ๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ - Map Phase: ๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ ์ค์ฉ ์ฝ์ด์ ํค์ ๋ฐธ๋ฅ๋ก ๋ฌถ์ด์ค - Reduce Phase: Map Phase์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํฉ์น๊ณ ์ ๋ฆฌํจ |
HDFS์ ์ํคํ ์ฒ
HDFS๋ ๋ค์๋ ธ๋์ ๋ฐ์ดํฐ๋ ธ๋๋ก ๊ตฌ์ฑ์ด ๋์ด์๋ค.
- ๋ค์๋ ธ๋ : ํ์ผ์์คํ ์ ๋ค์์คํ์ด์ค(๋๋ ํ ๋ฆฌ, ํ์ผ๋ช , ํ์ผ๋ธ๋ญ) ๋ฑ์ ๊ด๋ฆฌํ๋ฉฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ฒ๋ฆฌ !
- ๋ฐ์ดํฐ๋ ธ๋ : ๋ธ๋ก๋ค์ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฐ์ดํฐ ๋ ธ๋์ ๋ถ์ฐ ์ ์ฅ
MapReduce์ ๊ฐ๋
ํด๋ฌ์คํฐ ํ๊ฒฝ์์ ํํ ๋ฐ์ดํธ ์ด์์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ผ์ข ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ.
MapReduce๋ JobTracker์ TaskTracker๋ก ๊ตฌ์ฑ๋์ด์๋ค.
๋ง์คํฐ ๋ ธ๋์ ์ก ํธ๋์ปค๊ฐ ํ์คํฌ ํธ๋์ปค์ ์์ ์ ํ ๋นํ๊ฒ ๋๋ฉด, ํ์คํฌํธ๋์ปค๋ Mapํจ์์ Reduceํจ์๋ฅผ ์ํํ๋ค.
๋งตํฉ์๋ฅผ ํตํด ํค์ ๋ฐธ๋ฅ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ , ๋ฆฌ๋์ค ํจ์๋ฅผ ํตํด ํ์ํ ํค์ ๋ง์ถ์ด ๋ฐ์ดํฐ๋ฅผ ์ฐ์ฐํ๋ค.
์๋ฅผ ๋ค์ด, ๊ณผ๊ฑฐ์ ์จ๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌํ๋ค๊ณ ๊ฐ์ ํ์ ๋ ์๋ง์ ๋ฐ์ดํฐ๋ค์ด ์ธก์ ๋์์ํ
๋ฐ
๋งตํจ์๋ฅผ ํตํด ๋ ์ง๋ผ๋ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฝ๊ณ , ๋ฆฌ๋์ค ํจ์๋ฅผ ํตํด ํด๋น ๋ฐ์ดํฐ์ ํ๊ท ์ ๊ตฌํด
๋น
๋ฐ์ดํฐ์์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์๋ค.
Spark ์์คํ
๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ธ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ผ๋ก ํด๋ฌ์คํฐ์์ ๊ณ ์์ผ๋ก ์คํํ ์ ์๋ ์ฐจ์ธ๋ ๋น ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ๋ ์์ํฌ.
๋์คํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์, ๋์คํฌ๋ก ์ธํ ๋ถํ๋ก ์ง์ฐ์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์
Spark์ ๊ฐ์ ์ธ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ํด๋ฌ์คํฐ ๊ณ ์์ฒ๋ฆฌ ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ ์ ์๋ค.
ํ๋ก์ ์ ํ ๋น์ ํ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ์ํํ๊ณ
Data Warehouse์์๋ ์ ํ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํํจ์ผ๋ก์จ
๋น์ฆ๋์ค์ ๋ํ ์์ฌ๊ฒฐ์ ์ ๋ณด๋ค ๋๊ณ ๋ณด๋ค ๋น ๋ฅด๊ฒ ํ ์ ์๋๋ก ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
ํ๋ก์ผ๋ก ๊ตฌ์ฑ๋ ๋น
๋ฐ์ดํฐ์ ๋ฐ์ดํฐ์จ์ดํ์ฐ์ค์ ๊ฒฐํฉ์ผ๋ก ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋
๊ฐ์ํ๊ฐ ๋๊ฑฐ๋, ๋ณด๋ค ์ค์๊ฐ์ ์์ฌ ๊ฒฐ์ ์ ์ง์, ๋ฌธ์ ํด๊ฒฐํ๋ ๋ฐ ํ์ฉ์ด ๋๊ณ ์๋ค.
ref.