본문 바로가기
운영체제 (LNX,WIN)

클라우드 컴퓨팅에서의 SaaS(Software as a Service)의 역할

by 날으는물고기 2009. 8. 31.

클라우드 컴퓨팅에서의 SaaS(Software as a Service)의 역할

클라우드 컴퓨팅에서 SaaS(Software as a Service)가 어떤 역할을 수행하는지 알고 싶습니까? SaaS의 다양한 특색에 대해 설명하고 Pay On Demand 인프라 환경을 기반으로 하는 클라우드 컴퓨팅에서 SaaS가 수행하는 역할을 보여 주는 두 가지 예 즉, 플랜트 엔지니어링 관리 및 원거리 교육을 살펴봅니다. 다중 소유(multi-tenancy) 및 가상화의 장점을 결합하여 최적의 성능을 얻도록 SaaS를 조정합니다. 사용되지 않는 리소스 및 상호 운용성에 관한 문제점을 해결하는 방법을 알아봅니다. 마지막으로 적절한 계획 및 구현이 없을 경우 SaaS 및 클라우드 컴퓨팅의 경제적 장점보다 보안 비용이 훨씬 클 수 있다는 점에 대해 설명합니다.

소개

Amazon 웹 서비스를 사용해 본 사람 중에는 클라우드 컴퓨팅에서 SaaS가 수행하는 역할이 무엇인지 궁금해 하는 사람도 있다. 이러한 웹 서비스를 기반으로 웹에서 인식할 수 있는 클라우드 친화적인 SaaS를 개발할 수 있다. 다양한 고객(예: 컨설턴트 또는 제품 엔지니어)에게 SaaS를 판매할 수 있으며 낮은 비용의 온 디맨드 가격을 제공하여 소프트웨어 구입에 드는 초기 비용을 줄일 수 있다. 또한 SaaS는 중앙에서 업데이트를 제공하므로 패치와 업그레이드를 자주 다운로드하지 않아도 된다는 또 하나의 장점을 가지고 있다.

이 기사에서는 SaaS와 클라우드 컴퓨팅의 유사점과 차이점에 대해 설명한다. 클라우드 컴퓨팅에서 SaaS가 수행하는 역할을 살펴본 후 다른 형태의 클라우드 컴퓨팅(예: 유틸리티 컴퓨팅, PaaS(Platform as a Service) 등)과의 차이점에 대해 설명한다. 또한 서비스 분류 및 애플리케이션 예를 둘러보고 다중 소유와 가상화를 결합하는 방법에 대해서도 설명한다. 그런 다음 사용하지 않는 리소스 및 상호 운용성에 관한 문제점과 해결 방법에 대해 설명한다. 마지막으로 SaaS가 클라우드 컴퓨팅에서 얼마나 잘 수행되고 있는지 테스트하는 데 필요한 기준을 검토한 후 SaaS와 관련된 몇 가지 보안 문제에 대해 설명한다.

SaaS의 성숙도

오늘날 성숙한 SaaS는 매시업의 일부 또는 PaaS 제품이나 인터넷 기반 서비스의 플러그인으로 간주되어야 한다. 어디에서나 웹 브라우저를 사용하여 액세스할 수 있는 엔터프라이즈 리소스 관리 또는 플랜트 엔지니어링 관리와 같은 완벽한 턴키 애플리케이션을 제공한다.

최상위 레벨의 서비스 성숙도를 갖춘 SaaS는 서버 및 디스크의 가상 플랫폼 소프트웨어를 제공한다. SaaS 아래에 있는 두 가지 서비스 성숙도 레벨은 PaaS와 IaaS(Infrastructure as a Service)이며 최하위 서비스 성숙도 레벨은 인터넷 기반 서비스이다. PaaS는 디스크에서 API와 가상 플랫폼 소프트웨어를 실행하는 반면 IaaS는 인터넷을 통해 전체 기능을 갖춘 컴퓨터 인프라를 제공하고 Amazon EC2 및 IBM Blue Cloud의 사용자에게 서버 가상화를 제공한다. 인터넷 기반 서비스의 예로는 Amazon S3, Amazon Simple DB 및 Google Base가 있다.

예 1: 플랜트 엔지니어링 관리

