SaaS vs PaaS vs IaaS

요리하는코더·2021년 3월 25일
0

공부

목록 보기
2/2
post-thumbnail

Cloud Study

이 글을 CLOUDFLARE의 클라우드란 무엇인가 - 개념, 장점, 서비스 구분로 부터 연결된 여러 글들과 다른 글들을 참고하여 작성되었습니다.

클라우드란?

개념

클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅을 말한다. 인터넷을 통해 액세스할 수 있는 서버와 이러한 서버에서 작동하는 소프트웨어와 데이터베이스를 의미한다.

클라우드(Cloud)라는 단어가 말해주듯, 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 가져다 쓸 수 있다. 구름에 싸여 있다는 것은 그 내부를 보려고 하거나 알지 않아도 얼마든지 내가 원하는 것을 꺼내어 사용할 수 있다는 것이며, 인터넷이 연결된 어느 곳에서든 이것을 보장 받을 수 있다는 뜻이다.

클라우드 컴퓨팅의 대표적인 서비스 모델


출처: https://www.cloudflare.com/ko-kr/learning/cloud/what-is-the-cloud/

SaaS(Software-as-a-Service)

  • 개념

    • 사용자가 장치에 애플리케이션을 설치하는 대신 SaaS 애플리케이션이 클라우드 서버에 호스팅되고 사용자는 인터넷을 통해 애플리케이션에 액세스한다. SaaS는 집을 빌리는 것과 같다. 집주인은 따로 있지만 집에 사는 사람은 소유주처럼 집을 사용한다. 대표적인 예로는 Slack, Gmail, Office 365 등이 있다.
      예전에는 프로그램을 샀다면 요즘에는 서비스를 구매해 어디서든 접근할 수 있게 한다. 조금 더 비유해서 설명하자면 발레 파킹 서비스와 주자 공간 대여가 있다. 둘 다 자동차를 주차할 수 있지만 발레 파킹은 주차를 대신해주는 서비스 주차 공간은 장소만 대여해주는 제품으로 볼 수 있다.
  • 장점

    • 어디서나 아무 장치에서 액세스 가능
    • 업데이트나 설치 불필요
    • 확장성
    • 비용 절감
  • 단점

    • 강력한 액세스 제어 필요
    • 엄체 종속
    • (대기업) 보안 및 규정 준수

PaaS(Platform-as-a-Service)

  • 개념
    • 호스팅된 애플리케이션에 비용을 지불하는 대신 자체 애플리케이션을 구축하는 데 필요한 것에 비용을 지불한다. PaaS 업체는 애플리케이션 구축에 필요한 모든 것을 인터넷을 통해 제공한다. 즉, 아까처럼 집에 비유하자면 집을 짓는 데 필요한 모든 도구와 장비를 빌리는 것과 비슷하다. 대표적인 예로는, Heroku, Micorsoft Azure가 있다.
      PaaS는 모든 인터넷 연결을 통해 액세스 할 수 있으므로 웹 브라우저에서 전체 애플리케이션을 빌드 할 수 있다. 개발 환경이 로컬로 호스팅되지 않기 때문에 개발자는 전 세계 어디서나 애플리케이션에서 작업할 수 있다.
  • 장점

    • 제품의 시장 출시 시간 단축
    • 시작부터 끝까지 하나의 환경
    • 가격 절감: IaaS보다 효율적, 공급 업체에 따라 가격 구조 상이
    • 라이선스 용이성
  • 단점

    • 업체 종속 및 의존
    • 보안 및 규정 준수 문제
  • Serverless computing과의 차이점

    • Serverless computing 또는 FaaS를 사용하여 구축 된 애플리케이션은 자동으로 확장되나 PaaS는 X
    • Serverless applications은 즉시 가동 및 실행될 수 있지만 PaaS 애플리케이션은 기존 애플리케이션과 비슷
    • Serverless vendors(공급업체)는 PaaS vendors와 다르게 개발 도구나 프레임 워크를 제공 X
    • 과금 방식이 다름

IaaS(Infrastructure-as-a-Service)

  • 개념

    • 기업(고객)은 클라우드 제공 업체로부터 필요한 서버와 저장소를 임대한다. 그리고 클라우드 인프라로 자체 애플리케이션을 구축한다. IaaS는 기업이 원하는 건물을 지을 수 있는 토지를 임대하는 것과 같은데 직접 건설 장비와 재료는 마련해야하는 것이다. 대표적인 예로는 AWS EC2, Google Compute Engine, OpenStack이 있다.
  • 주로 on-premises와 비교되는데 on-premises는 클라우드와 반대로 원격 환경이 아닌 자체적으로 보유한 서버에 직접 설치해 운영하는 방식을 말한다.

  • 장점

    • 확장성
    • 서버 유지 관리 전용 리소스 감소
    • 시장 출시 시간 단축
  • 단점

    • 제공 업체의 보안 문제 가능성
    • 클라우드 인프라와 애플리케이션 호환성

지원 항목 비교 표

여기까지가 클라우드 컴퓨팅의 3대 모델로 불리우는 것들이었다. 하지만 최근(?)에는 네 번째 모델로 FaaS가 나타났다.

