DevOps/클라우드 개념정리

01. 클라우드 컴퓨팅 개요

Jaden Park 2021. 6. 7. 18:09

들어가며 : 클라우드 컴퓨팅이란?

클라우드 컴퓨팅 역사

  • 그리드 컴퓨팅
  • 클러스터링
  • 가상화
    • 소프트웨어 구현 계층에 따른 가상화 분류
    • 전가상화와 반가상화란?

 

주요개념 및 용어

  • 가상머신
  • 하이퍼바이저
  • 프로비저닝
  • 수평,수직확장
  • 영내(온프레미스, On-premise)

 

클라우드의 필요성 및 장단점

클라우드 컴퓨팅의 특성

클라우드 서비스 모델

  • SaaS
  • PaaS
  • IaaS

 

전개모델

  • 퍼블릭 클라우드
  • 프라이빗 클라우드
  • 하이브리드 클라우드
  • 멀티 클라우드

 

 

 

클라우드 컴퓨팅 이란?

  • IT 자원을 구입할 필요가 없이 컴퓨팅 자원이 필요한 시점에서 필요한 만큼만(온디맨드) 임대해 사용하고 그 만큼의 비용을 지불하는 서비스
  • 한마디로 IT자원의 렌탈샵
    • 컴퓨팅 자원(Compute) : 응용 요구에 따라 1개의 서버로부터 대형 서버 클러스터까지 제공 가능. EC2 가 대표적.
    • 스토리지 자원(Storage) : 임의의 크기의 데이터를 언제 어디서나 저장하고 검색할 수 있는 비용-효율적인 솔루션을 제공. S3(Simple Storage Service)와 EBS(Elastic Compute Cloud)가 대표적.
    • 네트워크 자원(Network) : 클라우드 내부 및 외부의 네트워크 자원을 커스터마이즈하고 제어할 수 있도록 해줌. Virtual Private Cloud(VPC), Route53 이 대표적
    • 이미지 자원(Image) : Amazon Machine Image(AMI)
    • Identity 자원 : Identity Access Management(IAM)
    • 데이터베이스 : DBMS 임대. DynamoDB, MySQL, Oracle 등


클라우드 컴퓨팅 역사

  • 클라우드 컴퓨팅(cloud computing)은 유휴 자원을 효율적으로 사용하기 위해 세계 최대의 인터넷 서점 Amazon에서 시작되었다.
    • 특정 기간(black Friday)에 트래픽이 몰려도 원활한 서버 환경을 위해 고비용으로 운영하는 것이 아쉬웠기 때문

 

  • IT 자원들을 이용해 가상 서버를 만들어 필요한 고객에게 임대해주고 사용한 기간 만큼만 이용료를 받고자 하는 새로운 개념 (ex. AWS)
  • 클라우드 컴퓨팅 발전의 기폭제가 된 관련 기술로는 그리드 컴퓨팅, 클러스터링 기술, 가상화를 들 수 있다.

 

그리딩 컴퓨팅(grid computing)

  • 여러대의 컴퓨터의 처리 능력을 한곳에 집중시켜서 대규모 연산이나 대용량 데이터 처리를 쉽게 하기 위한 기술
  • 컴퓨팅 그리드(계산 그리드)는 컴퓨팅 자원을 하나 이상의 논리적 풀로 조직화하여 플랫폼 형태로 제공하는 것
  • 그리드 컴퓨팅은 클러스터링에 비해 느슨하게 연결이 되고 분산이 됌.
  • 즉, 그리드 컴퓨팅은 이질적이고 지리적으로 흩어진 컴퓨터 자원(WAN)으로 구성이 될 수 있음.

 

클러스터링(Clustering)

  • 독립적인 IT 자원들을 상호연결하여 그룹으로 묶어 하나의 단일 시스템처럼 작동하는 것.
  • 중복과 고장대응 기반으로 고장율이 감소하고 가용성과 신뢰성이 증가.
  • 고속 근거리 통신(LAN)으로 구성이 될 수 있음.
그리딩 컴퓨팅 클러스터링
WAN 원거리 구성 LAN 근거리 구성
고도의 연산 처리를 위해 여러개의 컴퓨터를 연결하는 기술 고사양 시스템을 위해 여러 개의 컴퓨터를 연결하는 기술

 

 

