보안/개념

클라우드 기반 서비스 총정리

수달정보보호 2024. 1. 21. 18:01

1. 클라우드 기반 서비스의 개념

클라우드 컴퓨팅은 로컬 서버나 개인용 컴퓨터가 아닌 인터넷에 호스팅된 원격 서버 네트워크를 사용하여 데이터를 저장, 관리 및 처리하는 방식으로 정의할 수 있다. 이러한 종류의 클라우드 컴퓨팅 서비스를 제공하는 회사를 클라우드 제공업체 라고 하며, 일반적으로는 사용량에 따라 클라우드 컴퓨팅 서비스 비용을 청구한다. 그리드와 클러스터는 클라우드 컴퓨팅의 기초라고 할 수 있다.

 

2. 클라우드 컴퓨팅의 유형

대부분의 클라우드 컴퓨팅 서비스는 다음과 같은 5가지 광범위한 범주로 분류된다.

① 서비스로서의 소프트웨어(SaaS)
② 서비스로서의 플랫폼(PaaS)
③ 서비스로서의 인프라(IaaS)
④ 무엇이든/모든 것을 서비스로 제공(XaaS)
⑤ 서비스로서의 기능(FaaS)


이것들은 서로의 위에 구축되기 때문에 클라우드 컴퓨팅 스택 이라고도 한다. 이것들이 무엇인지, 그럼 어떻게 다른지 알면 당연하게도 목표를 더 쉽게 달성할 수 있을 것이다. 이러한 추상화 계층은 상위 계층의 서비스가 기본 계층의 서비스로 구성될 수 있는, 계층화된 아키텍처로 볼 수도 있을 것이다. 즉, SaaS가 인프라를 제공할 수도 있다는 것이다.

 

3. 서비스로서의 소프트웨어(SaaS)

SaaS(Software as a Service)는 인터넷을 통해 서비스와 애플리케이션을 제공하는 방법이다. 소프트웨어를 설치하고 유지 및 관리하는 대신, 인터넷을 통해 간단히 액세스하면 복잡한 소프트웨어 및 하드웨어 관리에서 벗어날 수 있다. 이를 통해 자체 컴퓨터나 데이터 센터에 애플리케이션을 설치하고 실행할 필요가 없어 하드웨어 및 소프트웨어 유지 관리 비용이 들지 않는 것이다. SaaS는 클라우드 서비스 공급자로부터 이른바 종량제 방식으로 구매하는 완전한 소프트웨어 솔루션을 제공한다. 대부분의 SaaS 애플리케이션은 다운로드나 설치 없이 웹 브라우저에서 직접 실행할 수 있다. SaaS 애플리케이션은 웹 기반 소프트웨어, 주문형 소프트웨어 또는 호스팅 소프트웨어라고도 한다.

 

① SaaS의 장점 
ㄱ. 비용 효율적: 사용한 만큼만 비용을 지불한다.
ㄴ. 시간 단축: 사용자는 소프트웨어를 다운로드하고 설치할 필요 없이 웹 브라우저에서 직접 대부분의 SaaS 앱을 실행할 수 있다. 이를 통해 설치 및 구성에 소요되는 시간을 줄이고, 소프트웨어 배포에 방해가 될 수 있는 문제를 줄일 수 있다.
ㄷ. 접근성: 어디서나 앱 데이터에 액세스할 수 있다.
ㄹ. 자동 업데이트: 고객은 새 소프트웨어를 구입하는 대신, SaaS 공급자를 통해 자동으로 업데이트를 수행할 수 있다.
ㅁ. 확장성: 사용자는 필요에 따라 서비스 및 기능에 액세스할 수 있다.

②Saas의 단점
ㄱ. 제한된 사용자 정의: SaaS 솔루션은 일반적으로 온프레미스 소프트웨어만큼 사용자 정의할 수 없다. 즉, 사용자는 SaaS 제공업체 플랫폼의 제약 내에서 작업해야 하며, 특정 요구 사항에 맞게 소프트웨어를 맞춤화하지 못할 수도 있다.
ㄴ. 인터넷 연결에 대한 의존도: SaaS 솔루션은 일반적으로 클라우드 기반이므로, 제대로 작동하려면 안정적인 인터넷 연결이 필요하다. 이는 연결 상태가 좋지 않은 지역의 사용자나 오프라인 환경에서 소프트웨어에 액세스해야 하는 사용자에게 문제가 될 수 있을 것이다.
ㄷ. 보안 문제: SaaS 제공업체는 서버에 저장된 데이터의 보안을 유지할 책임이 있기야 하지만, 여전히 데이터 유출이나 기타 보안 사고의 위험이 있다.
ㄹ. 데이터에 대한 제한된 통제: SaaS 제공업체는 사용자의 데이터에 액세스할 수 있는데, 이는 규제 또는 기타 이유로 데이터에 대한 엄격한 통제를 유지해야 하는 조직에 문제가 될 수 있을 것이다.

 

4. 서비스로서의 플랫폼(PaaS)