플랜트 엔지니어링 회사에서 제조 주기 시간을 향상시키고 상품 구매, 영업 및 회계 거래에 대한 보안을 강화하는 데 사용할 수 있는 성숙한 SaaS를 구축할 수 있다. SaaS는 하청 제조 공정의 용량 계획에 사용할 비즈니스 프로세스를 결정할 수 있다. 고객 기반은 플랜트 관리자 및 품질 관리자부터 라인 책임자와 COO 및 CFO에 이르기까지 그 폭이 매우 넓다.

SaaS는 경영진이 Pay On Demand 방식의 요금제 환경에서 데이터에 액세스할 때 유용하며 재무, 플랜트 엔지니어링, 제조 주기 시간, 공급 관리 및 인적 자원 자금 계획에 관한 의사 결정을 내리는 데도 많은 도움이 된다. 제조 플랜트의 의사 결정권자인 경우에는 SaaS를 운영 비즈니스 인텔리전스 도구로 사용할 수 있다. 예를 들어, 의사 결정권자는 SaaS를 통해 제공되는 도구를 사용하여 자재 처리 시간, 주기 시간 및 교환 시간 동안에 달성해야 하는 목표를 설정하는 데 필요한 정보를 얻을 수 있다. 또한 이러한 도구를 통해 분석 작업을 수행하고 목표 달성에 실패했을 경우 의사 결정권자가 취해야 하는 조치를 진단할 수도 있다.

예 2: 원거리 교육

교육 프로그램을 SaaS로 구축할 수 있다. DigitalChalk의 SaaS 모델은 자체 웹 사이트를 통해 교육 컨텐츠(원거리 교육 포함)를 제공하려는 대학 및 기업 고객을 대상으로 한다. 이 모델은 고유한 AMI(Amazon Machine Images)를 작성한 다음 데이터 센터 대신 Amazon S3, EC2 및 SQS를 사용하여 SaaS를 구축한다.

다른 SaaS 서비스를 개발하기 위해 EC2에서 실행되는 IBM AMI를 사용할 수 있다. IBM AMI에는 IBM DB2, IBM Informix, IBM Websphere Smash 및 IBM Lotus Web Content가 포함되어 있다. AMI의 저장소를 확장하기 위해 사전 구성된 AMI 템플리트를 사용하거나 애플리케이션, 라이브러리, 데이터 및 연관된 설정이 포함된 AMI를 새로 만들 수 있다.

SaaS 서비스 분류하기

Microsoft에서는 SaaS를 두 가지 범주 즉, LOB(기간 업무) 서비스와 고객 지향적 서비스로 분류한다. 두 서비스 모두 요금제 기반으로 판매된다. LOB(기간 업무) 서비스는 Pay On Demand 요금제 환경(예: 플랜트 엔지니어링 관리)의 재무, 공급망 관리 및 고객 관계를 위한 대규모 사용자 정의 비즈니스 솔루션이다. 고객 지향적 서비스는 광고의 지원을 받아 고객에게 무료로 제공되는 서비스이다.

필자는 한정되어 보이는 이러한 범주에 공유 리소스 서비스 아웃소싱 서비스 라는 두 가지 범주를 추가했다. 여러 사용자 풀에 서비스를 분배하는 공유 리소스 서비스에서 제공하는 서버를 통해 대기업에서는 낮은 비용으로 최대 로드 성능을 얻을 수 있으며 결과적으로 내부 데이터 센터를 확장하지 않아도 된다. 아웃소싱 서비스를 통해 중소기업에서는 데이터 센터 인프라(예: 원거리 교육)를 완전히 외부화하여 서비스를 요금제 기반으로 제공할 수 있다.

고객 지향적 서비스를 제외하고 기업에서는 대규모 고객 기반에 서비스를 제공할 때만 수익성이 달성된다. PPU(Pay Per Use) 방식의 요금이 부과되는 유틸리티 컴퓨팅과는 달리 저렴한 Pay On Demand 방식의 이윤이 낮은 요금제를 통해 높은 인프라 비용을 적절히 감당해야 한다. 수익 모델에는 요금제 외에도 소개료, 수수료, 소비 기반 가격, 성능 기반 가격, 리셀러 이윤 및 수익 공유 등이 포함된다.

최적 성능을 위한 조정

각 예는 구성 가능성, 확장성 및 다중 소유 효율성과 같은 SaaS의 세 가지 속성을 보여 준다. SaaS에 세 가지 속성 중 하나라도 없으면 덜 성숙된 것이다. 다중 소유 및 가상화의 장점을 결합하여 시스템의 성능을 최적화하는 데 필요한 조정 작업을 유연하게 수행할 수 있다.

