클라우드 서비스란 무엇인가
클라우드란 인터넷을 통하여 접근할 수 있는 가상 서버, 그리고 그 서버에서 돌아가는 플랫폼에서부터 애플리케이션 및 데이터베이스까지 IT 환경 전반을 가리키는 용어입니다. 기업이나 개인 고객에게 클라우드 사용 권한이 서비스 형태로 제공되기 때문에 클라우드 서비스라고도 불립니다. 클라우드 서비스를 이용하면 별도의 내부 인프라나 하드웨어 장비 없이도 애플리케이션과 각종 리소스에 쉽게 액세스할 수 있습니다. 사용자는 로컬 하드 드라이브 대신 원격 서버에 데이터를 저장 및 실행하게 되고, 클라우드 서비스 제공업체가 전체 인프라를 관리합니다.
클라우드 서비스가 생기기 전에는 회사가 애플리케이션을 호스팅하기 위해 자체적으로 서버를 구입하고 인력을 할당하여 전체 인프라를 유지 관리해야 했기 때문에 많은 비용과 인력이 필요했을 뿐더러, 대부분의 서버가 트래픽 폭주와 같이 일어날지 안일어날지도 모르는 만일의 상황을 대비하여 넉넉한 용량을 갖고 있어야 했기 때문에, 비싸게 주고 산 서버 공간 대부분이 그저 대비용으로 낭비되는 경우가 많았습니다. 클라우드 서비스는 서비스 제공업체가 책임지고 전체 인프라를 관리하며, 사용한 만큼만 비용을 지불하는 종량제를 채택하고 있어 기업체들은 유지 보수 및 비용의 부담을 크게 덜고 주요한 업무에 집중할 수 있게 되었습니다.
클라우드 서비스 모델 유형
1. IaaS (서비스형 인프라 Infrastructure-as-a-Service)
IaaS는 서비스형 인프라(Infrastructure-as-a-Service)를 뜻하며 가상 머신, 스토리지, 방화벽, 네트워킹 등의 인프라를 사용할 수 있게 해주는 클라우드 서비스 모델입니다. 사용자는 물리적 하드웨어를 구입하지 않고도 필요한만큼 인프라를 구축하고 자유롭게 확장 및 축소할 수 있습니다. 사용자는 실제 사용한 리소스에 대해서만 비용을 지불하므로 자유로운 확장 및 축소가 가능한 상황에서 유연하고 효율적인 가격 정책이 가능합니다. 대여한 인프라 내에서 리소스를 프로비저닝하고 사용하는 것에 관한 한 사용자는 거의 모든 권한을 갖지만, 하드웨어 유지 관리, 보안 등은 클라우드 서비스 제공업체에서 책임지고 전체 인프라 관리를 맡아주기 때문에 사용자는 관리 운영의 부담에서 벗어날 수 있습니다. 자체적으로 애플리케이션을 개발하지만 그에 필요한 장비를 물리적으로 구매하고 유지 관리하는데 드는 비용, 시간, 인력 등에 대한 부담을 안고 싶지 않은 회사에 최적인 서비스입니다. 사용자는 인터넷을 통해 언제나 준비된 인프라에 액세스할 수 있습니다.
IaaS를 제공하는 업체로는 Digital Ocean, Google Compute Engine(GCE), OpenStack, Amazon Web Services(AWS), Microsoft Azure 등이 있습니다.
2. PaaS (서비스형 플랫폼 Platform-as-a-Service)
PaaS는 서비스형 플랫폼(Platform-as-a-Service)를 뜻하며, 기본 인프라에 운영체제, 애플리케이션 개발 플랫폼. 개발도구 등을 포함하여 애플리케이션 개발, 실행 및 관리에 필요한 모든 환경을 갖춘 클라우드 서비스 모델입니다. PaaS 제공 업체가 서버, 스토리지, 네트워킹 등의 기본 인프라 외에도 애플리케이션 개발 프레임워크까지 제공해주기 때문에 개발팀은 애플리케이션의 개발과 배포에만 집중할 수 있습니다. 프로그래밍 언어, 통합 개발 환경, 개발 프레임워크까지 포함되는 플랫폼은 데이터베이스, 미들웨어, 런타임 환경 같은 관리형 서비스를 제공하여 개발자의 운영 부담을 줄여주며, 개발팀 간의 협업을 위해 버전 관리 도구, 협업 도구, 타 서비스와의 마이그레이션 등을 지원합니다. 실제 사용한 플랫폼 리소스에 대해서만 비용을 지불하므로 매우 효율적입니다. 클라우드 서비스 모델에서 PaaS는 IaaS(서비스형 인프라)와 SaaS(서비스형 소프트웨어) 사이에 위치한다고 할 수 있습니다.
잘 알려진 PaaS로는 Heroku, Google App Engine (GAE), Microsoft Azure App Service, RedHat OpenShift 등이 있습니다.
3. SaaS (서비스형 소프트웨어 Software-as-a-Service)
SaaS는 서비스형 소프트웨어(Software-as-a-Service)를 뜻하며, 애플리케이션 자체를 클라우드 서버에 호스팅하여 사용자가 인터넷으로 애플리케이션에 액세스할 수 있도록 하는 클라우드 서비스 모델입니다. 사용자가 로컬 디바이스에 소프트웨어를 구매하여 설치하여 사용하던 기존 방식과 달리 구독 방식으로 인터넷을 통해 소프트웨어 애플리케이션에 액세스하여 사용하는 방식입니다. 소프트웨어의 실시간 업데이트 및 모든 유지 관리 전반을 SaaS 제공 업체가 대행하기 때문에 오류나 보안 문제 발생 가능성이 적고, 항상 최신 기능으로 유지되며 가용성이 보장됩니다. 월별 혹은 연간 지불하는 구독 멤버쉽에 고객 지원, 소프트웨어 업데이트 및 유지 관리 등의 서비스를 포함하는 것이 통상적입니다. 인터넷에 연결된 웹 브라우저만 있다면 어디에서든 어떤 디바이스에서든 SaaS 애플리케이션에 액세스할 수 있으므로 설치형 소프트웨어에 비해 압도적인 접근성을 자랑합니다. IaaS나 PaaS와 마찬가지로 사용자의 요구사항에 맞춰 애플리케이션의 사용 범위를 유연하게 확장 혹은 축소할 수 있으며, 설치가 필요없기 때문에 로컬 디바이스의 용량을 차지하지 않는다는 것도 큰 장점 중 하나입니다.
SaaS 애플리케이션의 예로는 Google Workspace, Microsoft Office 365, Salesforce, Mailchimp, Slack, Notion 등이 있습니다.
4. FaaS (서비스형 기능 Function-as-a-Service)
일반적으로 IaaS, PaaS, SaaS 이 세 가지를 클라우드 주요 서비스 모델로 간주해왔지만 최근에는 FaaS를 네 번째 클라우드 서비스 모델로 언급하기도 합니다. FaaS는 서비스형 기능(Function-as-a-Service)를 뜻하며, 데이터 변경, HTTP 요청, 특정 시간 간격 등 특정 이벤트에 의해 트리거되는 개별 함수나 코드를 실행시켜주는 클라우드 서비스 모델입니다. FaaS 자체는 주로 기능의 런타임 실행에 중점을 두지만 일반적으로 이러한 기능을 생성, 배포 및 관리하려면 개발 플랫폼이나 환경이 필요하며, 이러한 개발 플랫폼에는 개발 및 배포 과정을 수월하게 해주는 도구, 라이브러리 및 서비스가 포함됩니다. PaaS와 유사하게 인프라와 개발 플랫폼을 모두 포함하고 있으므로 개발자는 기능을 위한 코드 작성에만 집중할 수 있습니다. 다른 클라우드 서비스 모델과 마찬가지로, 기능 실행에 대한 수요에 따라 리소스를 유연하게 확장 혹은 축소하므로 리소스 부족이나 낭비가 발생하지 않으며, 해당 기능을 실행하는 동안 사용된 리소스에 대해서만 요금이 청구되므로 효율적이고 경제적입니다.
개발 플랫폼 기능을 함께 제공하는 FaaS로는 AWS Lambda, Microsoft Azure Functions, Google Cloud Functions 등이 있고, 자체 인프라에서 FaaS를 실행할 수 있는오프 소스 FaaS 프레임워크로는 OpenFaaS, Apache OpenWhisk 등이 있습니다.