PaaS 는 개발자가 인터넷을 통해 애플리케이션과 서비스를 구축할 수 있는 플랫폼과 환경을 제공하는 클라우드 컴퓨팅 카테고리이다. PaaS 서비스는 클라우드에서 호스팅되며 사용자는 웹 브라우저를 통해 간단히 액세스할 수 있다. PaaS 제공업체는 자체 인프라에서 하드웨어와 소프트웨어를 호스팅한다. 결과적으로 PaaS를 사용하면, 사용자는 새로운 애플리케이션을 개발하거나 실행하기 위해 내부 하드웨어 및 소프트웨어를 설치할 필요가 없는 것이다. 따라서 애플리케이션의 개발 및 배포는 하드웨어와 독립적으로 이루어진다.


소비자는 네트워크, 서버, 운영체제, 스토리지를 포함한 기본 클라우드 인프라를 관리하거나 제어하지는 않지만, 배포된 애플리케이션 및 애플리케이션 호스팅 환경에 대한 구성 설정을 제어할 수는 있다.

① PaaS의 장점
ㄱ. 사용자에게 간단하고 편리: 사용자가 웹 브라우저를 통해 어디서나 액세스할 수 있는 많은 인프라 및 기타 IT 서비스를 제공한다.
ㄴ. 비용 효율성: 사용량에 따라 제공되는 서비스에 대한 비용을 청구하므로 온프레미스 하드웨어 및 소프트웨어에 대해 발생할 수 있는 비용이 사라진다.
ㄷ. 효율적인 라이프사이클 관리: 구축, 테스트, 배포, 관리 및 업데이트 등 전체 웹 애플리케이션 라이프사이클을 지원하도록 설계되었다.
ㄹ. 효율성: 복잡성을 줄이면서 더 높은 수준의 프로그래밍이 가능하므로 애플리케이션의 전반적인 개발이 더 효과적일 수 있을 것이다.

② Paas의 단점
ㄱ. 인프라에 대한 제한된 제어: PaaS 공급자는 일반적으로 기본 인프라를 관리하고 유지 관리 및 업데이트를 처리하지만 이는 사용자가 환경에 대한 통제력이 약하고 특정 사용자 정의를 수행하지 못할 수도 있음을 의미할 수도 있다.
ㄴ. 공급자에 대한 의존성 : 사용자는 플랫폼의 가용성, 확장성 및 안정성을 PaaS 공급자에게 의존하므로 공급자가 중단이나 기타 문제를 겪을 경우 위험할 수 있을 것이다.
ㄷ. 제한된 유연성: PaaS 솔루션은 특정 유형의 워크로드 또는 애플리케이션을 수용하지 못할 수 있으며, 이로 인해 특정 조직에 대한 솔루션 가치가 제한될 수 있을 것이다.

 

5. 서비스로서의 인프라(IaaS)

IaaS는 다양한 운영을 지원하기 위해 아웃소싱 기반으로 컴퓨터 인프라를 제공하는 서비스 모델이다. 일반적으로 IaaS는 네트워킹 장비, 디바이스, 데이터베이스, 웹 서버 등 인프라를 기업에 아웃소싱하여 제공하는 서비스라고 할 수 있다. IaaS 고객은 일반적으로 시간에 따라(주 또는 월 단위) 사용자별로 비용을 지불한다. 일부 공급자는 사용하는 가상 머신 공간의 양에 따라 고객에게 요금을 청구하기도 한다.

 

IaaS는 단순히 이러한 애플리케이션 및 서비스를 개발하고 개발 도구, 데이터베이스 등을 배포하기 위한 기본 운영 체제, 보안, 네트워킹 및 서버를 제공한다고 보면 될 것이다.

① IaaS의 장점  
ㄱ. 비용 효율성: 자본으로의 비용을 없애고, 지속적인 비용과 IaaS 고객이 사용자 단위로 지불하는 비용을 줄인다.
ㄴ. 웹사이트 호스팅: IaaS를 사용하여 웹사이트를 운영하는 것은 기존 웹 호스팅보다 저렴할 수 있을 것이다.
ㄷ. 보안: IaaS 클라우드 공급자는 기존 소프트웨어보다 더 나은 보안을 제공할 수 있다.
ㄹ. 유지 관리: 기본 데이터 센터를 관리하거나 개발 또는 기본 소프트웨어의 새로운 릴리스를 도입할 필요가 없다. 이는 모두 IaaS 클라우드 공급자가 처리한다.

② laaS의 단점
ㄱ. 인프라에 대한 제한된 제어: IaaS 공급자는 일반적으로 기본 인프라를 관리하고 유지 관리 및 업데이트를 처리하지만 이는 사용자가 환경에 대한 통제력이 약하고 특정 사용자 정의를 수행하지 못할 수도 있음을 의미할 수도 있다.
ㄴ. 보안 문제 : 사용자는 자신의 데이터와 애플리케이션을 보호할 책임이 있으며 이는 중요한 작업이 될 수 있다. 보안 문제가 장단점으로 뽑히는 것이 이상할 수도 있는데, 클라우드에서는 책임이 나뉜다는 것을 고려해야 한다.
ㄷ. 제한된 액세스: 법적 정책으로 인해 특정 지역 및 국가에서는 클라우드 컴퓨팅에 액세스하지 못할 수 있다.

 