다중 소유

다중 소유는 단일 소프트웨어 인스턴스가 SaaS로 실행되면서 여러 클라이언트 조직(이용자)에게 서비스를 제공하는 소프트웨어 아키텍처를 의미한다. 다중 소유 아키텍처에서는 각 클라이언트 조직이 가상 애플리케이션 인스턴스를 사용할 수 있도록 데이터 및 구성이 가상으로 분할된다. 다중 소유 아키텍처의 경우에는 IT 리소스를 단일 운영으로 통합하여 비용을 절감하고 기본적인 규모의 경제를 달성할 수 있다.

다중 소유의 한 가지 단점은 고객 기반이 소규모일 경우 애플리케이션을 처리하는 데 메모리와 CPU가 필요 이상으로 사용될 수 있다는 것이다. 고객 기반이 대규모일 경우에는 이 오버헤드를 줄여서 단점을 상쇄할 수 있다. 이는 오버헤드를 고객에게 전가하여 달성된다. 또 다른 단점은 효율적인 다중 소유 애플리케이션을 생성하기 위해 추가 프로그래밍이 필요할 수 있다는 것이다. 이렇게 되면 오버헤드가 커진다.

가상화

SaaS 아키텍처에서 서버를 가상화하는 것은 다중 소유 환경에서 데이터 및 구성을 가상으로 분할하는 것 이상의 의미를 지닌다. 가상화의 한 가지 장점은 스토리지 및 데이터베이스 리소스를 포함한 리소스의 논리적 크기와 실제 서버의 수를 동적으로 조정하여 수요(예: 12월에 구매량 증가)에 따라 시스템의 성능을 향상시킬 수 있다는 것이다. 그에 반해 가상화 소프트웨어의 상호 운용성 문제로 인해 공급업체 간에 가상화된 서버를 전송할 수 없는 경우도 발생할 수 있다는 단점도 있다.

문제점 1: 사용되지 않는 리소스

웹 서비스 상에서 실행 중인 SaaS는 SOA(Service-Oriented Architecture)를 통해 소프트웨어 애플리케이션 간의 통신을 지원한다. 각 소프트웨어 서비스는 서비스 공급자 또는 요청자 역할을 수행할 수 있다. SaaS 서비스 공급자는 공용 브로커를 통해 해당 기능을 다른 애플리케이션에 노출하고 SaaS 서비스 요청자는 다른 서비스의 데이터 및 기능을 통합한다. 서비스 공급자와 서비스 요청자 둘 다 SaaS 서비스를 개발 및 관리하는 데 규모의 경제를 활용한다.

웹 서비스는 리소스가 많거나 적거나 상관 없이 일반적으로 느슨하게 연결된다. 용량에 대한 수요가 올라가거나 내려갈 때 서비스 공급자 및 요청자에 대한 리소스가 낭비되는 것을 방지하기 위해 연결 스위치와 함께 웹 서비스를 구축하여 SaaS 애플리케이션을 보완할 수 있다. 이 스위치는 해당 리소스의 낭비가 특정 레벨에 도달했음을 알리는 경고가 웹 서비스에 수신될 때 느슨한 연결에서 강한 연결로 전환된다.

문제점 2: 상호 운용성 문제

웹에서 인식할 수 있는 클라우드 친화적인 SaaS의 경우 다양한 형식으로 데이터를 가져오거나 내보내는 다양한 공급업체와 동일한 SaaS 애플리케이션을 실행하는 데 어려움을 겪을 수 있다. 다음과 같은 시나리오를 고려해 보자. 매시업하려는 두 개의 SaaS 애플리케이션이 있다. 그 중 하나는 한 공급업체의 클라우드 컴퓨팅 환경에서 실행 중인 산업 표준 API를 사용하며 다른 하나는 또 다른 공급업체의 클라우드 컴퓨팅 환경에서 전용 API를 실행한다. 이 매시업은 리엔지니어링을 수행하지 않는 한 올바르게 작동하지 않는다.

먼저 두 클라우드 컴퓨팅 공급업체 간의 이식성을 해결해야 한다. 두 환경 사이의 통신이 이미 가능한 상태인가? 아니면 두 환경 간의 데이터 통신을 위해 추가 작업이 필요한가? 두 API 유형의 데이터 형식 및 논리가 서로 호환되는가? 아니면 두 애플리케이션 간의 데이터 형식 또는 논리를 변경해야 하는가? 아직까지는 데이터를 가져오고 내보내는 API에 대한 표준이 없지만 IBM과 Amazon은 상호 운용성을 보장하여 좀 더 쉽게 설계 및 관리할 수 있는 매시업을 만들기 위해 함께 노력하고 있다.