가상화(vitualization)

  • 물리적인 자원과 사용자가 사용하는 자원을 분리하는 것
  • 하나의 물리적 IT 자원 위에 그 자체에 대한 다수의 가상 이미지를 만들어 다수의 사용자가 기반이 되는 처리 기능을 공유하는 것

 

소프트웨어 구현 계층에 따른 가상화 분류

 

하드웨어 기반 가상화(Type 1)

물리 자원과 그 물리 자원을 사용하는 운영체제 사이에 VMM(Virtual Machine Monitor) 또는 하이퍼바이저(hypervisor)라 불리는 소프트웨어 추상화 계층을 추가

VMM 은 물리 자원을 가상 자원으로 추상화시키고 이러한 가상 자원 위에 리눅스, BSD 등의 운영체제가 수행됌.

메모리 사용량이 적고 가상화에 따른 부하가 적기에 퍼블릭 클라우드 벤더에서 사용하는 방법. Type 1 이라고도 함.

XenSource - Xen, VMware - ESX server, HP - Integrity server, University of Washington - Denali 등이 대표적

 

 

운영체제 기반 가상화(Type 2)

하드웨어와 가상 기계 사이에 VMM 같은 별도의 가상화 층이 없으며, 그 대신 OS 내부에서 가상 자원들을 생성하고 이 자원 상에서 Guest OS가 동작.

메모리 사용량이 많고 부하가 크기 때문에 주로 실습용이라고 생각하면 편함. Type 2 라고도 함.

VMware - VMware Workstation, 리눅스 - KVM, 오라클 - Virtual Box 가 대표적

 

 

미들웨어 기반 가상화

프로그래밍 언어 또는 런타임 라이브러리 수준에서 가상 머신을 제공

가상 머신 상에서 하드웨어 독립적인 프로그램이 수행

오라클 - JAVA VM, MS - CLR 등이 대표적

 

 

전가상화, 반가상화

 

전가상화

하드웨어를 완전히 가상화하는 방식

하드웨어를 완전히 가상화하기 때문에 Guest OS에 아무런 수정없이 다양한 OS 이용 가능

전가상화를 실현하기 위해서는 물리적인 가상화 지원 기능이 있어야 한다. 이것 때문에 성능 저하 발생

 

 

반가상화

하드웨어를 완전히 가상화하지 않는 방식

Guest OS가 직접 하드웨어를 제어하는 것이 아니고 하이퍼바이저에 의뢰

하이퍼바이저가 제어를 하기 때문에 높은 성능 유지가 가능함.

Guest OS의 커널 일부분을 수정해야된다는 단점이 있음. 따라서 Guest OS 의 오픈소스는 한정됌.

대표적인 기술로 Xen.

 


주요 개념 및 용어

가상머신

  • 가상 머신(Virtual Machine, VM)은 물리적 하드웨어 시스템(off-premise 또는 on-premise에 위치)에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경

하이퍼바이저

  • 하이퍼바이저는 가상 머신(Virtual Machine, VM)을 생성하고 구동하는 소프트웨어
  • 가상 머신 모니터(Virtual Machine Monitor, VMM)라고도 불리는 하이퍼바이저는 하이퍼바이저 운영 체제와 가상 머신의 리소스를 분리해 VM의 생성과 관리를 지원
  • 하이퍼바이저로 사용되는 물리 하드웨어를 호스트라고 하며 리소스를 사용하는 여러 VM을 게스트라고 함.

프로비저닝

  • 가상 머신을 만들어 사용자에게 제공할 준비를 수행하는 과정
  • 사용자와 시스템에서 사용할 수 있도록, 데이터와 리소스에 대한 액세스를 관리하는 데 필요한 단계를 지칭
  • 프로비저닝과 설정은 각기 다른 작업이지만, 둘 다 배포 프로세스의 단계에 포함되며 일단 프로비저닝이 완료되어야 설정 단계를 진행할 수 있음.
  • 프로비저닝에는 서버 프로비저닝, 네트워크 프로비저닝, 사용자 프로비저닝, 서비스 프로비저닝 등 다양한 유형이 있음.

