본문 바로가기

잡다/cloud

클라우드 서비스 유형

현재 글은 K-MOOC 강의 및 인터넷 상의 정보(SDS 등)를 기반으로 합니다.


클라우드 서비스 유형 별 책임 범위

클라우드 서비스

 인터넷을 통해 컴퓨팅 자원, 플랫폼, 소프트웨어 등 IT 관련 서비스를 원격으로 제공받는 것. 사용한 만큼 지불하는 on-demand 방식을 기반으로 하며, 사용자가 필요한 시점에 필요한 만큼 자원을 할당받을 수 있다.

장점

  • 초기 투자 비용 및 유지보수 비용이 감소하며, 유지보수가 용이하다.
    : on-demand 기반 -> 초기 투자 비용 감소. 유지 보수 + 기타 비용 절감. 업데이트 등 유지보수 필요 X
  • 신속하고 유연하게 인프라를 구성할 수 있다.
    : 사용자 요구에 따라 신속하게 scale in - out / up - down 조절이 가능(자원 낭비 줄이고, 요구에 맞게 구축)
  • 언제 어디서나 접근 가능하다.
  • 데이터 안정성(가용성)이 높다.
    : 데이터를 데이터 센터 / 서버 / 리전 등 수준에서 이중화 / 백업하므로 재해 시 손실 위험이 감소한다.

고려 사항

  • 데이터 전송 비용 등에서 추가 비용이 발생하는 경우 오히려 비용이 증가할 수 있다. 
  • 보안 위협 / 법적 문제
    : 사용자 데이터를 외부 데이터 센터에 저장하므로, 민감성 / 프라이버시 문제 등이 발생할 수 있다. 특정 나라는 법적으로 자국 데이터를 외부로 노출할 수 없으므로, 이러한 부분을 고려해야 한다.
  • 서비스 제공자에 대한 종속 및 제한
    : 클라우드 서비스에 지나치게 의존하면 정책, 비용 등 측면에서 변화가 발생할 때 대처하기 힘들다. 또한 클라우드 서비스에서 제공하는 사용자 정의 기능 이상의 서비스에 대해서는 제한된다.
  • 네트워크 / 인프라 성능
    : 사용자 지역, 인터넷 품질 및 서비스 제공자 인프라에 의해 영향을 받을 수 있다. 사용자 기대에 부응하지 못하는 경우도 있고, 네트워크가 불안하면 서비스 이용이 어렵다.

IaaS(Infra as a Service)

 서버, 스토리지, 네트워크 등 사용자가 요구하는 컴퓨팅 인프라 자원을 가상화된 형태로 제공한다. 사용자는 별도의 인프라를 구축할 필요 없이 CSP가 제공하는 인프라를 사용할 수 있다. 일반적으로 원격 접속(RDP), SSH 등의 방법으로 인프라에 접속할 수 있으며, 사용한 만큼 종량제로 지불한다.

 클라우드 공급자의 서버, 가상 머신, 스토리지, 네트워크 및 운영체제를 임대하여 사용한다는 개념으로, 사용자는 해당 인프라 위에서 자신이 원하는 스택을 이용하여 개발할 수 있는 자율성이 있다.

장점

  • 필요한 만큼 자원을 할당 가능하여 비용을 효율적으로 관리할 수 있다.
  • 인프라를 빠르게 확장할 수 있으며, 급격한 변화에 대한 대응에도 용이하다.
  • 필요한 기능을 빠르게 개발할 수 있다. ( CSP가 제공하는 템플릿, API등 활용 )

ex) AWS EC2, Azure VM

PaaS(Platform as a Service)

 애플리케이션의 빌드, 테스트, 실행 및 배포를 위한 플랫폼을 제공한다. 개발 툴, 데이터베이스, 라이브러리, 운영체제 등 기본적인 인프라 측면을 서비스 제공자가 관리하므로, 사용자는 인프라에 대한 고민 없이, 플랫폼에 코드 / 이미지 등을 업로드하여 쉽게 빌드 / 테스트 / 실행 / 배포하는 등 개발에 집중할 수 있다.