테스트, 테스트, 테스트

테스트는 클라우드 컴퓨팅과 SaaS의 안정적인 운용을 보장하기 위한 소프트웨어 개발 작업의 일부이다. 서비스 품질을 높이기 위해 SaaS 서비스 및 애플리케이션에 대한 테스트를 수행해야 한다. 테스트를 시작하려면 다중 웹 브라우저, 운영 체제 및 네트워크 연결과 같은 일반 사용자 환경을 시뮬레이션해야 한다. 그렇지 않으면 잘못된 출발점에서 시작하게 된다. 예를 들어, 한 웹 브라우저에 있는 기능이 다른 웹 브라우저에 없을 수 있다. 기능의 결여는 사용자가 클라우드 컴퓨팅에 있는 SaaS 서비스에 액세스하는 방법이나 사용되지 않는 리소스의 사용 방법에 영향을 미칠 수 있다.

그런 다음 소프트웨어 결함으로 인해 사용자 A가 사용자 B를 가장할 수 있는지 여부와 같은 다중 소유 취약성을 테스트한다. 서버 A가 서버 B를 가장할 수 있는지 여부와 같은 가상화 취약성을 테스트한다. 그 밖에도 시스템을 오버로드하지 않고 사용자가 사용량을 확장할 수 있는 용량, Pay As You Go 환경에서 개인용 키를 가장 효과적으로 관리하는 방법 및 클라우드에서 백업 및 복구해야 하는 데이터의 용량 등도 테스트해야 한다. SaaS 모델에서 버전 제어 및 변경 관리가 고객 활동이 아닌 경우에도 테스트를 수행하여 이러한 항목이 적절하게 확인되는지 확인해야 한다. 또한 SaaS가 수평적 애플리케이션이므로 SaaS가 수직적 요구를 충족하는지 여부도 중요하다.

클라우드 환경의 SaaS 제품은 일반적인 데이터 센터 환경에 전개된 제품과는 다른 전개 및 사용 조건을 가지고 있다. 따라서 클라우드 기반 애플리케이션에 대한 테스트 요구 사항도 달라진다. 예를 들어, SaaS 제품은 고객이 모르는 채로 변경될 수 있다. 중앙 집중식 관리의 경우 간단한 업데이트를 좀 더 쉽게 수행할 수 있기 때문에 다른 모델보다 SaaS 전개 모델에서 릴리스가 더 많이 발생한다. 따라서 SaaS 제품에 대한 고객 지원 문제의 경우 주기가 짧은 편이다. 하지만 릴리스 주기가 짧기 때문에 테스트를 충분히 수행하지 않은 채로 계획 없이 변경 사항을 적용하게 되면 고객에게 큰 불편을 줄 수 있다.

테스트 인프라를 구입, 관리 및 운용하려면 많은 비용이 든다. SaaS 인프라가 확장되는 동안 기능, 회귀, 성능 및 스트레스 테스트를 설정하는 데 드는 비용도 저렴하지 않다. SaaS 제품을 최종 릴리스하기 전에는 항상 잠재 고객의 피드백을 받기 위해 알파 및 베타 테스트 환경을 설정해야 한다. 따라서 저렴한 요금제로 운영하면서도 높은 테스트 비용을 회수할 수 있을 뿐만 아니라 수익도 올릴 수 있도록 시장 점유율이 높아야 하며 이 목적을 달성하기 위한 계획도 충실히 세워야 한다.

보안 고려 사항

장애 복구, 개인용 키 관리 및 제어 활동 공개는 Pay On Demand 인프라에서 제공되는 SaaS 환경과 관련된 보안 고려 사항이다. 적절한 계획 및 구현이 없을 경우 SaaS 및 클라우드 컴퓨팅의 경제적 장점보다 보안 비용이 훨씬 클 수 있다.

장애 복구

2008년 초기에 Amazon의 S3 및 EC2가 3시간 동안 중단된 사건이 발생한 이후로 장애 복구에 대한 계획은 매우 중요한 문제로 간주되고 있다. 시스템이 중단된 동안 고객은 영업 기회를 놓쳤으며 경영진은 중요한 비즈니스 정보에 액세스할 수 없었다. 이로 인한 영향은 SLA에서 제공하는 데이터 복구 및 서비스 신용의 범위를 크게 초과했다.