FaaS(Function-as-a-Service)

  • 개념

    • FaaS서버리스 컴퓨팅으로도 불리며 클라우드 애플리케이션을 필요할 때만 실행되는 더 작은 구성 요소로 나눈다. 한 번에 집을 빌리는 게 아닌 식사할 때는 식당, 잘 때는 침실 등 사용하는 부분에 대해서만 비용을 지불 하는 것이다.
    • 여기서 서버리스라고 서버에서 안 실행되는 것이 아니라 다른 클라우드 컴퓨팅 모델과 마찬가지로 여전히 서버에서 실행된다. 서버리스라 불리는 것은 전용머신에서 실행되지 않고 애플리케이션을 구축한 기업이 서버를 관리하지 않아도 되기 때문이다.
    • FaaS를 사용하면 개발자가 즉시 코드를 작성하고 업데이트 할 수 있으며, 사용자가 웹 애플리케이션의 요소를 클릭하는 것과 같은 이벤트에 대한 응답으로 실행할 수 있다. 마이크로 서비스를 구현할 때 비용 효율이 좋다. 마이크로 서비스까지 다 설명하면 너무 길어지므로 간단한 예시와 사진으로 대체하겠다.
    • 모놀리식 아키텍쳐는 캔버스 전체에 바로 그림을 그리는 것이라면 마이크로 서비스 아키텍처는 부분 부분을 그린 후 합쳐서 하나의 그림으로 만드는 것이다. 즉, 수정이 필요하면 한 부분만 수정하면 되는 것이다.
  • 장점

    • 개발 속도 향상
    • 확장성: 급격한 트래픽과 같은 우발적인 상황에 걱정할 필요가 없다.
    • 비용 효율성
  • 단점

    • 시스템 제어 감소: 타사가 인프라의 일부를 관리하면 전체 시스템을 이해하기 어렵고 디버깅 문제가 추가된다.
    • 테스트에 더 많은 복잡성이 요구: FaaS 코드를 로컬 테스트 환경에 통합하는 것은 매우 어려울 수 있으므로 애플리케이션의 철저한 테스트가 더 집중적인 작업이 된다.

추가로 중간 중간에 언급한 서버리스 컴퓨팅에 대해 잠깐 알아보자

서버리스 컴퓨팅

  • 개념

    • 사용량에 따라 백엔드 서비스를 제공하는 방법이다. 서버리스 업체로부터 백엔드 서비스를 받고 사용량에 따라 비용을 부과받는다. 서비리스라고 불리지만 물리적 서버는 여전히 사용되며 개발자는 서버를 알 필요가 없다.
  • 장점

    • 낮은 비용
    • 간편한 확장성
    • 간단한 백엔드 코드: API 호출과 같은 단일 목적을 독립적으로 실행하는 간단한 기능을 만들 수 있음
    • 시간 단축
  • 단점

    • 단기적인 이벤트 처리를 염두에 두고 만들어 짐
    • 서비스 제공 업체에 대한 의존성

이제 마지막으로(정말 마지막) 클라우드 배포 유형에 대해 알아보자!

클라우드를 통해 서비스가 제공되는 방식을 정의한 것이 위의 모델들이었다. 클라우드 배포 유형은 클라우드 서버의 위치와 서버 관리자와 관계가 있다.

가장 일반적인 클라우드 배포

  • 사설 클라우드

    • 사설 클라우드는 서버, 데이터 센터 또는 분산 네트워크를 모두 한 조직만 사용할 수 있는 형태이다.
    • 서비스의 자원과 데이터는 기업 ㄴ부에 저장되고 기업이 자원의 제어권을 가지고 있다.
  • 공용 클라우드

    • 공용 클라우드는 외부 공급 업체가 운영하는 클라우드 서비스로서 서버는 하나 또는 다수의 데이터 센터가 있을 수 있다. 사설 클라우드와 달리 다수의 조직이 공유한다.
    • 공공기관이 도입하는 공공 클라우드는 Government Cloud, 공용 인터넷망에 연결된 공공 클라우드는 Public Cloud로 부른다.
  • 하이브리드 클라우드

    • 위의 두가지를 결합하며 온 프로레미스 레거시 서버도 포함할 수 있다. 서비스에 따라 둘 다 사용할 수도 있고 공용 클라우드를 사설 클라우드의 백업으로 사용할 수도 있다.
  • 멀티 클라우드

    • 멀티클라우드는 다수의 공용 클라우드를 사용하는 클라우드 배포 유형이다. 여러 외부 업체로부터 가상 서버와 서비스를 대여하는 것이다. 하이브리드 클라우드가 될 수도 있고 그 역도 성립한다.

이렇게 오늘은 클라우드에 대해 알아보았다.
사실 다른 사이트들의 글을 모아온 느낌이 있지만 최대한 여러 링크로 안 넘어가고 한번에 확인할 수 있도록 하였다.
개념적으로 완벽히 이해가 안 되는 부분도 있고 사용법도 아직 잘 모르지만 대략적인 감은 잡힌 것 같다.
이 글이 도움이 됐으면 좋겠다 :)


📑 참고사이트

profile
요리 좋아하는 코린이

0개의 댓글