장점

  • 개발 생산성: 런타임, 운영체제 등 (또는 프레임워크 수준까지도) 개발 환경을 플랫폼에서 관리하므로, 개발자는 어플리케이션 개발에 집중할 수 있다.
  • 어플리케이션 운영 및 관리를 자동화하여 인력 비용이 절감된다.
  • 확장성: 필요에 따라 인프라를 쉽게 확장하거나 축소할 수 있으며, 이를 자동화할 수도 있다.

유의점

  • 인프라가 추상화되어 개발자의 접근 권한이 제한되므로, 응용 프로그램에 대한 제어 수준도 제한될 수 있다. 인프라에 대해 상세한 커스터마이징이 필요한 경우 제한될 가능성이 높아, IaaS 서비스 등 다른 대안을 고려해야 한다.
  • 공급 업체가 제공하는 API, 도구 서비스 및 독점 기술 등에 의존하므로, 공급 업체에 대한 의존도가 높다.

ex) AWS elastic beanstalk, Azure App Services

SaaS(Software as a Service)

 클라우드를 통해 소프트웨어 / 어플리케이션을 제공하는 모델. 사용자는 따로 자신의 컴퓨터에 어플리케이션을 설치하지 않고 웹 기반으로 접근하여 이용할 수 있다.스토리지, 네트워크, 보안 등 일체 기술적 측면을 제공자 측에서 책임지므로, 사용자는 사용한 만큼 비용만 지불하고 사용하면 된다.

장점

  • 클라우드 + 웹 기반으로 동작하므로 쉽고 편하게 접근할 수 있다.
  • 일반적으로 웹 인터페이스를 사용하므로, 사용자 입장에서 유지보수가 쉽다.
  • 보안 / 백업 / 복원 등 기능을 지원하여 사용자 입장에서 사용하기 좋다.

유의점

  • 네트워크 + 클라우드 서비스 기반이므로 인터넷 환경 영향을 많이 받는다.
  • 데이터를 CSP가 관리하므로 기밀 등으로 인해 외부로 유출되면 안되는 경우 채택하기 어렵다. 

ex) 일반적인 메일 서비스, microsoft office 365

FaaS(Function as a Service)

https://www.intel.co.kr/content/www/kr/ko/cloud-computing/faas.html

 이벤트에 대한 응답으로 코드를 실행할 수 있도록 하는 클라우드 컴퓨팅 서비스. 물리적 하드웨어, 운영 체제 등은 서비스 제공자가 관리하고, 사용자는 개별 함수의 기능에 집중하여 어플리케이션을 개발하면 된다.

 작성한 함수는 서버리스 환경에서 실행되며, 발생한 이벤트에 따라 기능을 수행한다.

장점

  • 자동 확장: 요청이 발생할 때 활성화되고, 자동으로 확장된다.
  • 빠른 개발 및 배포: 각 함수를 독립적으로 개발, 배포할 수 있다.
  • 유연한 서비스: 각 함수를 작은 단위로, 느슨하게 결합하면 개별적으로 업데이트가 가능하여 유연하다.
  • 서버 관리 X: 서버 인프라 및 스택을 전부 CSP가 관리하므로, 사용자는 자신의 데이터와 기능에 집중한다.
  • 비용 절감: 실행된 시간만큼 지불하면 되므로, 짧은 시간동안 실행되는 기능에 대해 비용이 절감된다.

유의점

  • 중단되지 않거나, 오랫동안 동작하는 경우 비용이 더 비쌀 수 있다.
  • 개발 환경 구성이 완전히 공개되어 있는 것이 아니므로 디버깅이 어려울 수 있다.
  • 일부 FaaS의 경우 1회 실행 당 제한 시간 등의 제약이 존재하므로 이를 고려하여 구현해야 한다.

'잡다 > cloud' 카테고리의 다른 글

클라우드 개요1  (1) 2023.10.05
[aws] python boto3 타입 사용  (0) 2023.09.27