2024. 5. 1. 03:28ใComputerScience/DockerKubernetes
Chap1. Overview
- ์์ฒ ์๋ง๋์ ์ปดํจํฐ๋ค์ด ์น์ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค ex) ๊ตฌ๊ธ, MS / Datacenter programming ๊ธฐ์ ์ ๊ฐ๋ฐ ์ฒ ํ๊ณผ ๋ฐฐ๊ฒฝ๋ค – Agile, DevOps, CI/CD – Continuous Integration and Delivery, Microservice and Serverless
- IP Address - ์ปดํจํฐ ๊ธฐ๊ธฐ์ ์ฃผ์ด์ง๋ ์ฃผ์, internet protocol address
- Port number - ํ ์ปดํจํฐ ๋ด์์๋ ํ๋ก๊ทธ๋จ๋ง๋ค ์ฃผ์๊ฐ ๋ถ์ / ํ๋ก๊ทธ๋จ์ด OS์ ๊ตฌ๋ฉ์ ๋ซ๋ ๊ฒ ex) ์น์ 80๋ฒ ํฌํธ ์ฌ์ฉ
- Domain name - ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฌ์ด ์์ด ์ด๋ฆ / ๋ค์ ์๋ (com) ๋๋ฉ์ธ์ด ๋ ๋์ ๊ฐ๋
Ex) https://www.domain-name.com
- https:// - protocol, www – sub-domain, com – top-level domain
- DNS – Domain name system - ์์ด ๋จ์ด๋ฅผ ๊ธฐ๊ณ๊ฐ ์ดํดํ๋ IP ์ฃผ์๋ก ๋ฐ๊ฟ // domain <-> IP address by DNS server
- DHCP – Dynamic Host Configuration Protocol - IP ์ฃผ์๋ ๋ถ์กฑ -> ํต์ ์์๋ง ์์๋ก IP ์ฃผ์๋ฅผ ๋น๋ ค์ฃผ๋ ๊ธฐ๋ฒ์ด DHCP
- HTTP - HTTP ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ request๋ฅผ ๋ณด๋ด๊ณ response๋ฅผ ๋ฐ๋๋ค. ์ด์ฒ๋ผ 0๊ณผ 1์ ์ฃผ๊ณ ๋ฐ๋ ์ํํธ์จ์ด, HTTP
Chap2. Cloud Computing and Infrastructure
- ๊ตฌ๊ธ ์๋ฒ๋ค์ด ๋์ํ๋ ๋ฌผ๋ฆฌ์ ์ธ ์ปดํจํฐ๋ค์ ์์น - ์ด๋๊ฐ ๋ถ๋ช ์ปดํจํฐ, ๋์คํฌ, ๋คํธ์ํฌ ์กด์ฌ but ์ฌ์ฉ์๋ ๋ชฐ๋ผ๋ ๋จ
- ํ์ํ ๋, ํ์ํ ๋งํผ์ CPU ๋์คํฌ ๋คํธ์ํฌ ์ฌ์ฉํ๊ณ , ํ์ ์์ด์ง๋ฉด ๋ฐ๋ฉํ๋ค. Ex) ๊ตฌ๊ธ ์ฝ์ด 500๋ง๊ฐ, ๋ค์ด๋ฒ 40๋ง๊ฐ
- ex) ๋ค์ด๋ฒ ๊ฐ - ๋ค์ด๋ฒ ๋ณธ์ฌ์์ ๊ฐ๋ฐ๋ SW๊ฐ ์ถ์ฒ์์ ๋์๊ฐ๋ค.
* Cloud Computing? ํ์ํ ๋ ํ์ํ ๋งํผ, ๊ฑฐ์ ๋ฌดํํ ์์(CPU, ๋์คํฌ, ๋คํธ์ํฌ)์ ๋ฐ๋ก ์์ฒญ ๊ฐ๋ฅ, ์ฌ์ฉ์๋ ๊ตฌ์ฒด์ ์ธ, ๋ฌผ๋ฆฌ์ ์ธ ์ธํ๋ผ ๋ชฐ๋ผ๋ OK - ๋ ๋ด๊ณ ๋น๋ ค์ ์ฌ์ฉ / ํ๋์จ์ด ์ธํ๋ผ์ ์ํํธ์จ์ด, ์ดํ๋ฆฌ์ผ์ด์ ๊น์ง ๋ชจ๋ ์ ๊ณต ๊ฐ๋ฅ
* ๋ด๊ฐ ์ง์ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ ๋๋น ๊ฐ๋ ์ฅ์
1. ์ฌ์ฉ์์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๋, ๊ฑฐ์ ๋ฌดํ์ ๊ฐ๊น์ด ์์
2. Up-front commitment ์ ๊ฑฐ – ์ปดํจํฐ ๋๋น ๋น๋ ค์, ๋ค ์ฌ์ฉํ์ง ์๋๋ผ๋ ๋์ ๋ด์ผ ํ๋ค. ์ด๋ฌํ ํฌ์์ ์ ๊ฑฐํ ์ ์๋ค.
3. ํ์ํ ๋ ๋๋ฆฌ๊ณ ์ค์ด๋ฉด, ๋ด๊ฐ ์ง์ ์ปดํจํฐ๋ฅผ ์ฌ๋ ๊ฒ๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ //
+ ํด๋ผ์ฐ๋ ์ปดํจํ ์ ๋์ ํ๋ค๊ณ ์ ๋๋ก ์ ๋ ดํ ๊ฒ X / ์๊ฒ ์ชผ๊ฐ๊ณ , ๋ชจ๋ํฐ๋งํ๊ณ , ๊ฐ๋ฐ์๊ฐ ์ด์ ๋ง๊ฒ ์ํํธ์จ์ด๋ฅผ ์ ์ง๋๊ฒ ์ค์ / ๋๋ฆฌ๊ณ ์ค์ด๋ ๊ฒ ์ค์ / ๊ทธ๋ ๊ฒ ํ์ ๊ฒฝ์ฐ ์ธ๋ค
* Cloud computing ๋์ ํ๊ธฐ ์ข์ Use Cases
1. ์๊ฐ์ ๋ฐ๋ผ ์์๊ฐ ๋ณํ์ฌ ์์ธก์ด ์ด๋ ค์ด ๊ฒฝ์ฐ 2. ์ปดํจํฐ ํ ๋๊ฐ 1000 ์๊ฐ ๋๋ฆด ๊ฑธ, 1000 ๋์์ 1์๊ฐ ๋๋๋ก ๋ฐฐ์น ์ฒ๋ฆฌ ex) ๋จธ์ ๋ฌ๋, ๊ณผํ ์๋ฎฌ๋ ์ด์ + ์๊ฐ์ ๋ ๋๋ง (์ ๋๋ฉ์ด์ )
* ํด๋ผ์ฐ๋ ์ปดํจํ ์ 5๊ฐ์ง ํน์ง
- On Demand - ํ์ํ ๋, ํ์ํ ๋งํผ ์ฌ์ฉํ๋ฉฐ, ์ด ์์ ์ ๋ํด์ ์ฌ๋์ ๊ฐ์ ์ ์ต์ํํ์ฌ ์๋ํ ๋ interface ์ฌ์ฉ
- ๋คํธ์ํฌ๋ก ์ฅ์น๋ค์ด ์ฐ๊ฒฐ๋์ด ์๋ค / ์ด๋๊ฐ์๋ ๋ฌผ๋ฆฌ์ ์ธ ๋ฆฌ์์ค๋ค์ด ์์ฌ ์๋ค -> ํ์ํ ๋ ๊ฐ์์ ๋ฆฌ์์ค๋ค์ด ํ ๋น๋จ
- ์๋น์ค๊ฐ ์ค๋จ๋์ง ์๋๋ก, ๋น ๋ฅด๊ฒ ๋ฆฌ์์ค ์ ๊ณต ๊ฐ๋ฅ (rapid elasticity)
+ 100๊ฐ์ ๊ธฐ๋ฅ์ ํ๋์ ์คํ ํ์ผ์ ๋ค ๋๋ ค ๋ฐ์ผ๋ฉด X, ํ๋๋ฅผ 100๊ฐ์ ์คํ ํ์ผ๋ก ์ชผ๊ฐ์ด ๋๋ฆฌ๋ ๊ฑฐ์ผ
- 100๊ฐ์ ๊ธฐ๋ฅ ์ค, ํ๋์ ๊ธฐ๋ฅ๋ง ๋ ๋ฐฐ๋ก ํค์ธ ํ์๊ฐ ์๊ฒผ์ด -> ๋ชจ๋ํฐ๋ง์ ํ๋ค๊ฐ, ํ์ํ ์ ๋ค๋ง ๋ ํค์ฐ๋ ๊ฒ
*** ํด๋ผ์ฐ๋ ์ปดํจํ 3๊ฐ์ง ๋ชจ๋ธ – Service models
(1) SaaS – Software as a Service - ๊ฐ๋ฐ์๊ฐ ์๋๋ผ, ์ผ๋ฐ ์ ์ ๊ฐ ํ์ํ ๋ ํ์ํ ๋งํผ ์ฐ๋ ๊ฒฝ์ฐ ex) ์ ํ๋ธ, Gmail, Dropbox
- ์ด๋๊ฐ์ ์๋ ์๋ฒ์ ์ ์ํด์ ์๋น์ค ํ์ฉ / ์๋ ์ ์ ๊ฐ ํ์ํ ๋ ์ฐ๋ ๊ฒฝ์ฐ (๋์ ๋ด๊ฑฐ๋ or ๊ด๊ณ ๋ฅผ ๋ณด๊ณ )
(2) PaaS – Platform as a Service - CPU DISK ๋ฉ๋ชจ๋ฆฌ ์์ ๊ธฐ์ ๋ณ ์ํํธ์จ์ด ๋๊ตฌ or ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ๊ฐ๋ฐ ๋๊ตฌ์ ํ๊ฒฝ๋ ํ์ฉ
Ex) Google App Engine, Google Cloud Platform
(3) IaaS – Infrastructure as a Service – Amazon EC2(elastic compute cloud), Amazon S3, Window Azure - CPU DISK ๋ฉ๋ชจ๋ฆฌ - CPU or Storage ๋น๋ ค์ฃผ๋ ๊ฒ, ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋น๋ฆฌ๋ ๊ฒ์ ๊ฐ์์ ๊ธฐ๊ณ – ๊ทธ ์๋์ ์ง์ง machine์๋ ๊ด์ฌ X
* Cloud computing – Deployment models 4๊ฐ์ง
1. Private cloud - ๊ฐ์ ์์ ์ฃผ ์์์, ์กฐ์ง ๋ด๋ถ ๊ตฌ์ฑ์๋ค์๊ฒ ์ ๊ณต / ์ฌ๋ด์์ ๊ด๋ฆฌํ๋ cloud, ๋๊ธฐ์ ํ์
2. Community cloud - ๊ฐ์ ๋ชฉ์ ์ผ๋ก ๋ชจ์ฌ์ ํจ๊ป ์ธํ๋ผ๋ฅผ ๊ณต์ . ex) ์ํ ๋ฌผ๋ฆฌ ์ฐ๊ตฌ์๋ค (์์๊ณผํ, ๋น์๋ฆฌ๋จ์ฒด)
3. Public cloud – ์ 3์ ์๋ง์กด, ๊ตฌ๊ธ๊ณผ ๊ฐ์ด, ์ฌ์ฉ์๊ฐ ๋จ์ ํ์ฌ์ ์์์ ๋น๋ ค ์ฌ์ฉํ๊ณ , ๋๊ฐ๋ฅผ ์ง๋ถ
4. Hybrid cloud – private์์ ํน์ ์ํฉ์ ๋ถ๋ถ์ ์ผ๋ก public cloud ๋์ ํ๋ ๊ฒ, ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ๋์ด๊ฐ๋ค๋ฉด? ๋ณด์๋ฌธ์ O
+ data lock-in - ์ดํ ์ ์ฒด๋ฅผ ๋ณํํ๊ธฐ ์ด๋ ต๋ค
Chap3. Infrastructure & Virtualization
- On-premise - ์์ฒด์ ์ผ๋ก ๋ฐ์ดํฐ ์ผํฐ ์๋ฒ๋ฅผ ์ด์ํ๋ ๊ฒ, private cloud computing ์๋ฏธ
- ex) ์ผ์ฑ ๋ด๋ถ์ cloud - ์๋ฉด ์๋์ ๋ถ๋ด์ ์ํด์ ๋์ ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ (ํ๋์จ์ด, ๊ฐ๋ฐ ์ธ๋ ฅ ํ์ ๋ฑ)
- public cloud ๋์ ์ ๋์ ์ง๋ถํด์ผ ํ์ง๋ง, ๋ฐ๋จ์ ๋ชฐ๋ผ๋ ๋๋ค๋ ์ด์ ์ด ์๋ค.
* On-premise vs Cloud Server -> *** Pet model vs Cattle model
1. Pet model - ๋ณธ์ธ์ด ์ง์ ๊ตฌ์ถํ ์๋ฒ์ ๋ ํนํ ์ด๋ฆ ๋ถ์ฌ -> ์๋ฒ๊ฐ ์ ๋ํฌ ํ๊ธธ ๋ฐ๋ -> ๊ฐ๋ฐ ์ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ
2. Cattle model - ์๋ฒ ๊ฐ ์ฐจ์ด์ X (์ ๋ํฌ ์ด๋ฆ X) ๊ธฐ๋ฅ๊ณผ ์ซ์๋ฅผ ์ฃผ๋ ๋ฐฉ์์ผ๋ก, ๋ชจ๋ ์๋ฒ๋ ๋์ผํ ์ทจ๊ธ – ํ์ ์ replace
+ ๋ ๋ฐ๋ฐ๋ฅ๊น์ง ๋ด๋ ค๊ฐ๊ณ ์ถ๋ค๋ฉด SaaS๋ ๋ ๋ด๋ ค๊ฐ ์ X, ๋ฏธ๋ค์จ์ด OS๊น์ง ๋ชจ๋ control ํ ์ ์๋ค๋ ์ฅ์ ex) ๊ตฌ๊ธ, ์๋ง์กด
- Infrastructure – Hardware & Network, OS, Middleware
- Server – Central Processing Unit (CPU), Memory – ์ฃผ๊ธฐ์ต์ฅ์น ๋ฉ๋ชจ๋ฆฌ, Storage – ๋ณด์กฐ๊ธฐ์ต์ฅ์น ๋์คํฌ
+ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ HTTP๋ก ํต์ ํ๋๊น, ์น์ด๋ผ๋ ์ด๋ฆ์ด ์ฃผ๋ก ๋ถ๋ ๊ฒ / ๋ฌด์กฐ๊ฑด ์๋ฒ๊ฐ ์น์ ๊ฐ๋ค ์ค๋ ๊ฑด X
* Web Server - HTTP ๊ธฐ๋ฐ์ ํต์ ์ด ๋ชฉ์ / request ๋ฐ์ + ๋ก์ง ์๋ฒ + DB์๋ฒ (Store, process & deliver)
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ HTML ํ์ผ์ ์ฃผ๊ณ ๋ฐ๋๋ค.
* Database Server - ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ ์ฉ ์ํํธ์จ์ด DBMS / SQL - structured query language - ์์ ์ฐจํธ๋ก ๋ง๋ค ์ ์๋ ๋ฐ์ดํฐ๋ค ex) ๊ฒฝํฌ๋ ํ์ ๋ถ, ํ๊ณ -> SQL server
+ ์ต๊ทผ์ ๋ฐ์ดํฐ๋ ๊ตฌ์กฐํ๋์ง X, ์ด๋ฏธ์ง, ๋น๋์ค, ๋ธ๋ก๊ทธ ๊ฒ์๊ธ ๋ฑ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ NoSQL server
* OS – Linux - ๊ฐ๋ฐ, ์ด์ ๋ชฉ์ ์ ์๋ฒ ๋ชจ๋ ๋ฆฌ๋ ์ค ์ฌ์ฉ, ์ค์ต์์ CLI ๋ช ๋ น์ด ๋ง์ด ์
- ์ด์์ฒด์ ์ ํต์ฌ์ด ์ปค๋ - ์๋ฒ ๊ด๋ จ ์ํํธ์จ์ด๋ค์ด ๋ฆฌ๋ ์ค ์ปค๋ ์์์ ๋์๊ฐ๋ค.
* Middleware – ์๋ ์ ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ OS ์ฌ์ด์ ๋ฏธ๋ค์จ์ด -> ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ ๋ฑ OS ๋ณด์ํ๋ ๊ฒ์ด ๋ฏธ๋ค์จ์ด
* Deploying at Scale - ํ์ํ ๋ ํ์ํ ๋งํผ ๊ฐ์ง CPU, DISK, ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ ๊ฒ / ๊ทธ ์์ ์ด ๋จ์๋ก ํ์ํ ๊ฒ์ ์ฌ๋ฆผ
- ์ด๋๊ฐ์๋ ๋ถ๋ช physical ์กด์ฌ -> ์ง์ ์ธํ๋ผ ์ง๋ ์ํฉ์์ ์น๋ค์ผ ํ๋ ๋๊ฐ๊ฐ ๊ณง ํด๋ผ์ฐ๋ ์ปดํจํ ์ ์ฅ์
- ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ (๋ถํ ์ฃผ๋ฌธ, ๊ฑด๋ฌผ ๋ฑ ๋ถ๋์ฐ ๊ณ์ฝ, ์ค์น ๋ฑ๋ฑ) ๋ฆฌ๋ ์ค๋ฅผ ์ดํดํ๋ ์ฌ๋์ด ํ์ํจ, ๊ธฐ์ ๋ณ๋ก ์ ๋ฌธ๊ฐ ํ์
* IaC – Infrastructure as Code – ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ํ ๊ธ์๋ก ๋งํ์ธ์! -> IaC
- ํ๋ก๊ทธ๋๋ฐ์ ํ์ง ์๋๋ฐ, ํ๋ก๊ทธ๋๋ฐ ํ๋ฏ์ด ํ์ผ ์์ ๋ฌธ์๋ก ์์ฑ / ๊ฐ๋ฐ์๊ฐ ๋ณธ์ธ์ด ํ์ํ ํ๊ฒฝ์ ์ฝ๋๋ก ๊ธฐ์ ํ๋ฉด, ๋ฐ์ดํฐ์ผํฐ๊ฐ ์ฃผ์ด์ง ํ๊ฒฝ์ ์๋ํ๋ ํํ๋ก ์ ๊ณต / ex) ๋๋ ์ด๋ฐ CPU ๋ช ๊ฐ, OS, DB, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋คํธ์ํฌ ์คํด, ์ฐ๊ฒฐ ๋ฑ ์์ฑ / ํ๋ก๊ทธ๋๋ฐ ํ๋ฏ์ด ํ์ดํํ์ฌ, ๋ช ์ธ์๋ฅผ ์ฐ๋ ๊ฒ
Ex) ๋์ปค์๊ฒ ์คํ ์์ฒญํ๋ฉด, ์์ฑ๋ ๋ฐฉ์์ผ๋ก ๊ตฌ์ฑํด์ / ๋ค๊ฐ ํ์ธํด๋ด or ์ฟ ๋ฒ๋คํฐ์ค - ๋ด๊ฐ ์์์ ํด -> 10๊ฐ ์ค ํ๋ ์ฃฝ์ผ๋ฉด,์๊ฐ ์์์ ํ๋ ๋ ์ฌ๋ฆผ – ์ธ๊ฐ์ ๊ฐ์ ์ ์ค์ด๋ ๊ฒ (์๋ํ)
- ์ธํ๋ผ๋ฅผ virtualํ๊ฒ ํ์ํ ๋ ํ์ํ ๋งํผ ๋์ฐ๋ ๊ฒ, Physical์ ๋ชฐ๋ผ๋ ๋๋๋ก / ์ด๋ ํ ํ๊ฒฝ์ด๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๋์ค๊ฒ ํจ
* Infrastructure as Code is an approach to managing IT infrastructure for the age of cloud, microservices and continuous delivery.
- ํด๋ผ์ฐ๋ ์์ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋๋ฆฐ๋ค. ํ CPU์์๋ ๊ต์ฅํ ์์ ๊ฒ์ ๋๋ฆฌ๋ ๊ฒ / ์ธ๊ฐ์ด ๊ฐ์ ํ์ง ์๋ CI/CD ์๋ํ
- git-hub์์ ๊ฐ์ ธ์ / ์ธํ๋ผ๋ก ๋๋ ค / ํ ์คํธ ์ฝ๋ ๋๋ ค / ๊ฒฐ๊ณผ ํ์ธ / ๋ฐฐํฌ -> ๊ฐ๋ฐํ ์๋ฒ์์ ์ด์ํ ์๋ฒ๋ก copyํด / ๊ฒ์ฆํ์ผ๋ก ์ฎ๊ฒจ์ ์ฝ๋ ๋๋ ค / continuous delivery / integration Ex) ์ ํจ์ค
* Infrastructure as Code์ ์ฅ์
- ์ ์ํ๊ณ ๊ฐํธํ๊ฒ ํ์ํ ๋ ํ์ํ ๋งํผ ์์ฒญํ๊ณ , ๊ฐ์ ธ์ฌ ์ ์๋ค / ํ๊ฒฝ๊ณผ ํ๋์จ์ด์ ๋ ๋ฆฝ์ ์ผ๋ก, ์ผ๊ด์ฑ ์ ์ง ๊ฐ๋ฅ
- ์ํ์ฑ ๊ฐ์ / SW ๊ฐ๋ฐ ํจ์จ ์ฆ๊ฐ / ๋น์ฉ ์ ๊ฐ (๋ง์ดํฌ๋ก ์๋น์คํ ํ์ง ์์ ์ํฉ์์ ์ฌ๋ฆฌ๋ฉด ํด๋น X)
*** Mutable Infrastructure vs Immutable Infrastructure
(1) Mutable Infrastructure – ํ๋๋ง ๋ฐ๊พธ๋ฉด ๋์ง, ๋ญํ๋ฌ ๋ค ๋ฐ๊ฟ
- ํ๋์ application ์์ ์ฌ๋ฌ service๊ฐ ์กด์ฌ – ๊ฐ ์๋น์ค ๋ณ ๋ฒ์ ์ ๋ค์ํ๊ฒ ์ ์ง -> ํธ๋ํน, ์ ์ง ๋ณด์๊ฐ ๋งค์ฐ ์ด๋ ต๋ค.
(2) Immutable Infrastructure
- ํ ์์ ์์ ์คํ๋๋ ๊ฒ์ ๋ฒ์ ์ ๋ฑ ํ๋ - ๊ณผ๋๊ธฐ ์ํ๋ ์์ ์ ์์ง๋ง, ํฐ ๊ทธ๋ฆผ์ผ๋ก๋ ๋ฒ์ ์ ํ๋๋ง ์ ์งํ์!
- immutable ํด์ผ, ํ์ํ ๋ ๋์ด๊ณ ์ค์ด๋ ๊ฒ์ด ๊ฐ๋ฅํจ * ๋งค์ฐ ์ค์ํ ๊ท์น
* ๊ฐ์ฅ ์ค์ํ ์ฅ์ ์ ๊ด๋ฆฌ ์ธก๋ฉด – ์ธ์คํด์ค ๋ณ ๋ณํ๋ฅผ ํธ๋ํน ํ ํ์ ์๋ค / ํ ๋ฒ์ ํ๋์ ์ด๋ฏธ์ง(๋ฒ์ )๋ง ์ ์งํ๋๊น
Like cattle model – physical ์๋ฒ์ ๋ฌด๊ดํ๊ฒ ํ์คํ๋์ด ๋์ผํ, ํ์ผ์ ์ธ ์ฒด๊ณ -> ์ด๊ฒ์ด docker์ concept
+ ๋์ปค ๋งฅ ์ฌ์ด์ ์์ฃผ ์์ ๋ฆฌ๋ ์ค๊ฐ ์ฌ๋ผ๊ฐ / ์ฌ์ค์ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ์์ ์ฌ๋ผ๊ฐ๊ฒ ๋ง๋ค์ด์ก์ผ๋ฉฐ, ๋งฅOS ์์ ์์ ๋ฆฌ๋ ์ค ๊น๊ณ ๋์ปค ์ฌ๋ผ๊ฐ๊ฒ ํ๋ ๊ฒ / ์ฆ ๋์ปค๊ฐ ์กฐ๊ทธ๋งํ ๋ฆฌ๋ ์ค๋ฅผ ์ค์นํ๋ค.
Chap4. Virtualization & Container Technology
- ๊ฐ์ํ - ๋ฌผ๋ฆฌ์ ์ธ ํ๋์จ์ด ์์์ ๋์๊ฐ๋ ๊ฐ์์ CPU DISK ๋คํธ์ํฌ (์ฃผ๋ก CPU ๊ฐ์ํ)
- ๊ฐ์ํ๋ฅผ ํตํด ํ๋์ ๋ฌผ๋ฆฌ์ ์ธ ํ๋์จ์ด ์์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ์ปดํจํฐ๋ค์ด ๋์๊ฐ ์ ์๋ค. (์ฌ๋ฌ OS ๋์ฐ๊ธฐ ๊ฐ๋ฅ)
- ํ๋์จ์ด์ host OS ์์ hypervisor -> ์ด ์์ VMWare, parallels ๋ฑ๋ฑ ์ฌ๋ฌ virtual machines ๋์ธ ์ ์๋ค.
- ๊ฐ VM๋ค ์์ app์ด ๋์๊ฐ๊ธฐ ์ํ (์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ), Guest OS๊ฐ host OS์ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ํ๋ค.
* hypervisor ์ฅ์ – 1. ํ ๋์ ์ปดํจํฐ ์์ ์ฌ๋ฌ ๋์ ๋ ผ๋ฆฌ์ ์ธ ์ปดํจํฐ๋ฅผ ๋์, ๋จ๋ ๋ฆฌ์์ค๋ฅผ ๋น๋ ค์ค ์ ์๋ค. 2. physicalํ ๊ธฐ๊ธฐ๊ฐ ์๋๋ผ, ํ์ํ ๋ ํ์ํ ๋งํผ, ๋น์ฅ ๋น๋ ค์ ์ฌ์ฉ ๊ฐ๋ฅ
* hypervisor, Virtual machine ๋จ์ – machine์ virtualํ ํ๋ ๊ฒ -> OS Full copy -> ์ค๋ฒํค๋, ๋๋ฆฌ๊ณ ๋ฌด๊ฑฐ์
- CPU ์ฝ์ด๊ฐ N๊ฐ๋ผ๋ฉด, ์๋ช ์ ์ผ๋ก host OS๊ฐ ๋์๊ฐ๋ ์ฝ์ด ํ๋ ๋ฐฐ์ ํด์ผ ํจ -> ์ต๋ N-1๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ
-> ๋ด๊ฐ ๋๋ฆฌ๊ณ ์ถ์๊ฑด ํ๋ก๊ทธ๋จ์ธ๋ฐ, ๊ตณ์ด ๋จธ์ ๊น์ง ๋์์ผ ํ๋๊ฐ?
-> ํ๋ก๊ทธ๋จ์ ์คํ์ focus -> host OS์ ๋ฅ๋ ฅ์ ์ฌ์ฌ์ฉํ๋ฉด guest OS๊ฐ ์์ด๋ ๋๊ฑฐ๋, ์์๋ ๋๋ค
*** Linux over linux problem - virtualization tax
- ๋น๋ ค ์ฐ๋ ๊ฒฝ์ฐ ํฐ ๋ฌธ์ X / but private cloud ์ฐ๋ฆฌ ํ์ฌ์์ ๋ฐ์ดํฐ์ผํฐ ๊ตฌ์ถ ์ ๋ฌธ์ ๋ฐ์ / ๋๋ถ๋ถ ํ์ฌ๋ ๊ณต์ธ OS ํต์ผ
- Apple์ Public cloud X / ์์ดํฐ, ๋งฅ์ ์ํ ์ ๊ณตํ ์ ํ ์๋น์ค, ์ธํ๋ผ๋ฅผ ์ฐ๋ฆฌ ํ์ฌ ๋ด๋ถ ๊ณ ๊ฐ์ด ์ฌ์ฉ / private cloud team
- ๋ฆฌ๋ ์ค ์ค๋ฒ ๋ฆฌ๋ ์ค ๋ฌธ์ by apple -> NASA openstack์ VM์ ๋ง๋๋ ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ํจ, ๊ทธ ๋ถํ๊ฐ 30%์ ์ด๋ฅธ๋ค.
-> but ์ฐ๋ฆฌ๋ ํ์ํ ๋ ํ์ํ ๋งํผ ์ปดํจํ ์์์ด ํ์ํ ๊ฒ (virtual machine์ด ์๋๋ผ ์ปจํ ์ด๋ ๊ธฐ๋ฒ์ผ๋ก ์ ํ)
- ๋์ปค ์ด์ ์ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ (์ ํต์ ์ธ ๊ธฐ์ ) / ์๋ฒ - ์๋ก์ด ์ ์ ์๊ฒ ๊ณ์ ์ ์ด์ด์ค (๋ฌผ๋ฆฌ์ ์ธ ๊ณต๊ฐ์ ๋ง๋ค์ด์ค)
- ์ด๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ํ์ํ ๋ ํ์ํ ๋งํผ ์คํํ์ผ์ ๋์์ํค๊ณ , ํ์ ์์ด์ง๋ฉด ํ๋ก๊ทธ๋จ์ ๊น๋ํ๊ฒ ์ญ์
* Container vs Virtual Machine
- ๋์ปค๋ ์ปจํ ์ด๋๋ฅผ ์ค์ด ๋๋ฅด๋ ์ญํ / ์ปจํ ์ด๋ = ์คํ ํ์ผ + ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ – abstraction at the app layer
- ํ์ํ ๋ ํ์ํ ๋งํผ ์ค์นํ๊ณ , ๊นจ๋ํ๊ฒ ์ง์ฐ์ (์ค๋๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ๋ฒ)
* ์ปจํ ์ด๋์ ์ฅ์ - ๊ฒ์คํธ OS๋ก full OS๊ฐ ์ฌ๋ผํ์ผ ํ๋๊น ๋ฌด๊ฑฐ์ ์ / ์ปจํ ์ด๋๋ ์MB (๋งค์ฐ ๊ฐ๋ณ๊ณ , ๋น ๋ฅด๊ฒ ๋๋ฆด ์ ์์)
- ์ฝ์ด๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์๊ตฌํ์ง ์์ ์๊ตฌํ๋ ๊ณต๊ฐ์ด VM๋ณด๋ค ์๊ณ , ๋ฐ๋ผ์ VM๋ณด๋ค ๋ ๋ง์ application์ ๋๋ฆด ์ ์๋ค.
- ์ปจํ ์ด๋๊ฐ VM๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ ๋ ์ ๊ฒ ์ฌ์ฉ / ๊ฐ ์ปจํ ์ด๋๋ค์ ํ๋์ host os ๊ณต์ ํ๊ฒ ๋๋ค.
* Challenges of Container - ์์ญ๋ง ์๋ฐฑ๋ง ์ฝ์ด๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ์๋ฒ ํ๋ก๊ทธ๋จ์ ์ง๋ ๊ฒ - CNCF (cloud native)
'ComputerScience > DockerKubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Docker] Cpp Boost WebSocket Client/Server (0) | 2024.05.09 |
---|---|
[Docker] ์ค๊ฐ๊ณ ์ฌ ์ ๋ฆฌ(2) (1) | 2024.05.01 |
[Docker] Ubuntu Docker-machine ์ค์น (0) | 2024.04.30 |
[Docker] M1 Docker-machine Error, Ubuntu ์ค์น (0) | 2024.04.17 |
[Docker] CI/CD with Jenkins (0) | 2024.04.16 |