중단이 발생할 때까지 기다리는 대신 고객은 자체적으로 보안 테스트를 수행하여 SaaS 서비스 공급자가 데이터를 얼마나 잘 복구할 수 있는지 확인해야 한다. 이 테스트는 간단하게 수행할 수 있다. 공급자에게 저장되어 있는 사용자 자신의 데이터에 대한 복구를 요청하는 이메일을 보낸 후 공급자가 데이터를 복구하는 데 걸린 시간을 확인한다. 복구 시간이 너무 길면 공급자에게 복구하는 데 많은 시간이 소요된 이유를 묻고 다양한 시나리오에서 어느 정도의 서비스 신용을 얻을 수 있는지도 확인한다. 데이터의 용량이 많음에도 불구하고 매우 신속하게 복구되었다면 체크섬을 수행하여 원래 데이터와 일치하는지 확인한다. 사용량이 많을 때와 적을 때를 구분하여 두 시간대 모두에서 복구 테스트를 수행해야 한다.

데이터 보호

현재 보고 있는 로컬 컴퓨터의 데이터를 암호화한 후 클라우드에서 볼 수 없는 원격 서버에 있는 데이터에 암호 해독 키를 사용하여 액세스하는 신뢰할 수 있는 알고리즘에 대한 보안 테스트를 수행해야 한다. 공급업체에서 고유한 암호화 알고리즘을 사용하기 때문에 서버에서 액세스가 거부되었거나 암호 해독 키가 손상된 경우 사용자가 데이터에 액세스해서 읽을 수 없는 상황이 발생한다. 이 경우에는 사용 중인 암호화 알고리즘이 무엇인지 공급업체에 확인해야 한다.

클라우드에 있는 데이터와 관련된 잠재적 문제점도 있다. 데이터를 보호하기 위해 사용자가 고유한 개인용 키를 관리하려면 공급업체에 개인용 키 관리에 대해 문의해야 한다. Amazon에서는 사용자가 등록한 경우 인증서를 제공한다.

제어 활동 공개

일부 공급자는 SaaS 환경에서 관리되는 제어 활동에 대한 자료를 공개하고 일부 공급자는 제어 활동에 대한 감사 정책을 가지고 있다.

제어 활동 및 프로세스를 고객에게 공개하는 것과 관련하여 SAS 70 Type II 인증을 받았는지 공급자에게 확인한다. 이 인증은 클라우드 컴퓨팅 내의 액세스 및 미러링 데이터 센터를 포함한 데이터 센터에 대한 종합적인 변경 관리 문서, 백업 및 복구 요구 사항, 장애 복구 요구 사항 및 물리적 레벨 보안 요구 사항을 보장한다. 이 인증을 받지 않은 경우에는 제어 활동을 관리하는 방법에 대한 정보를 어떻게 확인할 수 있는지 공급자에게 문의해야 한다. 공급자가 제공하는 프로시저의 품질에 만족할 경우에는 인증을 확인하지 않아도 된다.

결론

이 기사는 클라우드 컴퓨팅에서 SaaS를 개발 및 관리하는 계획을 수립하는 데 필요한 정보를 제공한다. Pay On Demand 인프라에서 저렴한 요금제로 서비스를 사용하고자 하는 잠재적 사용자의 요구를 충족하는 것은 프로젝트 팀의 개발자 및 기타 구성원의 목표인 동시에 과제이기도 하다. 잠재적 보안 문제점을 비롯한 SaaS 개발 및 관리와 관련된 문제점을 인식하고 해결하게 되면 팀의 수준을 크게 도약시킬 수 있다. 이러한 모든 작업은 IBM Rational Web Developer WebSphere Software 및 IBM Rational ClearQuest를 통해 IBM AIM으로 빌드 중인 SaaS의 결함 및 애플리케이션을 추적하여 수행할 수 있다.

필자소개

Judith M. Myerson은 시스템 아키텍트이자 엔지니어이다. 미들웨어 기술, 엔터프라이즈급 시스템, 데이터베이스 기술, 애플리케이션 개발, 네트워크 관리, 보안, RFID 기술 및 프로젝트 관리에 관심을 가지고 있다.

 

출처 : 한국 IBM
제공 : DB포탈사이트 DBguide.net

728x90

댓글