6. 서비스로서의 모든 것(XaaS)

Everything as a Service. 오늘날 대부분의 클라우드 서비스 제공업체는 일부 추가 서비스를 포함하여 위의 모든 서비스를 편집한 서비스로 무엇이든 제공하는 것을 목표로 삼는다.


① XaaS의 장점
ㄱ. 확장성: XaaS 솔루션은 조직의 변화하는 요구 사항에 맞게 쉽게 확장하거나 축소할 수 있다.
ㄴ. 유연성: XaaS 솔루션을 사용하면 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등 조직의 특정 요구 사항에 맞게 사용자 정의할 수 있는 광범위한 서비스를 제공할 수 있다.
ㄷ. 비용 효율성 : 조직은 서비스 비용만 지불하므로 XaaS 솔루션은 기존 온프레미스 솔루션보다 비용 효율적일 수 있다.

 

② XaaS의 단점
ㄱ. 공급자에 대한 의존성: 사용자는 서비스의 가용성, 확장성 및 안정성을 XaaS 공급자에 의존하므로 공급자가 중단이나 기타 문제를 겪을 경우 위험할 수 있다.
ㄴ. 제한된 유연성 : XaaS 솔루션은 특정 유형의 워크로드 또는 애플리케이션을 수용하지 못할 수 있으며, 이로 인해 특정 조직에 대한 솔루션의 가치가 제한될 수 있다.
ㄷ. 제한된 통합: XaaS 솔루션은 기존 시스템 및 데이터 소스와 통합되지 않을 수 있으며, 이로 인해 특정 조직에 대한 솔루션 가치가 제한될 수 있다.

 

7. 서비스로서의 기능(FaaS)

FaaS는 클라우드 컴퓨팅 서비스의 한 종류이다. 사용자 또는 고객이 코드 또는 전체 애플리케이션을 기능으로 개발, 계산, 실행 및 배포할 수 있는 플랫폼을 제공한다. 이를 통해 사용자는 기본 인프라 유지 관리에 대한 걱정 없이 언제든지 코드를 완전히 개발하고 업데이트할 수 있을 것이다. 개발된 코드는 특정 이벤트에 대한 응답으로 실행될 수 있다. 이런 점에서 PaaS 와도 같은 것이다 .

FaaS는 엄밀히 말하면, 이벤트 중심 실행 모델로, 서버리스 컨테이너에 구현된다. 애플리케이션 개발이 완전히 완료되면 이제 사용자는 코드를 실행하는 이벤트를 트리거한다. 이제 트리거된 이벤트가 응답하고 서버를 활성화하여 이를 실행하는 것이다. 서버는 리눅스 서버 또는 공급업체가 완전히 관리하는 기타 서버일 뿐이다. 고객은 서버를 유지 관리할 필요가 없으므로 서버리스 아키텍처라고도 할 수 있다.

PaaS와 FaaS는 모두 동일한 기능을 제공하긴 하지만 확장성과 비용 측면에서 약간의 차이가 있다. FaaS는 수요에 따라 자동 확장 및 축소 기능을 제공한다. PaaS도 확장성을 제공하지만, 여기서는 사용자가 수요에 따라 확장 매개변수를 구성해야 한다. 또한, FaaS에서 사용자는 발생한 실행 시간만큼만 비용을 지불하면 된다. 반면, PaaS에서는 사용자는 사용량에 관계없이 종량제 가격을 기준으로 금액을 지불해야 한다.

① FaaS의 장점
ㄱ. 높은 확장성: 수요에 따라 공급자가 자동 ​​크기 조정을 수행한다.
ㄴ. 비용 효율적: 실행된 이벤트 수에 대해서만 비용을 지불한다.
ㄷ. 코드 단순화: FaaS를 사용하면 사용자는 전체 애플리케이션을 한 번에 업로드할 수 있다. 이를 통해 독립적인 함수 또는 해당 함수와 유사한 코드를 작성할 수 있을 것이다.

 

+코드 유지 관리만으로 충분하며 서버에 대해 걱정할 필요가 없고, 함수는 어떤 프로그래밍 언어로도 작성할 수 있다.

② FaaS의 단점
ㄱ. 콜드 스타트: FaaS 기능은 이벤트에 의해 트리거되므로 함수 컨테이너가 생성되고 초기화됨에 따라 새 기능에 대한 첫 번째 요청에서 대기 시간이 늘어날 수 있다.
ㄴ. 인프라에 대한 제한된 제어: FaaS 제공업체는 일반적으로 기본 인프라를 관리하고 유지 관리 및 업데이트를 처리하지만, 이는 사용자가 환경에 대한 통제력이 약하고 특정 사용자 정의를 수행하지 못할 수도 있음을 의미할 수도 있다.
ㄷ. 보안 문제: 사용자는 자신의 데이터와 애플리케이션을 보호할 책임이 있으며 이는 중요한 작업이 될 수 있다.
ㄹ. 제한된 확장성 : FaaS 기능은 높은 트래픽이나 많은 수의 요청을 처리하지 못할 수 있다.

728x90