[Cloud] Cloud 란?

김우진·2021년 10월 27일
0

AWS(Amazon-Web-Service)

목록 보기
1/6

Cloud 이전의 방식

IDC(Internet Data Center)에서 직접 물리적인 컴퓨터를 세팅해야 했다.

Cloud

Cloud는 인터넷을 통해 컴퓨터의 리소스(메모리, 저장장치, CPU, etc...)를 사용하는 것으로 이를 통해 공간의 제약이 사라졌다.

미국 국립표준연구소(NIST)가 정의한 클라우드 컴퓨팅 특징

  1. Essential Characteristics(아래 5가지를 만족해야 Cloud Service라 할 수 있다.)
    • On-demand self-service : consumer가 컴퓨팅 자원을 요구하는 즉시 (관리자 동의 없이) 스스로, 자동으로 제공
    • Broad network Access : 어디 있든 인터넷을 통해 리소스에 접근 가능해야 하고 어떤 플랫폼으로 접근하더라도 인터넷을 통해 서비스를 제공하는 능력을 갖춰야 함
    • Resource Pooling : provider는 Cloud 컴퓨팅의 자원을 공유하여 제공할 때 낭비, 상호간섭, 충돌이 일어나지 않도록 리소스 풀을 확보해서 multi-tenant model로 제공해야 함, consumer는 리소스 위치에 대해 신경 쓸 필요 없음

      Multi-tenant Model

      • 하나의 인스턴스가 한 대의 서버 위에서 동작하면서 여러 개의 tenant를 서비스
      • 여기서 tenant는 소프트웨어 인스턴스에 대해 공통이 되는 특정 접근 권한을 공유하는 사용자들의 그룹을 뜻한다.
    • Rapid elasticity : 탄력적으로 리소스를 줄이거나 늘릴 수 있음(scale up and down)
    • Measured service : 리소스 사용량이 측정되어서 쓴 만큼만 지불함, 투명성(사용자와 서비스 제공자 모두에게 정확한 정보 제공), 리소스 모니터링, 사용 내역 제공 필요
  2. Service Models

- Software as a Service(SaaS)
  - 소프트웨어처럼 바로 사용할 수 있음 
  - ex) 네이버 클라우드, 구글 클라우드, MS 오피스 365
  - 설치 등이 필요없이 인터넷을 통해 접속만 하는 것으로 서비스를 제공할 수 있음
  
- Function as a Service(FaaS)
  - 함수 단위 등으로 실행
  - ex) Lambda
  
- Platform as a Service(PaaS)
  - 서비스 로서의 플랫폼
  - 개발을 위한 플랫폼을 구축할 필요없이 필요한 개발 요소를 웹에서 손쉽게 빌려서 사용 가능
  - 즉, 개발자는 서비스 외적인 부분에 신경 쓰지 않고 집중 가능
  - 응용 프로그램을 작성하고 실행할 수 있는 환경을 제공
  - ex) Google App Engine, Heroku
  
- Infrastructure as a Service(IaaS)
  - 사용할 수 있는 인프라를 제공하는 것
  - 사용자가 다룰 수 있는 부분이 제일 많은 서비스
  - 사용자가 서버 OS부터 런타임, 데이터와 어플리케이션까지 직접 구성 및 관리할 수 있다.
  
- Everything as a Service(EaaS)
  1. Deployment Models
    • Private Cloud : 비공개 클라우드, 단일 조직에서만 독점적으로 사용
    • Community Cloud : 특정 용도로만 제한된 조직에서만 사용
    • Public Cloud : 공개 클라우드, 일반인이 공개적으로 사용, 대부분의 클라우드 서비스
    • Hybrid Cloud : 두 종류 이상의 클라우드로 구성

가상화

위 Cloud 특징을 할 수 있게 해주는 특성으로 가상화란 하드웨어에 종속된 컴퓨터 리소스를 추상화하여 물리적 장치가 아닌 소프트웨어로 리소스를 사용가능하게 해주는 것이다.
이를 이용하면 리소스를 탄력적으로 설정할 수 있고, 이중화 등에 유리하다.

보통 한대의 서버는 하나의 개별 태스크를 실행하는 것이 더 쉽고 안정적인경우가 많지만, 가상화를 사용해서 한대의 서버를 마치 2개의 태스크를 하는 2개의 고유한 서버로 분할할 수 있다. 이렇게 되면 남는 서버가 생기고 이를 더 효율적으로 사용할 수 있게 된다. Cloud는 이러한 가상화 기술을 이용해서 한 대의 서버의 효율을 최대한 끌어올려 여러명의 사용자가 이용할 수 있도록 서비스를 제공한다.

출처

0개의 댓글