본문 바로가기

개발관련 지식들

클라우드 (컴퓨팅) 서비스 (IAAS, PAAS, SAAS의 차이점과 각각의 특색), 그리고 클라우드 컴퓨팅의 기술 요소, 그리고 도커

참고: https://blog.naver.com/watch_all/223007807275

https://www.youtube.com/watch?v=IH7mUwunzlo&t=1s

https://www.youtube.com/watch?v=exewHoMNjsQ

도커: https://www.youtube.com/watch?v=WWhFBI6TMEU

도커: https://www.youtube.com/watch?v=WWhFBI6TMEU

IAAS(Infra Structure as a service), PAAS(Platform as a service) , SAAS(Software as a service) 의 차이점을 한 눈에 아래와 같이 파악할 수 있다.

종류
클라우드 서비스의 제공범위
주요 특징
IaaS
인프라스트럭처(서버/네트워크/스토리지)
공간을 빌려 쓸 수 있다.
PaaS
플랫폼(운영체제/미들웨어)
도구를 빌려 쓸 수 있다.
SaaS
소프트웨어·애플리케이션
완성품을빌려 쓸 수 있다.

IAAS는 기본적인 인프라 스트럭처(Infra structure)인 서버, 네트워크, 스토리지만을 빌려쓰는 것이다. PASS는 이에 더해서 추가적으로 운영체제와 미들웨어까지 더 빌리는 것이고 SAAS는 이 모든것에 더해서 소프트웨어까지 빌리는 것이다.

내가 앱을 만들어서 배포한다고 하면 이는 PAAS(Platform As A Service)를 말하는 것임. ( 사용자는 애플리케이션 코드를 작성, 빌드, 관리하지만 소프트웨어 업데이트 또는 하드웨어 유지관리와 같은 번거로움이 사라짐. 빌드 및 배포를 위한 환경이 사용자에게 제공됨) 즉, 나는 내 어플의 코드만 코딩하고 올리면 되는것임. 내가 짠 코드를 압축해서 업로드하거나 깃으로 전송하면 클라우드에서 알아서 서버에 넣고 돌려줌. 소위 배포한다고 하는 것이 이것임.

서비스로서의 소프트웨어(SaaS) 또는 클라우드 애플리케이션 서비스는 가장 포괄적인 형식의 클라우드 컴퓨팅 서비스로, 모든 애플리케이션은 제공업체가 관리하며 웹 브라우저를 통해 제공됨.

클라우드 서비스는 가상 컴퓨팅 기술을 활용하여 수많은 클라우드 컴퓨터중 한 대, 그 한대를 또다시 나누어서 사용자에게 제공할 수 있음.(즉 컴퓨터의 물리적 자원을 필요에 따라 분할해서 쓸수 있는 것이 가상 컴퓨팅 기술임)

클라우드 컴퓨팅의 기술요소

컴퓨팅 가상화

하이퍼바이저: 컴퓨팅 가상화를 가능하게 SW가상화 플랫폼. 하나의 컴퓨터(Hardware)와 그 안의 여러 운영시스템(OS)들 간의 소통을 돕는 역할.

Hypervisor의 역할:통역사!!! 각각의 OS가 자신만의 언어로 Hardware에게 전달하는 데이터를 통일된 명령어로 컴퓨터에 전달됨. 또는 컴퓨터(Hardware)가 운영체제들에게 보내는 메시지를 각각의 운영체제가 알아듣게 번역해줌. 보통 Hypervisor가상화를 둔다고 표현함
Hypervisor가상화를 두면 여러 리소스(서버들)를 한대처럼 운영하거나 하나의 리소스(서버)를 여러대(여러 서버들)로 나눌수 있어 탄력적 운영이 가능함

하지만 위와같은 Hypervisor도 완전한 기술은 아니었음. Hypervisor가 모든 명령들을 컨트롤하고 가상환경을 구축하다보니 여러 os를 구동하기 벅참.==>> 성능 문제로 이어지게 됨.

이와 같은 문제상황에서 발생한 기술이 컨테이너 가상화 기술!!!

컨테이너 가상화 기술은 각각의 컴퓨팅 환경을 모듈화하여 격리함. 이 모듈화된 것들 각각이 하나의 컨테이너임. 즉, 하이퍼바이저 없이각각의 App을 밀키트(컨테이너)처럼 포장해두고 조리하는 주방을 분리하는 것임(이 주방이 OS임. 즉 각각의 APP(밀키트, 컨테이너)에 걸맞는 주방(OS)을 APP에 맞춰가면서 변경하는 것임. 내생각에 특정앱에 걸맞는 특정주방(OS)을 변경, 선택해 주는 역할을 Container Engine이 하는 것임)

 

 

즉, 하이퍼바이저보다 효율성과 편리성을 얻을 수 있는 컨테이너가 새롭게 클라우드 컴퓨팅 기술로써 주목을 받게됨.

 

(참고: 데이터 센터의 구축 장소에 따라 사설 클라우드, 공용 클라우드로 나뉨. 클라우드 회사 안의 데이터 센터의 자원을 여러 기업과 소비자에게 제공하면 공용 클라우드라고 하고 데이터센터가 어떤 특정 회사에 구축되어 있는 것을 사설 클라우드라고 함. And비록 회사 내부에 구축되어 있지 않지만 클라우드 서비스를 통해 사설 클라우드를 사용한다면 그것 역시 사설 클라우드를 구축했다고 함. SDDC=Software Defined Data Center)

========================================================================================

도커, 컨테이너 기술에 대하여

https://www.youtube.com/watch?v=WWhFBI6TMEU

https://www.youtube.com/watch?v=WWhFBI6TMEU

 

프로세스를 격리시키는 기술이 컨테이너의 핵심기술임. 즉, 각각의 컨테이너에 들어가는 응용 프로그램이 어떤 운영체제에 의존적으로 동작하는지, 그 의존성을 없애 버리는 것임. 이렇게 함으로써 기존의 Virtual Machine과 같이 응용프로그램마다 가지고 있는 각각의 Guest OS를 별도로 Hypervisor위에 각각 설치할 필요가 없어진 것임. 다시 말해서 프로세스 격리 기술이 컨테이너 기술의 핵심임. 즉 프로세스를 운영체제에 의존적이 아닌 독립적으로 굴러가게 만드는 기술이 컨테이너의 핵심기술임( 빨간 글씨체=내정리)