[Computer Network] Chap11. Cloud Computing
11. Cloud Computing
- νμν λ νμν λ§νΌ μ¬μ©νλ κ²
-> μ΄λ μ€μ‘΄νλμ§λ μ λͺ¨λ₯΄κ² λλ°? κ΅¬λ¦ μμ μ»΄ν¨ν°, μκ°κ°μ κ°λ
- ν΄λΌμ°λ μ»΄ν¨ν κ°λ μ νμ λ°°κ²½
- κΉ¨μ μΌννλ μκ°μλ CPUκ° λ§μ΄ λμκ° -> λλ¨Έμ§ μκ°(μΆκ·Ό, μ·¨μΉ¨ μκ°)μλ CPUκ° λ Όλ€
- λ¨μ΄μ§ CPU μ¬μ©λ₯ μ λμ΄μ -> λ³ΈμΈμ΄ κ°μ§ CPU λμ€ν¬ λ€νΈμν¬λ₯Ό λ²€μ² νμ¬μκ² μλΉμ€ μ 곡
- λ± μ΄ λ§νΌλ§ λμ λ΄κ³ μΆλ€ -> 2010λ λ, AWS νμ
- λ²€μ² νμ¬ μ μ₯ - μλ² κ°λ°μ + λ°μ΄ν° μΌν° ꡬμΆν μ¬λ + μ΄μ©ν μ¬λ X (μΈκ°μ μμ°)
- μ°λ¦¬ νμ¬ λ΄λΆμ μ»΄ν¨ν°κ° μμ νμ X -> μ€νλ € μλ² νλμ¨μ΄λ₯Ό κ°κ³ μλ κ²μ΄ 골칫거리
-> λ§€λ 2% μ΄μ, μλ²λ 무쑰건 μ£½μ μ μλ€ -> κ·Έλ₯ μ°λ¦¬λ μννΈμ¨μ΄λ§ μ§μ λ리면 μλΌ?
** Public Computingμ 3λ λͺ¨λΈ
1. IaaS – Infrastructure as a Service
- νλμ¨μ΄ + CPU + μ΄λ€μ μ°κ²°νλ λ€νΈμν¬ / κ·Έ μμ κ°μλ¨Έμ κ³Ό OS
ex) AWS // κ°μλ¨Έμ κ³Ό κ²μ€νΈ OS
2. PaaS – Platform as a service
IaaS μμ λ§λ€μ΄λ SW, κ°λ°λꡬ (middleware, 3rd party λΌμ΄λΈλ¬λ¦¬) ν¨κ» μ 곡, κ°λ° νκ²½ ꡬμΆ
ex) ꡬκΈμ TensorFlow λ°μ΄ν° λΆμ λꡬλ€, MS Azure, Google App Engine
3. SaaS – Service as a service
μλΉμ€λ₯Ό κ°μ Έλ€κ° μ, μ΄λ¦λ§ λ°κΎΌ μλΉμ€, λλΆλΆ ꡬλ ν μλΉμ€
ex) κ²½ν¬λνκ΅ khu-mail (gmail)
- Public Cloud computing solution – κΈλ‘λ² IT κΈ°μ λ€μ΄ μ 3μμκ² μ 곡, ꡬκΈ, AWS (IaaS, PaaS, SaaS)
- Private Cloud computing solution – OpenStack / μΌμ±μ μκ° λ΄λΆ λΆμμκ² κ³΅κ° -> private
-> λ³ΈμΈμ΄ μΈνλΌ κ΅¬μΆ, λ΄λΆ κ³ κ°μκ²λ§ 곡κ°
+ Hybrid - privateμμ publicμΌλ‘ ν₯νλ κ² - μκ°μ μ² μ μ μ κ²½ν¬λκ° λ€μ΄λ² CPU, DISK λΉλ¦¬κ³ λ°λ©
μ¦ Hybrid - privateμ νκ³λ₯Ό λ°μ΄λλ κ² -> but κ²½ν¬λ νμ μ λ³΄κ° κ²½ν¬λ λ°κΉ₯μΌλ‘ λκ° λ λ²μ΄μ§ μΌ
- Public Cloud computing Service μμλ€
- 1. AWS – Amazon Web Service
- CPU / Storage / AR-VR / μμ± / λμμ μλΉμ€ λ± λ³ΈμΈλ€μ΄ νμν΄μ μ°λ νλ‘κ·Έλ¨μ λ¨λ€μκ² μ 곡νλ κ²
- 2. MS Azure - C# / .NET / Azure platform λ± μ£Όλ‘ κΈ°μ μ© λΉμ§λμ€ μννΈμ¨μ΄ μ 곡
- 3. Google - μ¨κ° μννΈμ¨μ΄λ₯Ό λ€ λ§λ€μ΄λ³΄κ³ , μ΄λ₯Ό νλ§€νλ κ² / λΉ λ°μ΄ν°, TensorFlow, μ체 νλμ¨μ΄ TPU
- Game - λ€νΈμν¬ κΈ°μ μ§λμ±, κ²μκ³Ό κ΄λ ¨λ μλΉμ€ λκ±° μΆμ - μμ΄λμ΄λ§ ꡬννλ©΄, λλ¨Έμ§λ ꡬκΈμ΄ ν΄
+ Apple – κ³Όκ±° λ§₯ μ€μ¬ -> νμ¬, κΈ°κΈ°λ€λΌλ¦¬ 컨ν μΈ λ₯Ό μ£Όκ³ λ°μ λ, μ€μ¬μ iCloud (λμ§νΈ νλΈ)
- Cloud Computing APIs
1. EC2 – Amazon Elastic Compute Cloud
- νμν λ νμν λ§νΌ, κ°μμ CPU, λμ€ν¬λ₯Ό μ 곡 -> μλ§μ‘΄μ EC2κ° μ κ³ νμ€μ΄ λ¨
- μ΄λ μ§μμ μ»΄ν¨ν°λ₯Ό λΉλ¦΄μ§λ μ€μ, λ΄κ° μνλ μ§μμμ ν΄λΌμ°λ μλΉμ€λ₯Ό νλ νμ¬λ₯Ό μ νν μ μλ€.
- virtual machine μμ μ¬λΌκ°λ μ΄μ체μ λ μ ν κ°λ₯ / μλ§μ‘΄μ΄ customν OS (μλ§μ‘΄ 리λ μ€)
2. S3 – Amazon Simple Storage Service
- web storage (ν΅μ λμ€ν¬ μν ) - μ΄λ―Έμ§, λ°±μ μ©λ λ±λ± μΉ μλΉμ€μ μ μ₯ 곡κ°μ λΉλ €μ μ¬μ©
- μ λλ‘ λμκ°μΌ νλ€λ guarantee νμ§ λ³΄μ₯ / 99.9%λ μ₯μ κ° λ°μνμ§ μλλ€λ QoS μλ―Έ
+ μλ§μ‘΄μ API, EC2, S3κ° μ κ³ νμ€μ΄ λμλ€.
* Thin Client - μ /μΆλ ₯ μ©λλ§ ν΄λΌμ΄μΈνΈμ λ¨κΈ°κ³ , μλ²μμ 볡μ‘ν λͺ¨λ μ²λ¦¬λ₯Ό νλ€.
- ex) ν¬λ‘λ―Έμ OS - κ°λ²Όμ΄ μ΄μ체μ μμ ν¬λ‘¬ μΉ λΈλΌμ°μ νλλ§ λ± λμ
-> μλ²μ μ μνμ¬ μλΉμ€λ₯Ό λ°μ / μ μ₯λ λ°κΉ₯μ ν¨ -> μΉμΌλ‘λ§ λμκ° μ μλ μΈμμ΄ λ¨
- κ΅¬κΈ workspace - μΉ λΈλΌμ°μ μμ€μ΄ OSκΉμ§ μ¬λΌκ°
+ POS - points of sales
- νλ§€ μ μ μ©μΉ΄λ κ²°μ μ μ¬κ³ μ 리λ₯Ό μν κ³ κ°μ μ μ© νλμ¨μ΄ -> νλμ¨μ΄λ‘ μ‘΄μ¬νλ λ§μΌλ€ λΆκ΄΄
- Thin client - 물건 κ³ λ₯΄λ νλ©΄, κ²°μ νλ©΄ UIλ§ λ³΄μ¬μ£Όκ³ , μ²λ¦¬λ μλ²μμ νλ€ / μ λ ΄νκ² SWλ‘ λ체 κ°λ₯
- λλ₯Ό λ°κΉ₯μ κΊΌλ΄ λλ κ² -> ν΄λΌμ°λ λ‘λ΄
* Private Cloud Solutions - 2010λ λ μλ§μ‘΄μ public cloud μ±κ³΅
-> μΌμ±, λ€μ΄λ² μ¬λ΄μμ CPU, DISK, λ€νΈμν¬λ₯Ό νμν λ νμν λ§νΌ λΉλ €μ£Όκ³ νμ
-> κ·Έλ κ² μ¬μ΄ κΈ°μ μ΄ μλλ€ -> OpenStackμ λ±μ₯!
- λ³ΈμΈμ΄ κ°μ§ μ»΄ν¨ν°λ€μ cloudν -> νμν λ§νΌμ μμ² / λΉλ €μ£Όκ³ νμν μ μλ€.
- cloud computingμ pythonκ³Ό ν¨κ» -> λ°μ΄ν° λΆμ, μΈκ³΅μ§λ₯ λ°μ
** OpenStack
- cloud computing κΈ°μ μ λ³ΈμΈ νμ¬μμ μ§μ ꡬν κ°λ₯
-> processor CPU, storage Disk, Networkμ λΉλ €μ€ μ μλ κ²
- 2010λ λμ¬μμ μ΅μ΄ κ°λ°
-> λ΄ μμ μ¬λ¦¬κ³ μΆμΌλ©΄ / νμ΄μ¬ μ¨λΌ -> 2010~2015 -> SW μ λ€μ μ μΌμ
- κ³Όνμλ€μ΄ ν¬νΈλμμ νμ΄μ¬μΌλ‘ κ°μν κ² / μ΄λ€ OS μμμλ λμΌν κ²°κ³Όλ₯Ό λ΄λκΉ
- scipy, numpy λμ¨ μ΄μ -> 2015λ μ΄ν μ μΈκ³ μλ² κ°λ°μλ€, IT κΈ°μ λ€ λλμΌλ‘ νμ΄μ¬μ μ°λ©° νΌμ§!
- μ΄λ§μ΄λ§νκ² GPUκ° νμν μνΈνν / κ·Έλν½μ€ / CV / ML -> μ΄ λμ΄μ μ°Έμ¬
- ν 10λ μ μμ¬κ° λͺ¨λ λμ¬μ openstackμμ μΆλ°ν κ²
* Apple κΈ°μ‘΄μ Virtual Machine λ°©μ λΉν
- 30%μ virtualization tax, μ±λ₯μ΄ 30%λ κ°μ -> 컨ν μ΄λ κΈ°μ μ νμ
* Container - μ ν΅μ μΌλ‘ 리λ μ€μ μλ κΈ°μ , νμ¬ μ λͺ ν νμ¬μ΄μ, νλ‘κ·Έλ¨μ΄ λ컀
* Linux over Linux problem
- OS 2κ°κ° μ¬λΌκ°λ λ¬Έμ λ°μ, νμ¬ μμμ μ 무λ₯Ό 보λ private cloud -> μ°λ¦¬ νμ¬λ κ°λ° νκ²½μ ν΅ν©
- host OS 리λ μ€ -> κ·Όλ° νμ¬λ μ΄μ체μ λ₯Ό ν΅μΌν¨ -> CPU μμ μ¬λ¦¬λ OSλ 리λ μ€κ° λ¨
- 물리μ μΈ μ»΄ν¨ν°μ Host OS μμ - Virtual Machine μμ - κ°μ OS (Guest OS)
- λ΄κ° μ¬λ¦¬λ host OS - 30%, κ·Έ μμ VM (guest) - 30% -> λ΄κ° μΈ μ μλ 건 40%
-> μ΄κ² μ μμ΄λ? μ΄κ±΄ μ’ μλ κ² κ°μλ° -> container λ±μ₯ (guest OS, VM μλ€)
* Container, Docker
- physical μ»΄ν¨ν° μμ host μ΄μ체μ λ§ μ¬λΌκ° / virtual machine? Guest OS? λ λ€ μμ
- λ΄ νλ‘κ·Έλ¨κ³Ό + νμν λΌμ΄λΈλ¬λ¦¬λ€μ ν¨κ» μ¬λ¦Ό -> μ§μΈ λ κΉ¨λνκ² μΉ μ§μ
- μλ 리λ μ€μ μλ κ°λ μΈλ°, λ컀λ λ§₯, μλμ° OS μμμλ 컨ν μ΄λ κΈ°μ μ μΈ μ μλλ‘ ν΄μ€ κ²
- 리λ μ€ / μ λμ€κ° μλ²μ μ°μ΄λ μ΄μ - νλ‘κ·Έλ¨λ€μ΄ μλ‘ μν₯μ μ μ€λ€.
- μμμ λν μ΄λ¦μ λ§€κΈ΄λ€ - νλ‘κ·Έλ¨ λ³λ‘ λλμ΄μ μ°’λλ€. ex) using namespace std
- linux over linux problem -> VMμ λΉΌκ³ , 컨ν μ΄λ κΈ°μ μ λ£μ / νμ΄μ½μμ κΈ°μ μ λ°νν¨ (νμ΄μ¬ 컨νΌλ°μ€)
* Kubernetes, by Google – Container Orchestration
- μ»΄ν¨ν° μμμ νλ‘κ·Έλ¨μ μ€μΉνκ³ μμ νλ 컨ν μ΄λ κΈ°μ μ λ컀
- μ΄κ±Έ μμ² μλ§λμ μ»΄ν¨ν° κ·λͺ¨μμ μ΄μ, κ΄λ¦¬, μ μ΄ by μΏ λ²λ€ν°μ€
- virtual machine μλ pod κ°λ μ΄ μμ / μ»΄ν¨ν° μμ λ컀, νμν λ νμν λ§νΌ νλ€μ λμ΄λ€.
* Cloud Native
- μμ μ νλ©μ΄λ¦¬λ‘ μ§λ νλ‘κ·Έλ¨ - μ²λͺ μ΄ 1κ°μ νλ‘κ·Έλ¨μ λ§λ¦
- cloudλ κ·Έλ κ² κ°λ°νμ§ X -> νλ‘κ·Έλ¨μ μκ² μͺΌκ° λ€
- 100κ°μ κΈ°λ₯ -> κ΄λ ¨ κΈ°λ₯μ μ¬κ΅¬μ± - 10κ°μ© μͺΌκ°κ³ , κ°μ λ°λ‘ κ°λ°ν¨
- νΉμ κΈ°λ₯μ λν μ΅μ μ μΈμ΄ 골λΌμ, μκ·λͺ¨μ κ°λ°μκ° agileνκ² κ°μ μ΅μ μΌλ‘ λλ¦Ό -> λ§μ΄ν¬λ‘μλΉμ€
- μλ² to μλ²λ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ κ² -> HTTP3 / QUIC by UDP
+ κ°λ°νκ³Ό μ΄μνμ΄ λ°κ²°ν© -> μ΄κ² DevOps (μλν) / CI/CD (κ°λ° μ΄ν μΆμκΉμ§ μλν)
+ μ΅μ μ μΈμ΄λ‘ μ€ν νμΌ νλκ° μμμ§κ³ , μ€κ³λΆν° κ°λ°κΉμ§ λ¨κ³κ° μ μ -> SW κ°λ° μκ° λ¨μΆ
- Cloud Native Foundation
- μ μΈκ³μμ μ μΌ μλκ°λ foundation, μ² μ ν IT κΈ°μ μ€μ¬μΌλ‘ μμ§μ
- 리λ μ€ foundation μ°νμ Cloud Native Foundation
- Edge Computing
- λ€νΈμν¬λ‘ μΏ λ²λ€ν°μ€μ μμ΄ λΏμΌλ©΄, κ°μμ λ°μ΄ν°μΌν°λ₯Ό λ§λ€ μ μμ
- edge computing // 5G SKTμ μ€μΌμ€νΈλ μ΄ν°
-> μμ λ°μ΄ν° μΌν°κ° μ¬μ©μμκ² κ°κΉμ΄ κ³³μμ λΉ λ₯΄κ³ μμ μ μΈ μλΉμ€
* κ°μΈμ μΌλ‘ μ΄λ² νκΈ° μ»΄ν¨ν° λ€νΈμν¬ μμ μμ κ°μ₯ μ¬λ―Έμμλ part :)