A. 클라우드 개요
1. 클라우드란?
클라우드란 언제나, 어느곳에서나 원하는 만큼의 IT 리소스를 손쉽게 사용할 수 있게 하는 서비스입니다. 이러한 클라우드 컴퓨팅 환경이 널리 보급 되면서 기업체에서는 온프레미스 IT 솔루션 대신 aaS(as-a-Service) 형태로 제공되는 소프트웨어, 플랫폼, 컴퓨팅 인프라로 전환하기 시작했습니다. 클라우드의 서비스 종류는 IaaS, Paas, SaaS가 있습니다.
2. aaS(as-a-Service)란?
서드파티 벤더(AWS, Google, 등등)가 제공하는 클라우드 컴퓨팅 서비스를 의미합니다.
3. 클라우드의 이점
클라우드를 사용하게 되면 기업은 주요 비즈니스 기능, 고객 관계 등 더 중요한 업무에 집중할 수 있습니다. 이 3가지 클라우드 컴퓨팅 모델 각각에서는 고객이 관리해야 할 온프레미스 IT 인프라스트럭처가 줄어듭니다.
고객이 사용자 및 관리자로서 갖는 책임은 온프레미스 IT 인프라스트럭처에서 가장 큽니다. 따라서 필요에 따라 각 구성 요소를 관리, 대체, 업데이트하는 것도 고객의 몫입니다. 그러나 클라우드 컴퓨팅에서는 인프라스트럭처의 일부 또는 전체를 서드파티 서비스 제공업체가 맡을 수 있습니다.
B. IaaS (Infrastructure as a Service)
1. IaaS 란?
클라우드 호스팅 IT 인프라를 온디맨드 방식으로 액세스 합니다. 서버, 네트워킹 리소스, 스토리지 용량, 시각화 기능 등이 포함되며 고객은 온프레미스 하드웨어와 비슷한 방식으로 IT 인프라를 프로비저닝, 구성하여 사용할 수 있습니다.
사용자는 데이터, 애플리케이션, 운영 체제, 런타임, 미들웨어에 대한 책임을 가지며 제공업체는 서버, 가상화, 스토리지, 네트워크에 대한 액세스 권한을 부여합니다. 즉, 고객이 온프레미스 데이터 센터를 업데이트하거나 유지 보수할 필요 없습니다. 대신 고객은 대시보드나 애플리케이션 프로그래밍 인터페이스(API)를 통해 인프라에 액세스하고 이를 제어합니다.
비용의 지불은 사용한 만큼만 지불하면 되는 Pay as you go 방식입니다. 즉, 필요한 구성 요소만 구매하여 사용하고 필요에 따라 확장하거나 축소할 수 있습니다.
여담으로, 해당 유형의 서비스가 최초의 aaS 서비스 유형입니다.
2. IaaS의 이점
뛰어난 가용성
IaaS는 필요에 따라 컴퓨터 리소스를 운영할 수 있습니다. 트래픽의 급격한 증가 또는 감소시에 확장 또는 축소가 가능합니다.
초기비용의 감소
온프레미스 데이터 센터를 도입하고 유지 보수를 할 필요가 없어 초기에 대규모 설치 비용 및 간접 비용의 부담이 줄어듭니다.
신속한 장애대응
IaaS는 다른 위치에 이중 서버를 배치하여 물리적 재해 또는 장애시 가용성을 보장하고 다운타임을 줄일 수 있습니다.
지연 시간 단축 및 성능 향상
IaaS 제공업체는 대개 서로 다른 위치에 데이터 센터를 운영합니다. 따라서 사용자에게 물리적으로 더 가까운 곳의 서비스와 애플리케이션을 찾아 이용함으로써 최고의 성능을 누리고 지연 시간을 최소화할 수 있습니다.
통합적인 보안
온라인 측면에서는 암호화를 통해 IaaS 제공업체의 첨단 보안 및 보호 기능을 활용할수 있으며 오프라인 측면에서는 데이터 센터의 차원 높은 현장 보안을 보장할 수 있습니다.
이 밖에도 온프레미스의 형태보다 더 빠르게 최신기술을 이용할 수 있단 장점이 있습니다.
3. IaaS의 제약
IaaS가 여러 측면에서 이점이 많지만 클라우드로 전환시 몇 가지의 과제를 해결해야 합니다.
오래된 시스템 업그레이드
전면적인 클라우드 마이그레이션에 앞서 레거시 시스템 및 애플리케이션을 검토하고 업그레이드해야합니다. 오래된 컴퓨팅 시스템의 다수는 클라우드 기반 서비스를 지원하지 않기 때문입니다.
새로운 교육의 필요성
새로운 시스템에는 각기 다른 특성, 운용법이 있습니다. 이를 위해 추가적인 교육과 리소스가 필요할 수 있습니다.
새로운 보안 위협
온프레미스 시스템에서 클라우드로 이동시 새로운 위협을 수반합니다. 사용자는 새로운 위협에 대한 보안 시스템과 해결 전략을 검토하고 업데이트 해야합니다.
4. IaaS 활용 사례
재해 복구
여러 위치에 이중 서버를 두지 않고 다양한 지역에 있는 클라우드 제공업체의 인프라스트럭처에 재해 복구 솔루션을 구축할 수 있습니다.
소프트웨어 개발
온프레미스보다 더 빠르게 소프트웨어 개발 및 테스트 인프라스트럭처를 구축할 수 있습니다.
전자 상거래
IaaS는 급격한 트래픽 증가가 빈번하게 일어나는 온라인 유통업체에 적합한 선택입니다. 성수기에 손쉽게 확장할 뿐만 아니라 연중무휴 24시간 가동되는 유통업계의 특성에 부합하는 우수한 품질의 보안을 보장할 수 있습니다.
스타트업
스타트업은 온프레미스 IT 인프라스트럭처에 막대한 자본을 투입해야 하는 부담 없이 IaaS와 그 이점을 활용할 수 있습니다. 초기에 대규모 하드웨어 투자나 관리 오버헤드를 감수하지 않고도 엔터프라이즈 환경에 최적화된 데이터 센터 및 그 모든 이점을 누릴 수 있습니다.
C.PaaS (Platform as a Service)
1. PaaS란?
애플리케이션 개발, 실행, 관리를 위한 클라우드 기반 플랫폼을 사용자에게 제공합니다.
클라우드 제공업체가 자체 인프라에서 소프트웨어 및 하드웨어를 호스팅합니다. 또한, 인터넷 연결을 통해 통합 플랫폼 솔루션을 스택 또는 서비스의 형태로 사용자에게 제공합니다.
PaaS 제공업체가 컴퓨팅 환경을 생성하고 구축하기 때문에 사용자는 소프트웨어 업데이트를 구축하거나 하드웨어 유지 보수를 관리하지 않고도 애플리케이션 코딩, 빌드, 관리까지 해경할 수 있습니다.
2. PaaS의 이점
신속성
사용자는 PaaS를 통해 온프레미스 플랫폼에서 가능한 수준보다 더 빨리, 비용효율적으로 애플리케이션을 빌드, 테스트, 실행, 구축, 업데이트, 확장할 수 있습니다.
협업 간소화
PaaS는 클라우드 기반서비스이므로, 운영팀과 개발팀이 어디서나 필요한 툴에 액세스할 수 있습니다.
최신 기술 테스트 및 적용
PaaS에서는 최신 리소스에 대한 액세스가 가능합니다. 즉, 사용자는 필요한 인프라에 본격적으로 투자하기에 앞서 새로운 운영체제, 툴, 언어를 테스트 할 수 있습니다. 이는 사용자 입장에서 새로운 기술에 대한 리스크를 낮춰줍니다.
확장 기능
플랫폼 서비스인 PaaS에서는 필요할 때 애플리케이션을 구축, 테스트, 실행, 스테이징하기 위한 추가 용량을 구매할 수 있습니다.
관리 부담 감소
PaaS는 관리 작업, 인프라 관리 및 업데이트를 클라우드 서비스 제공업체가 담당합니다.
출시 일정 단축
개발팀이 빠르게 애플리케이션을 개발, 테스트, 관리할 수 있습니다.
3. PaaS의 제약
오래된 시스템 통합 제약
클라우드 도입을 지원하지 않는 레거시 시스템을 사용하는 경우 새로운 애플리케이션을 통합할 때 PaaS 사용에 따른 어려움을 겪을 수 있습니다.
런타임
PaaS에는 개발자가 사용하는 프레임워크 및 언어에 완전히 최적화된 솔루션이 없을 수도 있습니다.
데이터 보안
서드파티 서버를 사용하면 또 다른 보안리스크에 노출될 수 있습니다. 이 경우 서드파티 시스템과 통합할 수 있는 호환 가능한 솔루션을 찾아야 하므로, 선택 가능한 보안 옵션이 제한적일 수 있습니다.
운영상의 제약
PaaS 솔루션은 맞춤형 클라우드 운영, 특히 관리 자동화 워크플로우와 완전히 통합되지 않을 수도 있습니다. 그러면 운영 기능에 지장을 주고 사용장의 범위를 제한하게 됩니다.
4. PaaS 활용 사례
애자일 개발 및 DevOps
PaaS 솔루션은 대개 DevOps 툴체인 요구 사항을 모두 다룹니다. 그리고 기본 제공되는 자동화를 통해 상시 통합 및 상시 제공, 즉 CI/CD를 지원합니다.
API 개발 및 관리
팀에서 앱 간의 데이터 공유 및 기능을 위해 API를 개발, 관리, 실행, 보호하는 데 필요한 기본 제공 프레임워크가 PaaS에 있습니다.
사물 인터넷(IoT)
PaaS는 개발자가 IoT 애플리케이션 및 실시간 데이터 처리에 사용하는 다양한 프로그래밍 언어, 툴, 애플리케이션을 지원합니다.
클라우드 네이티브 개발 및 하이브리드 클라우드
PaaS는 컨테이너 쿠버네티스, 마이크로서비스, 서버리스 컴퓨팅 등의 클라우드 네이티브 개발 기술을 지원합니다. 따라서 개발자가 한 번만 빌드한 다음 퍼블릭/프라이빗 클라우드와 온프레미스 환경에서 일관성 있게 구축하고 관리할 수 있습니다.
D.SaaS (Software as a Service)
1. SaaS란?
SaaS는 클라우드 애플리케이션 서비스라고도 불립니다. 이는 가장 통합적인 클라우드 컴퓨팅 서비스 형태입니다. 제공업체가 웹 브라우저를 통해 100% 관리하는 애플리케이션을 제공합니다. 제공업체가 소프트웨어 업데이트 및 버그 수정에서 일반 소프트웨어 유지 보수까지 모두 담당하여 처리합니다.
사용자는 API 또는 대시보드를 통해 앱에 연결합니다. 따라서 개별 시스템에 소프트웨어를 설치할 필요가 없습니다. 이를테면 사용자가 모든 시스템이나 웹 브라우저에서 Gmail 또는 Outlook 이메일 계정에 로그인할 수 있습니다.
SaaS는 소프트웨어 설치 및 업데이트를 담당할 리소스가 부족할시 고려할 옵션입니다.
2. SaaS의 이점
편의성
모든 인프라와 애플리케이션 관리를 벤더가 담당합니다. 사용자는 계정을 생성하고 구독료를 지불한 후 서비스를 사용하면 됩니다.
용이한 확장성
사용자를 등록하고 비용을 지불하는 방식으로 사용자를 추가할 수 있습니다. 또한 부담 없는 비용으로 추가 스토리지도 구매할 수 있습니다.
리스크 최소화
대부분의 SaaS 제품은 고객이 구매하기 전에 소프트웨어를 사용해 볼 수 있는 무료 평가판 기간을 제공합니다.
생산성
시간 및 장소의 제약 없이 인터넷 연결 및 웹 브라우저가 있으면 어떤 디바이스에서도 SaaS 애플리케이션에 액세스할 수 있습니다.
통합
SaaS 솔루션은 다른 소프트웨어나 서버를 구매하지 않고도 다른 오퍼링과 수월하게 통합됩니다.
편의성
SaaS 다운로드 또는 설치할 필요가 없으므로 사용이 용이합니다.
3. SaaS의 제약
데이터 보안
SaaS 데이터 보호 및 보안이 온프레미스 데이터 스토리지 때문에 문제가 될 수 있습니다. 따라서 사용자는 SaaS 서비스를 이용하면 올바른 보안 솔루션을 확보해야 합니다.
맞춤 구성 제약
SaaS 서비스는 통합, 기술, 기능에 대한 맞춤 구성을 최소한의 수준에서 허용합니다. 따라서 맞춤 구성 가능한 기능을 추가하거나 관리하려면 상당한 제약이 있습니다.
상호 운용성
다수의 SaaS 애플리케이션은 개방형 통합을 지원하지 않습니다. 따라서 통합 기능이 있는 서비스를 찾는 것이 쉽지 않습니다.
제어 부재
최종 제어권을 클라우드 벤더사에 넘기는 경우가 많습니다. 따라서 신뢰할 수 있는 제공업체를 찾는것이 중요합니다.
E. IaaS, PaaS, SaaS의 특징
1. 차이점
- 온프레미스: 고객이 애플리케이션, 데이터, 미들웨어, 런타임, 운영 체제, 서버, 스토리지, 시각화, 네트워킹 등 모든 것을 관리합니다.
- IaaS: 고객은 애플리케이션, 데이터, 미들웨어, 런타임, 운영 체제를 관리합니다. 서비스 제공업체는 가상화, 서버, 스토리지, 네트워킹을 관리합니다. IaaS는 복잡한 프로젝트에 필요한 확장성을 제공합니다. 아울러 접근성이 뛰어나며 맞춤 구성이 가능합니다.
- PaaS: 고객은 애플리케이션과 데이터만 관리합니다. 서비스 제공업체는 그밖의 모든 것, 즉 운영 체제, 런타임, 미들웨어, 서버, 가상화, 스토리지, 네트워킹 등을 맡습니다. PaaS는 웹 애플리케이션을 위한 최상의 솔루션으로 최적화, 중앙 집중화, 비용 절감 이점을 제공합니다.
- SaaS: 서비스 제공업체가 애플리케이션, 데이터, 미들웨어, 런타임, 운영 체제, 서버, 스토리지, 시각화, 네트워킹을 비롯한 모든 것을 관리합니다. SaaS는 온디맨드 방식으로 간소화의 이점을 제공하고, 시간을 절감하며, 간단하고 예측 가능합니다.
2. 각 서비스 대표 예시
IaaS의 예
- Amazon Web Services(AWS): 온디맨드 클라우드 컴퓨팅 제품이며, 정기적인 서브스크립션의 형태로 구매합니다. Amazon에서 관리하며, 기업이 데이터를 저장하고 제공하는 데 유용합니다.
- Microsoft Azure: Microsoft 데이터 센터의 네트워크를 통해 애플리케이션을 빌드, 테스트, 관리하게 해주는 클라우드 컴퓨팅 제품입니다.
- Google Cloud: 기업이 Windows, SAP, Oracle을 네이티브 방식으로 실행하는 데 사용하는 클라우드 컴퓨팅 제품입니다.
PaaS의 예
- Google App Engine: 개발자는 이를 사용하여 웹 애플리케이션을 빌드하고 Google의 클라우드 기반 데이터 센터에서 호스팅합니다.
SaaS의 예
- HubSpot: 기업에서 고객과 소통하고 고객을 유지하는 데 사용하는 CRM, 세일즈, 마케팅, 서비스 SaaS 플랫폼입니다.
- Dropbox: 파일 공유 SaaS 툴로서 한 조직이나 그룹에 속한 여러 사용자가 파일을 다운로드하고 업로드할 수 있습니다.
- DocuSign: 기업에서 서명이 필요한 계약서 및 문서를 전송할 수 있습니다. JIRA: Atlassian의 프로젝트 관리 소프트웨어입니다.
[Algorithm] 철학자들의 만찬 - 다익스트라 제안 알고리즘