클라우드 서비스 제공 형태
퍼블릭 클라우드와 프라이빗 클라우드의 가장 큰 차이점은 호스팅 위치와 관리 주체입니다. 퍼블릭 클라우드는 공유 인프라를 사용하는 반면 프라이빗 클라우드는 조직의 전용 인프라를 사용합니다. 퍼블릭 및 프라이빗 클라우드가 결합된 하이브리드 클라우드, 고객이 여러 퍼블릭 클라우드를 커버하는 서비스를 사용하는 멀티 클라우드 형태도 많이 사용됩니다.
- 퍼블릭 클라우드 (Public Cloud): 인터넷에 접속 가능한 모든 사용자를 위한 서비스 형태로 동일한 서버 또는 인프라에서 수많은 다양한 사용자에게 서비스를 제공하는 클라우드 서비스입니다. 퍼블릭 클라우드는 서비스를 제공하는 각 사용자의 개인정보를 보호하고 철저한 샌드박스 환경을 유지하면서도 유연한 확장을 제공합니다.
- 프라이빗 클라우드 (Private Cloud): 서버, 데이터 센터 또는 분산 네트워크를 단일 조직만이 사용할 수 있는 형태로 제어권 또한 해당 조직이 가지고 있습니다. 이러한 클라우드는 일반적으로 이를 사용하는 기업이 사내에서 서비스를 제공하고 유지 관리하기 때문에 대규모 또는 엔터프라이즈급 조직인 경우가 많습니다. 조직의 자체 IT 팀이 필요한 장비를 조달 및 설정하고 컴퓨팅 리소스를 분석하며 보안 및 소프트웨어 업데이트를 유지하는 클라우드 서비스 형태입니다.
- 하이브리드 클라우드 (Hybrid Cloud): 퍼블릭 클라우드와 프라이빗 클라우드를 병행하여 사용하는 방식으로 두 개 이상의 서로 다른 클라우드 구조로 이루어집니다. 하이브리드 시스템에서 각각의 클라우드는 고유한 개체로 유지되지만 필요에 의해 리소스가 통합되기도 합니다.
- 멀티 클라우드 (Multi Cloud): 여러 클라우드 제공업체에서 원하는 서비스와 기능을 선택하여 조합함으로써 애플리케이션의 고유한 요구 사항을 충족하는 최적의 인프라를 구성할 수 있습니다. 구성원 중 한 클라우드에 문제가 발생하면 다른 클라우드로 전환하여 차질 없이 운영할 수 있다는 안정성과 여러 공급업체로부터 경쟁력 있는 가격 및 할인 혜택을 활용할 수 있다는 비용 절감의 이점과 더불어 여러 클라우드 공급업체와 계약하게 되므로 단일 업체에 대한 의존도도 완화할 수 있습니다. 하지만 멀티 클라우드 전략을 구현하고 관리하는 데에는 아무래도 복잡성이 뒤따르게 되므로 이 부분을 신중히 고려하는 것이 필요합니다.
- 커뮤니티 클라우드 (Community Cloud): 소규모 조직에는 자체 프라이빗 클라우드를 유지 관리할 여유가 없을 수도 있지만, 그럼에도 불구하고 반드시 프라이빗한 시스템이 필요한 경우들이 있습니다. 이런 시나리오에서 커뮤니티 클라우드는 꽤 훌륭한 옵션이 될 수 있습니다. 커뮤니티 클라우드에서는 동일 비즈니스 혹은 산업군에서 유사 요구 사항을 가진 조직들끼리 동일한 클라우드를 사용하므로 그들만이 사용하는 특수한 설정과 요구 사항을 프라이빗하게 적용하면서도, 하드웨어, 성능 및 보안 관리 등의 유지 관리 부담을 클라우드 제공 업체가 담당하는 퍼블릭 클라우드의 장점 또한 누릴 수 있습니다.
클라우드 서비스의 장점
클라우드에서 사용할 수 있는 기술과 컴퓨팅 리소스를 통해 기업은 컴퓨팅, 스토리지, 데이터베이스, 머신 러닝, 데이터 레이크, 애널리틱스 등의 리소스를 빠르게 스핀업해 보다 쉽게 혁신을 이룰 수 있습니다. 클라우드는 단 몇 분 만에 기술을 배포함으로써 기업이 최대한 빨리 시장에 결과물을 내놓을 수 있게 해줍니다. 기업은 고정된 리소스 대신 상황에 따라 신속하게 리소스를 프로비저닝하거나 용량을 확장/축소할 수 있어 유연한 운영이 가능하며, 그때 그때 필요한 리소스만 사용하고 거기에 대해서만 비용을 지불하게 되므로 비용면에서도 매우 효율적입니다. 아울러, 장비 구입과 관리 인력에 대한 부담이 없어지면서 여기에서 얻는 비용적 이점도 매우 큰 부분 중 하나입니다. 클라우드는 인터넷 접속만 가능하다면 사용자가 시간과 장소를 불문하고 어떤 디바이스에서든 데이터와 애플리케이션에 접속 가능하므로 엄청난 이동성 및 생산성을 확보할 수 있고, 여러 사용자가 동시에 사용 가능하므로 최상의 협업을 가능하게 해줍니다. 모든 업데이트 및 보안 패치 등이 클라우드 서버에서 직접 실행되므로 강력한 보안을 제공하며, 문제가 발생해도 신속하게 해결할 수 있습니다.
클라우드 서비스의 단점
클라우드에 접속하려면 인터넷 연결이 필수이기 때문에, 인터넷 연결이 불규칙하거나 시스템이 오프라인이라면 사용자가 리소스를 사용하지 못하는 상황이 발생할 수 있습니다. 그리고 인프라, 플랫폼, 애플리케이션 등의 유지 관리를 클라우드 제공 업체에서 맡아준다는 장점도 있지만, 이는 서버를 직접 보유하고 운영하던 기업체의 입장에서는 권한이 축소되는 것과 같은 의미이므로 그 부분이 단점으로 작용할 수도, 클라우드 서버가 위치한 데이터 센터와의 물리적 거리에 의해 성능 저하 현상이 발생할 수도 있습니다.
클라우드 서비스의 활용 예
- 각종 SaaS 제품들: SaaS 기술은 기업이 클라우드의 장점을 누릴 수 있도록 하는 주요 방법 중 하나입니다. 사용자는 이 솔루션들을 통해 CRM 시스템, 마케팅 자동화 툴, 비즈니스 생산성 제품을 비롯한 다양한 툴과 솔루션에 접속할 수 있습니다.
- 스토리지 확보: 기업은 클라우드의 데이터 스토리지 솔루션을 사용해 자체 서버의 드라이브나 스토리지 솔루션보다 훨씬 저렴한 가격으로 방대한 양의 데이터를 쉽게 저장할 수 있습니다.
- 빅 데이터 처리 : 클라우드는 기업에서 방대한 데이터세트를 수집하고 저장, 분석하는 데 필수적인 기술입니다.
- 테스트 및 개발: 클라우드를 통해 개발팀은 환경을 쉽게 구축하고, 테스트하고, 또 신속하게 제거할 수 있습니다. 새로운 환경을 프로비저닝하기 위해 몇 달 동안 기다릴 필요 없이 이제 몇 분 만에 이러한 환경을 구축할 수 있습니다.
- 가상 데스크톱: 많은 기업들이 클라우드 서비스를 직원들이 어디에서나 필요한 툴과 리소스에 쉽게 접속할 수 있도록 하는 DaaS(가상 데스크톱 Desktop-as-a-Service) 형태로 제공하여 생산성 향상을 이끌어내고 있습니다.
- 간편해진 백업과 복구: 클라우드를 이용하면 더욱 쉽고, 빠르고, 저렴하게 데이터를 백업하고, 운영 중단이 생기더라도 신속하게 복구할 수 있습니다.