수평 확장(Horizontal scaling)

  • 동일한 유형의 IT 자원의 할당과 반납을 통한 확장/축소를 수평 확장이라고 함.
  • IT 자원의 수요 증가/감소를 처리할 수 있는 능력으로 스케일 아웃(scale out)과 스케인 인(scale in) 방식에 해당

수직 확장(Vertical scaling)

  • IT 자원의 수요 증가/감소를 처리할 수 있는 능력으로 스케일 업(scale up)과 스케일 다운(scale down)방식에 해당.
  • 기존의 IT 자원을 다른 고사양 또는 저사양 용량을 갖는 자원으로 대체한 경우를 말함.

영내, 온프레미스 (on premise)

  • "영내"라는 표현은 "클라우드 기반이 아닌 통제된 IT 환경의 영역"에 있다는 것을 의미
  • 전통적인 IT 기업의 조직 경계 안에 설치된 IT자원은 IT 기업의 영내(On premise)에 설치된 것으로 간주

클라우드의 필요성 및 장단점

클라우드 컴퓨팅의 필요성

  • 대용량 처리 능력 필요 : 클라이언트 수 증가 + 컴퓨터 파워 수요 폭증
  • Thin clients : Mobile, Smart TV, AR device
  • Everywhere Cloud : 빅데이터, 스마트 자동차

클라우드 컴퓨팅의 장점

  • 투자 및 비용 감소
    • IT자원의 설치공간, 물리적 확보 등에 고정 비용이 임대료 지불 방식으로 변경되어 초기투자 부담

 

  • 전력 비용 감소
    • 서버의 통합과 가상화 기법 등의 적용을 통해 에너지 비용을 크게 절감 가능

 

  • 확장성, 유연성 증가
    • 트래픽의 변동과 피크 수요에 자동적으로 또는 수동으로 유연하게 대응 가능

 

  • 가용성 및 신뢰성 증가
  • 이동성 증가
  • 보안 강화
  • 신속한 구현

클라우드 컴퓨팅의 위험 및 도전과제. 단점

  • 보안 취약성 증가
  • 운영 거버넌스 제어 감소
  • 클라우드 제공자들간의 이식성의 제한
  • 다주 영역 준수 및 법적 이슈

클라우드 컴퓨팅의 특성

  • 주문형 자가-서비스(on-demand self-service)
    • 서버 시간, 네트워크 저장장치 등의 컴퓨팅 기능을사람의 중계 없이 필요한 만큼 자동적으로 사용할 수 있다

 

  • 폭넓은 네트워크 접근
    • 이질적인 경량 또는 중량 클라이언트 플랫폼(모바일,PDA,태블릿 등)을 통한 이용을 허용하는 표준적인 메카니즘을 통해서 접근 가능

 

  • 자원 풀링
    • 제공자의 컴퓨팅 자원은 다중임대 방식으로 다중 사용자에게 제공되기 위해 풀 형태로 유지되며, 다양한 물리적 또는 가상적 자원이 사용자 요구에 따라 동적으로 할당 또는 재할당

 

  • 신속한 탄력성
  • 측정된 서비스

클라우드 서비스 모델

SaaS(Software as a Service)

  • 소프트웨어, 즉 응용 소프트웨어를 클라우드 서비스로 제공
  • 응용 프로그램은 웹 브라우저와 같은 씬 클라이언트(Thin client)를 통해서 접근 가능

PaaS(Platform as a Service)

  • 응용 프로그램 개발 도구, 컴파일러 등을 클라우드 서비스로 제공

IaaS(Infrastructure as a Service)

  • 고객에게 컴퓨트, 저장장치, 네트워크 등의 컴퓨팅 자원을 클라우드 서비스로 제공

서비스 유형 클라우드 소비자 활동 클라우드 제공자 활동
SaaS - 클라우드 서비스를 사용하고 구성함 - 클라우드 서비스를 구현, 관리, 유지함
PaaS - 클라우드 서비스와 클라우드 기반 솔루션을 개발, 테스트, 전개, 관리함 - 플랫폼을 사전-구성하고 기반 인프라구조, 미들웨어, 기타 필요한 IT 자원을 필요한 만큼 준비(프로비저닝)함
- 클라우드 소비자의 사용량을 모니터링함
IaaS - 실제(bare) 인프라구조를 설정하고 구성함. 필요한 소프트웨어를 설치, 관리, 모니터링함 - 요구되는 물리적 처리(컴퓨트), 스토리지, 네트워킹을 준비(프로비저닝)하고 관리함.
- 클라우드 소비자의 사용량을 모니터링함.

