일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- supervised learning
- 분류
- 해커톤
- gpt
- LG Aimers
- regression
- LG
- PCA
- deep learning
- 오블완
- Machine Learning
- GPT-4
- 머신러닝
- ChatGPT
- OpenAI
- 회귀
- 지도학습
- AI
- 티스토리챌린지
- LLM
- Classification
- LG Aimers 4th
- 딥러닝
Archives
- Today
- Total
SYDev
[마이크로서비스프로그래밍] Lecture02 - Cloud Computing & Infrastructure 본문
3학년 2학기 전공/마이크로서비스프로그래밍
[마이크로서비스프로그래밍] Lecture02 - Cloud Computing & Infrastructure
시데브 2024. 9. 12. 12:09경희대학교 이성원 교수님의 마이크로서비스 프로그래밍 수업을 기반으로 정리한 글입니다.
Goals of Reading Articles
- What is cloud computing? + utility clouding & cloud computing economics
- cloud computing의 구성요소 & service models
- What are the issues of cloud computing?
Cloud Computing Concept
Cloud Computing
- Infrastructure: CPU, Storage, Network
- Plaform: Database, Object Storage -> 개발자들이 사용하는 middleware, framework, ...
- Application: youtube, netflix, khu email, ...
- 언제 어디서든 접근할 수 있고, 사용하기 편리함, 필요할 때 필요한 만큼의 resources를 제공받음,
- 사용자가 필요한 computing infrastructure를 보유하지 않고, 빌려쓰는 개념
Cloud Computing에서 빌려쓰는 것
- applications delivered as services
- The hardwae & system software in the data centers
- >> 이런 hardware와 software를 보유한 data center를 Cloud라 부름
Cloud Computing 3가지 장점
- 수요에 따라 almost infinite computing resources를 사용할 수 있음
- up-front commitment -> 사용하는 만큼만 지불하면 됨, 최소비용 문제 없음
- pay for use of computing resources
Public Clouds vs Private Datacenters
- 필요한 만큼 거의 무한정으로 computing resources를 제공받을 수 있음
- 초기 지불 비용이 없음
- 사용한 만큼만 비용 지불
- 직업 infra를 가지고 있는 것보다 경제적
- 전체가 가지고 있어야 할 컴퓨터의 개수가 줄어듦
- resource virtualization을 통해서 operation 단순화 & 편의성 향상
Classes of Utility Computing
- Uitility Computing, 즉 on-demand computing은 제공하는 cloud system software에서 어떤 요소들을 제공하는지에 따라 구별된다.
- Amazon EC2: hardware(CPU, OS, ..) 제공
- Google AppEngine: hardware(CPU, OS) + library, application 정도까지 제공
- Amazon S3: Storage 제공
Cloud Computing Economics
- rent하는 cpu, storage, network이 얼마만큼 필요할지 생각해야 함
- service의 수요가 얼마나 지속될 것인가?
- 사전에 얼마 만큼의 수요가 있을지 예측할 수 있는가?
- 소유한 자원에 따라, 어떤 방식으로 서비스를 운영할지 생각해봐야 함
- 비용적인 측면에서 여유로우나 시간이 촉박 -> 1000개의 컴퓨터로 1시간을 돌리는 방법
- 시간은 여유로우나 비용적인 측면이 어려움 -> 1개의 컴퓨터로 1000시간을 돌리는 방법
- 비즈니스의 경우, 대부분 시간이 훨씬 중요함
Components of Cloud Computing
- Five essential characteristics
1. On-demand self-service -> 필요할 때 필요한 만큼 사용
- 사람이 수작업으로 개입하는 부분이 없어야 한다. -> 자동화된 시스템
- 시스템에 의해서 바로바로 이뤄져야 함
2. Broad network access -> 언제 어디서든 접근이 가능해야 함
- data center 내부에 있는 deivces 사이를 연결하는 network는, 외부와 내부를 연결하는 network 보다 몇 배는 더 빨라야 함
3. Resource pooling -> 한정된 자원을 효율적으로 사용
- Resources는 pooled together -> multiple customers에 의해 사용됨 -> multi-tenant model
- virtual & physical resources -> 수요에 따라 동적으로 할당/재할당 -> 사용하는 만큼 지불하기 때문에, 계획을 엄격하게 세워서 효율적으로 사용해야 함
4. Rapidly elastic -> 자원의 수요에 따라, 공급을 유동적으로 & 빠르게
- 수요에 따라 quickly & automatically 자원이 조정돼야 함
5. Measured service -> 사용한 만큼 비용을 지불할 때, 비용을 책정하는 기준이 신뢰할 수 있어야 함
- 얼마 만큼 사용했는지 automatocally monitoring
- load를 확인하고 resource controll
- 이 모든 정보를 기반으로 깔끔하고 정확하게 비용을 report 해야함
- Three service models
1. Software as a Service (SaaS)
- 소프트웨어 및 관련 데이터는 중앙에 호스팅되고, 사용자는 웹 브라우저 등의 Client를 통해 접속하는 형태의 소프트웨어 전달 모델 (https://ko.wikipedia.org/wiki/%EC%84%9C%EB%B9%84%EC%8A%A4%ED%98%95_%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
- 사용자는 network, servers, os, stroage, application capabilities 등을 관리할 필요가 없음
- ex) gmail, google docs, youtube, facebook, ...
2. Platform as a Service (PaaS)
- SaaS의 개념을 개발 플랫폼에도 확장한 방식으로, 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 쉽게 빌려쓸 수 있게 하는 모델 (https://ko.wikipedia.org/wiki/%EC%84%9C%EB%B9%84%EC%8A%A4%ED%98%95_%ED%94%8C%EB%9E%AB%ED%8F%BC)
- programming languages, libraries, services, tools를 빌려줌
- ex) Google Apps Engine
-> 개발자가 개발하기 편하도록, 개발 환경을 빌려쓰는 형태
3. Infrastructure as a Service (IaaS)
- server, stroage, network를 필요에 따라 인프라 자원을 사용할 수 있게 cloud service를 제공하는 형태 (https://ko.wikipedia.org/wiki/%EC%84%9C%EB%B9%84%EC%8A%A4%ED%98%95_%EC%9D%B8%ED%94%84%EB%9D%BC%EC%8A%A4%ED%8A%B8%EB%9F%AD%EC%B2%98)
- ex) Amazon EC2, Amazon S3, Windows Azure, ...
- Four deployment models
1. Private Cloud
- 집단 내부에서 cloud computing을 개발하여, source를 빌려주는 cloud 형식
2. Community Cloud
- 집단 내부에서 개발한 private cloud를 뛰어넘는 성능이 필요할 때, 신뢰할 수 있는 다른 조직의 cloud computing을 빌려쓰는 형식
- 서로 대가를 지불하지 않는 것이 일반적
- ex) 국가 관공서
3. Public Cloud
- 제 3자의 cloud를 빌려 쓰고, 비용을 지불하는 방식
4. Hybrid Cloud
- private cloud + public cloud
- 평상시에 private cloud를 사용하다가, 특정 시점에 public cloud를 빌려쓰는 것
Obstacles & Oppotunities
- 한 회사의 public cloud service만 믿고 사용할 수 있는가? -> 대안 마련
- 하나의 public cloud service에 너무 많은 기반을 두어, 다른 cloud로 옮길 때 이전 회사에 묶여버리는 현상 -> lock-in
- cloud의 보안을 믿을 수 있는가?
- 통신이 원할한가?
- 성능 예측이 가능한가?
- 저장 공간이 적재적소하게 확장/축소되는가?
- Bugs
- 용량 확장에 많은 시간이 걸림
- multiple users가 한 번에 사용할 때 -> 연쇄 반응
- software license fee
-> 단점을 보완하면서 사용
'3학년 2학기 전공 > 마이크로서비스프로그래밍' 카테고리의 다른 글
[마이크로서비스프로그래밍] Lecture06 - Docker Overview (2) | 2024.09.17 |
---|---|
[마이크로서비스프로그래밍] Lecture05 - Docker Introduction (1) | 2024.09.17 |
[마이크로서비스프로그래밍] Lecture04 - Virtualization & Container Technology (0) | 2024.09.13 |
[마이크로서비스프로그래밍] Lecture03 - Infrastructure & Virtualization (8) | 2024.09.13 |
[마이크로서비스프로그래밍] Lecture01 - Overview (13) | 2024.09.11 |