클라우드 전환 그 실제이야기 - 1 (TIL)
범위
1부 ThePlaning
1장 클라우드 컴퓨팅이란 무엇인가?
내용
요약
- 클라우드의 핵심은
서비스
로 제공돼야 한다는 것 - 내가 제공할 수 있는 어떤 것을 API로 노출 시키는 것이 클라우트 컴퓨팅이며, 지속적으로 유지할 수 있게 하는 것을 목표로 한다.
클라우드 컴퓨팅이란 무엇인가?
클라우드의 태동
존 매카시 교수(MIT)는 클라우드 개념을 다음과 같이 이야기했다.
- 네트워킹 서버 프로그램
- ASP(Applied Service Proverder): API/웹 등으로 서비스나 소프트웨어를 직접 제공하는 비즈니스 모델
- 유틸리티 컴퓨팅: 컴퓨터 리소스를 전기나 수도처럼 필요한 만큼 사용 후 비용지불
- 클라우드 컴퓨팅
클라우드 컴퓨팅이란 무엇일까?
클라우드 컴퓨팅의 특징
- 탄력성: 리소스를 필요한 만큼 동적으로 확장하거나 줄일 수 있는 특징(오토 스케일)
- 사용량 측정가능: 사용자별로 리소스 측정
- 온디맨스 셀프서비스: 관리자가 허용한 범위 내에서 자유롭게 컴퓨팅 리소스를 만들고 사용
- 유비쿼터스 네트워크: 언제 어디서든 네트워크를 통해 접근 가능
- 멀티 테넌시: 물리적으로 한개의 컴퓨팅 리소스여도 가상화 및 격리 기술을 사용해 독립된 컴퓨팅 리소스 사용가능
클라우드를 구축하는데 온프레미스 환경이 트래픽과 부하를 예측할 수 있어 적합 할 수 있다.
클라우드의 특징은 모든 리소스는 비용이 든다는 것
IaaS, PaaS, SaaS
- ms 개념도 (지원범위를 표기하였음)
On Premiss | IassS | PassS | Saas |
---|---|---|---|
애플리케이션 | |||
데이터 | |||
런타임 | 런타임 | ||
미들웨어 | 미들웨어 | ||
OS | OS | ||
가상화 | 가상화 | 가상화 | |
서버 | 서버 | 서버 | |
스토리지 | 스토리지 | 스토리지 | |
네트워크 | 네트워크 | 네트워크 |
- IaaS: 사용자의 목적에 따라 자신의 컴퓨팅 서비스에 필요한 기본적인 리소스를 만들 수 있다. 제공자는 이 리소스가 어디에 사용될지는 알 수 없다.
-
PaaS: 사용자가 자신의 프레임워크를 확장시키기 위해서 사용하는 서비스다. 제공자는 이 프레임워크의 요구사항을 만족시키는 정도만 제공하면 된다. 하지만 전용 프레임워크가 없으면 PasaS가 아니다. 컨테이너 오케스트레이터는 인프라 자동화에 더 가까운 툴이다.
- SaaS: 사용자는 데이터만 제공하며 제공자는 이 데이터를 가공해서 자신들이 원하는 형태로만 제공한다.
소프트웨어 개발에서 흔이 사용하는 인프라를 만들게 해주면 IaaS, 플랫폼을 만들수 있게 해주면 PaaS, 소프트웨어를 만들 수 있게 해주면 SaaS이다.
클라우드의 실제적인 정의
- 프로그램 가능한 리소스 관리
- Programmable: 프로그램으로 조절이 가능하여야 한다. 클라우드 공급자는 사용자로부터 요청을 처리하기 위해
API
를 만들고스펙
을 정의한 다음 사용자가 사용할 수 있도록SDK
또는라이브러리
를 제공하여야 한다. (오픈스택 오픈소스) - Resource: 리소스는 데이터 처리(계산, 전송, 저장)에 필요한 리소스를 의미한다. 클라우드 컴퓨팅에서 리소스는 대게 가상머신, 컨테이너라고 간주 할 수 있다.
- 독립적일 것: 사용자의 리소스가 다른 사용자의 컴퓨팅 리소스에 영향을 주면 안된다. 이러한 특징을
멀티 테넌트
또는멀티 프로젝트
라 한다 - 측정가능 할 것: 모든 리소스(
cpu/network/disk io/성능
)는 측정이 가능하여야 한다. 클라우드 제공자는 원격에서 리소스를 측정한다. 이러한 방법을원격측정
이라고 부른다. 원격측정에는 기본적으로빅데이터, 머신러닝, AI
에서 사용되는 기술이 모두 동원된다.
- 독립적일 것: 사용자의 리소스가 다른 사용자의 컴퓨팅 리소스에 영향을 주면 안된다. 이러한 특징을
- Management: 클라우드 공급자는
API
로 측정가능하고 독립적인 리소스를 조절할 수 있게 해주고, 클라우드 사용자는SDK
를 통해 리소스를생성/삭제/변경
등의 관리가 가능하여야 한다.
- Programmable: 프로그램으로 조절이 가능하여야 한다. 클라우드 공급자는 사용자로부터 요청을 처리하기 위해
- Programmable Resource Life Cycle management
- 기존 인스턴스 기반에서는 사용성이 떨어지며, 단순히 인스턴스를 추가/삭제 하는 방법에 그쳤었다.
- 컨테이너 오케스트레이터는 이미지를 통해 인스턴스를 생성 후 정보를 업데이트 하는 일을 오케스트레이터가 담당한다. 이러한 기능을
서비스 디스커버리
라 한다.
- Programmable Service Management
- 컨테이너는 리소스와 애플리케이션을 결합 한 형태라 서비스를 다음과 같이 풀었다.
- DNS as a Service: 사용자가 IP에 대해서 자신이 원하는 DNS레코드를 등록할 수 있게 API로 제공.
DNS as a Service
는 레코드 사용률과 과금정보가 사용자별로 계산 - 로드벨런서 as a Service(L4): 로드벨런서를 API를 통해 만들 수 있다. 로드벨런서의 사용량은 자동으로 텔레메트릭 서비스와 연결돼 로드 밸런서 자체의 부하 상황, 커넥션 수 등의 상태를 모니터링 할 수 있다.
- 로드밸런서 as a Service(L7): URL별로 접근할 수 있는 L7로드밸런서 제공
- DNS as a Service: 사용자가 IP에 대해서 자신이 원하는 DNS레코드를 등록할 수 있게 API로 제공.
- 컨테이너는 리소스와 애플리케이션을 결합 한 형태라 서비스를 다음과 같이 풀었다.
마치며
카카오 클라우드 개발자 공고모집에 추천책이 있어 구매하였습니다. 클라우드에 관심이 있다면 꼭 읽어볼 필요가 있어 TIL을 시작하게 되었습니다😤
최근 CKA
도 따서 동기도 부여되고 클라우드 관련된 내용을 공부하는게 재미있네요 :)
댓글남기기