DaaS(Desktop as a Service)

  • 고객의 데스크탑이 클라우드 인프라 상에서 가상 머신 형태로 실행이 되며, 사용자는 다양한 경량 클라이언트나 제로 클라이언트를 이용해 데스크탑 접근 가능

SecaaS(Security as a Service)

  • 보안 보장을 제공하기 위한 방법과 관련

CaaS(Communication as a Service)

  • 실시간 통신과 협력 서비스를 제공하기 위한 클라우드 서비스를 제공하는 것

NaaS(Network as a Service)

  • 트랜스포트 연결 서비스와 인터-클라우드 네트워크 연결 서비스를 제공하기 위한 클라우드 서비스를 제공하는 것

전개 모델

프라이빗 클라우드

  • 클라우드 인프라가 특정 기관만을 위해 운영이 되는 형태
  • 기관 자체 또는 제3자 기관에 의해 관리될 수 있고 영내 또는 외부에 존재

퍼블릭 클라우드

  • 클라우드 인프라가 일반 대중이나 대형 산업 그룹에게 제공이 되며 클라우드 서비스를 판매는 기관에 의해서 소유가 됌.
  • 퍼블릭 클라우드 상의 IT 자원들은 미리 결정된 클라우드 서비스 모델에 따라 준비(프로비저닝)가 되며 클라우드 소비자에게 유료로 제공되거나 광고비를 수입원으로 제공이 됌.
  • 퍼블릭 클라우드와 그에 속한 IT 자원의 생성과 유지보수는 클라우드 제공자의 책임이 됌
구분 프라이빗 클라우드 퍼블릭 클라우드
개념 오직 한 조직만을 위하여 운영 다수의 대중을 위하여 인터넷 기반으로 운영
장점 - 특정 임무 중심의 애플리케이션 구성
- 보안 및 신뢰성 제고
- 네트워크 대역폭 제약 없음
- 인터넷 접속 가능 제약 없음
- 서비스 수준 관리 기능
- 활용도 증가
- 최소의 투자로 최대의 성과
- 이용한 만큼 지불(Pay-as-you-Go)
- 서비스 적기 제공
- 높은 수준의 탄력성
- SaaS 활용 용이
단점 - 장비, 하드웨어 비용
- 가상화 기술 비용
- 데이터 센터 구축 비용
- 높은 인력 비용
- 낮은 탄력성
- 고객사의 통제 권한 부족
- 매월 이용료 납부하는 번거로움
- 지원 비용(support cost) 증가
- 전문 서비스 제공 곤란
주요 기업 IBM, HP, VMware, EMC, 삼성전자 Amazon Web Services, Google Apps, Twitter, Salesforce.com, Facebook, KT, SKT
추천 고객 매출 10억 달러 이상 기업 매출 10억 달러 이하 기업

가상 프라이빗 클라우드

  • 퍼블릭 클라우드 제공자에 의해 호스팅되고 관리되는 독자적 클라우드 환경이 클라우드 소비자에게 제공되는 것

하이브리드 클라우드

  • 클라우드 인프라가 2개 이상의 클라우드(프라이빗, 커뮤니티, 퍼블릭)로 구성.
  • 하나의 클라우드 소비자가 2개 이상의 클라우드를 사용하는 형태로 볼 수 있음.
  • 예를 들어, 하나의 클라우드 소비자가 민감한 데이터는 프라이빗 클라우드를 이용해 관리하고 덜 민감한 데이터는 퍼블릭 클라우드를 이용하는 형태

멀티 클라우드

  • 2개 이상의 클라우드를 상호연결하는 기술.
  • 2곳 이상의 클라우드 벤더가 제공하는 2개 이상의 퍼블릭 또는 프라이빗 클라우드로 구성된 클라우드 접근 방식

모바일 클라우드

  • 스마트폰과 같은 모바일 단말기 상에서 클라우드 서비스를 이용하는 방식

커뮤니티 클라우드

  • 클라우드 인프라가 다수의 기관에 의해 공유가 되고 공통의 관심사를 가진 특정 커뮤니티를 지원