훤히 보이는 클라우드 컴퓨팅 - 2

김재현·2022년 12월 9일
0

프로그래밍 개념

목록 보기
5/6

훤히 보이는 클라우드 컴퓨팅

3. 클라우드 컴퓨팅 서비스, 어떻게 이루어지나?

  • 클라우드 컴퓨팅은 크게 인프라스트럭처, 플랫폼, 서비스, 응용 소프트웨어 4가지 영역으로 나눌 수 있음

3-1. IaaS

  • 클라우드 컴퓨팅을 대중의 관심 속으로 끌어 올린 주인공.

아마존의 경우

  • 클라우드 컴퓨팅 서비스를 선도적으로 내놓고, 다양한 기업들을 고객으로 확보하고 있음.
    • EC2 : 가상의 서버 자원 제공하고 사용한 만큼의 비용 청구하는 서비스.
      새로운 가상 서버를 빠르게 생성할 수 있고, 필요에 따라 컴퓨팅 용량을 조절할 수 있음.
    • S3 : 데이터 저장용 가상 저장 장치. 데이터를 쉽게 검색할 수 있음.
    • 아마존 심플 큐 서비스(Amazon Simple Queue Service) : 메시지 기반 방법론을 이용해 통신하는 분산 응용 소프트웨어를 개발할 수 있도록 개발자들에게 인터넷으로 메시지를 보내고 받는 시스템 제공.
    • 심플 DB : 데이터베이스 서비스. 다른 데이터베이스 서비스와 다르게 EC2, S3 등과 연계되어 작동하기 때문에 유기적인 클라우드 컴퓨팅 서비스를 이용할 수 있는 장점. 일반적인 데이터베이스에 비해 유지/보수가 쉽고 가격도 저렴.

사용 예시

  • 매 해 티켓 예매 사이트에서 이용자 폭주가 발생. 하지만 한 달 남짓되는 예매 기간동안만 사용되는 사이트기에 추가 장비 구매는 예산낭비이며, 그나마도 예매 오픈 후 20~30분이면 표가 매진되기 때문에 장기간의 사이트 유지 필요는 없음.
  • 이럴때는 IaaS가 좋은 해결책. 서비스를 제공하는 기업과 계약을 체결해, 원하는 시스템 사양과 기간, 그리고 "접속자 수가 폭주할 때 시스템을 자동으로 확장"하는 조건만 명시하면 됨.
    이미 예약 소프트웨어는 보유하고 있으므로, 빌린 시스템 서버에 탑재한 뒤 사용자에게 공개하면 됨.
  • IaaS 서비스 제공 업체의 기술로 사용자가 폭주할 때는 시스템이 자동으로 확장됨.
    간단한 계약으로 사용자 폭주에 대응할 수 있고, 사용한 만큼만 요금 지불하면 모든 문제 해결.

3-2. PaaS

  • 클라우드 플랫폼 서비스
    • 새로운 응용 소프트웨어를 개발하거나 운용할 플랫폼을 서비스.
    • 플랫폼 : 새로운 응용 소프트웨어를 개발할 때 필요한 API(Application Programming Interface)나 테스트할 때 필요한 환경을 말함.
    • 사용자나 서비스 제공자가 새로운 응용 소프트웨어를 개발할 때 PaaS의 개발 환경과 API를 이용해 쉽게 개발, 개발된 응용 소프트웨어를 PaaS에서 운용까지 가능.
    • 소프트웨어 개발하거나 운용할 수 있도록 필요한 컴포넌트 API, 개발도구, 데이터베이스 API, 과금 모듈 등이 제공.
  • 대표적인 PaaS : 구글의 앱엔진. 번지랩스의 커넥트 등. (더 추가할 수도)

구글의 앱엔진

  • 구글 인프라 위에 웹 응용소프트웨어를 구축하고 호스팅을 할 수 있도록 하기 위한 플랫폼.
  • 간단한 UI로 복잡하거나 어려워 보이는 이미지 탈피.
  • 구글 베이스 : 데이터베이스 서비스.

마이크로소프트의 애저와 라이브

  • 클라우드 컴퓨팅 서비스 플랫폼 윈도 애저 Windows Azure
  • 사업에 필요한 거의 모든 서비스를 모듈 형태로 갖추어놓고, 사용자는 모듈 중 자신이 원하는 것만 선택&조립하여 새로운 서비스를 구성하여 사업을 시작할 수 있다.
    • 결제서비스, 게시판, 회원 관리, 전자우편, 데이터베이스 등 기업 운영에 필요한 거의 대부분의 서비스가 포함.
    • 물론 대여임.

사용 예시

  • 좋은 아이디어가 있지만 사업을 위한 자금도 없고, 서비스 사이트를 구축하기 위해서는 필요한 기술도 해야할 일도 너무 많음. 그럴때 PaaS 서비스를 사용하면 쉽게 사업 아이템으로 구성 가능함.
  • 고객 관리, 광고, 우편 서비스 등 이미 구축되어 있는 서비스를 단순히 선택해 추가하는 형태로 가져다 쓰고, 대용량 데이터 처리를 쉽게 할 수 있게 하는 서비스를 통해 저장 및 검색을 지원할 수 있다.
    추가로 새로 만들어진 사이트에 대해서는 초기 비용이 거의 들지 않는다. 가입자가 일정 수준 이상이 되면 그때부터 고객 수에 비례한 비용을 지불하면 됨.

3-3. SaaS

  • 소프트웨어 유통 방식의 변화를 가져옴.
  • 사용자가 필요한 소프트웨어를 인터넷으로 서비스받을 수 있도록 하는 최신의 소프트웨어 배포 모델.
    SaaS 플랫폼 공급자나 소프트웨어 서비스 제공자가 응용 소프트웨어를 서버에 설치, 인터넷을 통해 여러 사용자가 자신의 환경에 맞게 설정하여 사용할 수 있도록 하는 기술
  • 사용자가 인터넷에서 소프트웨어를 쓰고 그에 대한 비용만 지불. 복잡한 소프트웨어와 하드웨어 관리라는 부담에서 벗어날 수 있음. 초기 투자비용이 거의 없고 시스템을 관리할 필요도 없으며, 계약된 만큼만 요금을 지불하면 됨.
  • 패키지화된 응용 소프트웨어를 공급하고 자신이 서버에 설치하여 사용하도록 하는 호스티드 응용 소프트웨어 방식
    소프트웨어 및 각종 자원을 하나의 서버에 설치하고 인터넷으로 여러 사람에게 서비스로 제공되는 소프트웨어 온디맨드 방식

복합 서비스 사례

  • 각기 특화된 분야의 서비스만 제공하던 것에서 점차 영역을 확대해나가고 있음.

4. 클라우드 컴퓨팅을 만드는 기술들

  • 확장성, 가용성, 보안성 등의 요소들이 제공되어야 함.

4-1. 클라우드 시스템을 위한 기술적 요소들

확장성

  • 언제든지 원하는 만큼의 컴퓨팅 자원을 서비스받을 수 있다는 것. 적시에 필요에 맞게 IT 자원을 확장할 수 있다는 의미.
  • 클라우드 컴퓨팅 서비스를 계약했다 하더라도 사용자들은 수시로 적절한 용량을 추가로 구매해 이용할 수 있음.
  • 만약 기존의 온프레미스 방식, 직접 장비를 사서 서버 및 스토리지를 구축했다면 구매부터 적용까지 굉장히 오랜 시간이 걸리게 됨. 하지만 클라우드 컴퓨팅 방식을 사용하면 이런 문제를 단번에 해결할 수 있다.
  • 확장성 = 탄력성. 기존 성능에 영향을 미치지 않고 처리 용량을 빠르게 증가 or 감소

가용성

  • 클라우드 컴퓨팅 서비스를 제공하는 시스템이 항상 서비스할 수 있는 상태여야 함.
    아주 짧은 시간이라도 클라우드 서비스를 공급받지 못하면 기업이나 개인들의 업무가 마비되고 사업에 큰 타격을 입을 수 있음.
  • 기본적으로 클라우드 컴퓨팅 서비스는 다른 곳에 있는 컴퓨팅 자원을 빌려 쓰는 것이지만, 마치 내가 관리하듯 시스템이 정교하게 관리, 운용된다는 전제가 깔려야 함. 서비스 공급 업체에게도 가용성이 숙제인 것은 마찬가지.
    • 실제로도 여러 서비스 중단 사태가 벌어지기도 했다.
  • 하지만 클라우드 서비스의 가용성은 내부적으로 사용하고 있는 시스템에 비교해도 굉장히 높다.
    기본적으로 가용서이 높은 구조로 설계되엇으며, 플랫폼이나 응용 소프트웨어를 충분히 검증하고 있기 때문. 또한 현실적으로 가용서 100% 실현은 불가능하다는 의견도 있다.
  • 이와 별개로 서비스 사용자는 확실하고 건실한 사업자를 선택하며, 예측하지 못하는 사고에 대응할 준비책을 마련해 두어야 할 것이다.

보안성

  • 가장 예민하고 핵심적인 요소. 데이터의 보안성을 확보해야 클라우드 서비스가 의미를 가지게 되며, 만약 보안성에 대한 신뢰가 구축되지 않는다면 누구도 이용하지 않으려 할 것.
  • 현실적으로 클라우드 컴퓨팅 사용자는 자신의 데이터가 어디에 위치하는지, 어디로 가는지 통제할 수 없다. 심지어 자신의 데이터가 위험에 처해도 그것을 직접 막거나 다루기 어렵다. 또한 경쟁 업체의 소프트웨어나 데이터와 함께 있을 가능성도 매우 크다. → 이런 특성 때문에 보안 문제가 끊임없이 제기되고 있다.
  • 보안성 확보는 기업의 사활을 걸만큼 중요. 개인 정보 유출 사고, 데이터가 손상, 사용자 동의 없는 수사기관으로 정보 제공 등 대규모 소송사태가 벌어질 수도 있다.

기타

  • 신뢰성 확보를 위한 기술이 절대적으로 필요. 사용자 입장에서는 본인의 중요 연구나 업무를 위한, 혹은 개인적으로 소중한 데이터 등을 외부에 통째로 맡기는 것이기 때문.
    • 신뢰성 제공을 위해 컴퓨팅 프로세스에 입력되는 작업들이 적법한지 판단하는 등 해킹에 대비한 기술을 제공해야 함.
    • 인프라에 저장되어 있는 데이터의 일부 내용이 파손/유실을 대비한 자동 백업 및 원본 데이터와 백업 데이터 간 데이터 일치성을 보장하기 위한 데이터 싱크 기능, 원본 데이터 유실이나 에러를 대비한 복구 기능을 제공해야 함.
  • 대규모 컴퓨팅 환경을 기반으로 비용 절감 효과를 거두기 위해 IT 자원의 활용률을 최대한 높이는 기술 역시 필요.
    활용률 : 클라우드 컴퓨팅 인프라를 구성하고 있는 자원들을 집약적으로 운영할 수 있게 하는 기술. 서비스를 운영하는 차원의 비용 절감을 위해 반드시 갖추어야 함.
    • 활용률을 관리하지 않는 시스템에서는 서비스 부하가 가장 높을 때를 고려해 시스템 자원을 할당하기 때문에 낮은 활용률을 보임.
      여러 시스템 작업들을 한 시스템으로 모으고 남은 시스템 자원들을 반납하면 리소스 낭비를 줄이고 비용을 절감하며 에너지 절약도 가능한, 여러 장점이 있음.
  • 중앙 집중 형태로 데이터를 저장한다는 특징. 여러 사람이 하나의 데이터를 공유하고 협업으로 업무를 진행할 수 있게 됨. 데이터 뿐 아니라 작업을 공유하는 솔루션 제공.
  • 사용자들의 이동성 보장. 클라우드에 접근할 수 있는 장소의 제한이 없어야하고, 어떤 단말기에서도 동일한 작업을 할 수 있는 인터페이스 제공.

4-2. 클라우드 컴퓨팅을 위한 기본 구조

  • 클라우드 컴퓨팅 사용자와 서비스의 연관관계
    사용자 → 사용자 인터페이스 → 시스템 관리 → 프로비저닝 서비스 → 클라우드 서버 → 웹 응용 소프트웨어
  • 사용자 인터페이스를 통해 사용자가 클라우드 컴퓨팅 서비스를 시작하면, 클라우드 시스템 과리 부분은 요청받은 내용에 따라 적절한 자원을 찾고, 프로비저닝(Provisioning. 클러스터에서 사용되지 않는 자원을 파악하고 필요할 때 자원을 할당해 서비스에 필요한 자원 적절히 제공하는 기술) 서비스는 서비스에 필요한 자원을 제공해 웹 응용 소프트웨어 형태로 서비스한다.
  • 클라우드 시스템은 논리적으로 여러 계층으로 나뉘어져 각자의 역할을 수행하는 구조로 되어 있음.
    • 하드웨어 계층 : 클라우드 서비스를 제공하기 위해 실제 형태를 갖는 다양한 물리적 장치들로 구성.
      서버 - 컴퓨팅 능력 제공. 스토리지 - 데이터 저장. 네트워크 장치 - 통신 지원.
    • 가상화 계층 : 다양한 사용자의 요구 사항과 클라우드 서비스 요구에 가장 적합한 형태로 하드웨어를 사용할 수 있도록 각 물리적 자원을 가상화해 유연하게 사용할 수 있도록 함. 가상화할 하드웨어 특성에 따라 서버 가상화, 스토리지 가상화, 네트워크 가상화로 분류.
      가상화된 자원들은 필요에 적합한 형태로 활용되기 위해 하나의 관점에서 통합, 관리될 필요가 있음. → 클러스터 관리 계층.
    • 클러스터 관리 계층 : 다양한 하드웨어 장치들을 관리하고, 이들의 상태를 지속적으로 모니터링하며, 각 하드웨어 장치 위에 설정된 가상화된 자원 역시 관리 및 모니터링
      • 관리 및 모니터링 상황을 기반으로 사용자가 요구하는 서비스를 제공하기 위해 필요한 자원을 가장 적합한 형태로 제공하는 프로비저닝을 수행
      • 사용자의 직접 요구와 달리 서비스 요청의 원활한 처리를 위해 간접적으로 요구되는 자원처리
      • 사용자가 데이터 저장을 요구할 때, 클라우드 시스템은 가상화된 파일 시스템이나 데이터베이스 시스템 제공. 추가 확장의 소요가 있을 때, 클러스터 관리 계층은 이들에게 필요한 자원을 제공.
    • 분산 시스템 계층 : 분산 데이터 관리 및 분산 파일 시스템.
      언제든지 확장 가능하고, 고성능의 저장 서비스를 제공하기 위해 여러 컴퓨팅 노드(Node. 클러스터를 구성하는 시스템 하나하나)들로 구성된 분산 시스템 형태를 취하고 있음.
    • IaaS 형태의 클라우드 서비스는 물리 하드웨어/가상화/클러스터 관리 계층을 통해 서비스가 가능하지만, PaaS 형태의 클라우드 서비스는 새로운 서비스를 개발할 수 있는 환경을 제공하는 계층이 더 필요 → 서비스 플랫폼 계층
      서비스 플랫폼 계층 :
      • 규모가 큰 작업을 빠른 시간 내에 효율적으로 처리할 수 있도록 하는 분산 병렬 처리 환경
      • 협업 플랫폼
      • 다양한 서비스를 상호 연동해 새로운 서비스 구성 가능하게하는 상호 연동 플랫폼
      • 서비스 개발 시 내부 활용하기 위한 호스티드 데이터베이스 등 포함.
    • SaaS 플랫폼 : SaaS 형태의 클라우드 서비스를 제공하기 위한 계층.
      • 여러 사용자 지원을 위한 멀티테넌시(Multi-tenancy. 서비스나 시스템 같은 자원을 고유하며 여러 사용자를 지원)정책에 따라 하부의 가상화 계층이나 분산 시스템 계층을 자동으로 관리하기 위한 계층.

4-3. 가상화 기술

  • 가상화 Virtualization : 소프트웨어 기술을 활용해 물리적 자원을 논리적으로 추상화홰 물리적 한계에 종속되지 않고 원하는 형태로 해당 자원을 분리, 통합할수 있게 하는 기술.
    • 하나의 시스템을 논리적으로 분할해 여러 개의 논리적 시스템으로 만들거나, 여러 개의 시스템을 커다란 하나의 시스템처럼 만드는 것.
    • 물리, 실제적 하드웨어가 존재하며 변하지 않지만, 이를 논리적으로는 변한 것처럼 만드는 것.
  • 클라우드 컴퓨팅에서 가자 중요하고도 필수적인 기술.
    • 멀리 있는 컴퓨팅 자원을 가까이 있는 것처럼 인터넷으로 연결해 사용할 수 있음.
    • 실제로는 한 대의 서버를 여러 대인 것처럼 나눠 빌려주거나, 여러 대의 서버를 한 대인 것처럼 묶어서 판매 가능.
    • 이러한 것들이 모두 가상화로 구현된다.
  • 자원을 아끼고 효율성을 높이는 데 첫번째로 논의되는 기술.
  • 새 요구사항을 만족시키기 위해 IT 서비스를 끊임없이 수정하거나 개발해야 함. 이러한 환경에서 가상화는 꼭 필요한 기술. 물리적으로 하드웨어를 조정하는 것은 시간/비용/노력이 필요하지만, 가상에서는 소프트웨어 하나만으로 그 일이 간편하게 이루어짐.
  • 이 기술은 IBM이 공유된 메인 프레임에서 개별 논리 파티션(Partition. 분리 공간)을 구현할 목적으로 시작됨. 서버 가상화에서 시작된 기술은 스토리지, 네트워크, 하드웨어, 소프트웨어 등 갖가지 상황에서 활용되고 있음.

서버 가상화

  • 60년대 메인 프레임은 컴퓨팅 용량이 엄청났기 때문에 여러 개의 가상 시스템(Virtual Machine)으로 논리적인 분할이 이루어짐. 가상화를 사용해 단일 메인 프레임에서 여러 프로젝트를 동시에 실행해 가상화 기술의 효용성을 입증할 수 있었음.
  • 현대에도 하나의 시스템에서 여러 업무를 한 번에 진행하고자 하는 요구는 여전함. 다만, 그 대상이 메인 프레임이 아닌 서버까지 확장되었다.
  • 기업 입장에서는 최대 사용량을 기준으로 IT 컴퓨팅 자원을 확보해 놓아야하며, 결국 IT 자원의 총소유비용을 늘리고 비효율이 발생시켜 기업의 경쟁률을 감소시킨다. 쓰지 않는 자원을 효율적으로 사용하고 도입/유지 비용을 감소시키려는 목적에서 출발한 기술이 가상화.
  • 가상화의 여러 이점
  • 여러 경제적 효과
    • 총소유비용(TCO) 감소
    • 물리적 서버 대수 감소
    • 서버 자원 가상화를 통해 IT 자원 운영과 관리 효율성 극대화.
  • 환경 보호
    • 가동 서버 감소로 인한 전력 소모량 감소
  • 가상화의 장점
    • 1) 물리적 서버 단위로 나누는 것보다 시스템 구축이 쉬움. 실체 하드/소프트웨어를 구축하는 것이 아니기 때문에 가상화를 통하면 설치와 관리 부하를 줄일 수 있음.
    • 2) 가상화의 시스템 이전 기능을 통해 비교적 쉽게 전체 서비스 가용성을 높일 수 있음. 서버의 업그레이드 같은 유지, 보수 하는 경우, 마이그레이션으로 시스템을 사용하지 못하는 시간을 최소로 줄일 수 있음. 시스템의 확장성도 쉽게 보장 가능.
    • 3) 소프트웨어 개발 환경에 아주 많은 도움을 받을 수 있음.
      ex) 재부팅할 필요가 있을 때 실제 시스템을 재부팅하지 않고도 가상 시스템에서 빠르게 재부팅이 가능.
    • 4) 여러 개의 서버를 하나의 서버로 합쳐 전력 소모량을 줄이고, 서버가 차지하는 공간도 줄일 수 있음.
  • 가상화의 분류
  • 하드웨어 가상화
    • 여러 운영 체제를 실행할 수 있는 환경 제공.
    • 하드웨어를 가상화시켜 운영 체제 아래에서 여러 개의 논리적 하드웨어 환경을 제공하는 역할을 담당하는 부분을 하이퍼바이저 HyperVisor 또는 VMM이라 부름.
      서버 가상화에서는 하드웨어와 운영 체제 사이에 하이퍼바이저가 위치해 하드웨어 가상화 기능을 운영체제에 제공.
  • 운영체제 가상화
    • 가상화 대상이 하드웨어에서 운영체제로, 한 단계 올린 것.
    • 실제로 시스템에서 제공되는 운영 체제는 하나밖에 없지만, 운영 체제에서 실행되는 소프트웨어는 각 독립적인 운영체제에서 수행되는 것처럼 보임.
    • 운영체제를 가상화하면 각 소프트웨어는 각각의 파일 시스템, 네트워크 환겨 등을 가질 수 있음. 운영 체제와 프로그램 사이에 가상화 계층이 존재, 상위 프로그램과 상관없는 독립적인 실행 환경 제공.

스토리지 가상화

  • 가상화를 염두하지 않고 스토리지를 늘리는 것은 예산 외에도 많은 어려움을 가져오게 됨.
    가상화 기술 도입 없이 물리적으로 저장 공간을 확보하기 위해 새 드라이브를 도입한다면 훨씬 더 많은 부담을 안게 됨.
    • 새 드라이브를 비즈니스 서버에 배치
    • 현재 드라이브에서 새 드라이브로 데이터를 옮긴 다음, 새 드라이브에서 제대로 작동하도록 서버를 재구성
  • 가상화 도입시 : 가상화된 스토리지는 새 수요가 발생할 때마다 그에 맞춰 자원을 할당해 이용할 수 있도록 함. 실제 시스템적으로 이루어지는 것이 아니라, 추상적인 개념으로 이루어짐. 가상화 솔루션으로 가상화된 서버 스토리지는 물리적 스토리지의 IT 인프라 내에 있든 외부에 존재하든 상관 없이 하나의 논리적 단위로 취급될 수 있음.
  • 장점
  • 유연한 관리 : 서비스가 기능별로 더 많은 스토리지를 필요로 하는 경우, 최적화된 소프트웨어와 하드웨어 솔루션을 이용, 스토리지를 실시간으로 할당받을 수 있음. 요구량이 늘어나면 스토리지도 늘고, 불필요한 스토리지는 자동으로 반환된다.
    • 용량 활용도 증가.
  • 장애 복구 용이 : 가상화 이전에는 데이터 복제가 유사한 시스템에서 이루어졌지만, 가상화 이후에는 비슷한 시스템이 아니어도 데이터를 손쉽게 복제 가능.
  • 백업 속도 증가 : 가상화 소프트웨어에서 파일 시스템의 현재 상태를 사진 찍듯이 저장 가능.
    이 스냅샷 기능은 시스템 및 데이터 복구를 간단히 처리하도록 도와줌. 소프트웨어 서버 및 백업 서버에 있는 각 처리 기능들간의 소통이 늦어지며 새기는 병목 현상을 없앴기 때문.
    또한 그 순간을 찍어 저장하고 그대로 복구하는 것이기 때문에 따로 백업에 필요한 시스템들을 준비할 필요가 없어짐.
  • 데이터를 다른 곳으로 쉽게 옮김 : 가상화 소프트웨어는 다른 종류의 플랫폼 사이에 데이터 이전을 지원할 수 있음. 스토리지 용량이 가득 차더라도 따로 데이터를 이동시킬 필요 없이 자동으로 용량이 확장되며, 완전하게 가상화된 시스템을 통해 공간이 부족한 경우 데이터베이스 추가 용량을 자동으로 할당해주는 정책을 적절히 구상할 수 있음.
  • 응용 소프트웨어 테스트 : 가상화를 사용해, 실제 데이터로 테스트하는 대신 복제된 데이터 세트를 만들어 안전하게 테스트할 수 있음.
  • 여러 스토리지에 걸쳐 데이터를 스트라이핑(Striping : 하나의 데이터를 동시에 여러 저장 장치에 분배하는 기술)하여 저장하는 기술 등을 사용해 데이터 입출력(I/O) 성능을 향상시킬 수 있음.
  • 장애가 발생하더라도 서비스를 제공할 수 있고, 데이터를 복구할 수 있어햐 하는데, 스토리지를 가상화하면 동일한 데이터를 미러링(Mirroring : 데이터를 여러 디스크에 중복 저장하는 기술)하거나 복제하여 스토리지에 문제가 나타나더라도 데이터가 손상되는 일을 막을 수 있게해 가용성을 높일 수 있다.
  • 가상화를 통해 스토리지 관리 비용을 줄일 수 있음. 개개의 많은 스토리지 장치들을 하나의 가상화 스토리지로 통합해 스토리지 관리 작업을 간편화 할 수 있음.
  • 가상화 분류
  • 가상화 대상과 가상화로 얻으려는 이점에 따라 다양하게 응용될 수 있음.
  • 디스크와 블록 스토리지 장치 가상화
    • 디스크 장치 가상화 : 물리적인 디스크 장치의 펌웨어에서 이루어짐
    • 블록 스토리지 장치 가상화 : 여러 디스크를 하나의 디스크처럼 작동하는 장치로 가상화
  • 파일 시스템 가상화
    • 원격 파일 시스템을 내부에 있는 로컬 파일 시스템처럼 사용할 수 있게 함.
      여러 파일 시스템을 하나의 파일 시스템처럼 이용할 수 있게 하는 가상화 기법.
  • 파일 가상화
    • 계층기억관리(HSM : Hierarchical Storage Management) 소프트웨어를 이용하면 자주 접근되지 않은 파일을 저비용 스토리지로 이동하고, 필요할 때 다시 읽어들여 사용 가능.
      스토리지 비용을 절감할 수 있을 분 아니라, 스토리지 사용 효율을 증가시킬 수 있음.
  • 테이프 라이브러리 가상화
    • 테이프 라이브러리 : 다수의 테이프(구멍을 뚤거나 자기 또는 감광 물질을 입혀 정보의 입력/출력/저장 등에 사용하는 좁고 기다란 재료) 카트리지를 가진 대용량 고속 백업용 저장장치
    • 디스크 장치를 테이프 라이브러리/드라이브로 가상화해 기존의 테이프에 백업하던 방식에서 디스크를 이용하면서 백업과 복구 성능을 높일 수 있다.

네트워크 가상화

  • 다양한 IT 자원 또한 가상화할 수 있음.
    • IP 주소, 네트워크 어댑터, LAN, 대역폭 관리 등이 포함.
  • 서버의 가상화 역량을 지원하거나 보완하는 데에도 필요.
  • 가상화 환경을 완성하는 기술로 평가받는데 네트워크 역량에 따라 전체 인프라의 활용도가 크게 달라질 수 있기 때문.
    네트워크 가상화는 기존 물리 네트워크 연결을 가상화된 회선으로 구성, 여러 회선의 결합/분할 등을 가능하게 하여 최소 비용으로 네트워크 장비의 활용도를 극대화할 수 있음.
  • 서버나 스토리지 등 시스템을 가상화했어도 이를 클라우드에 연결시켜주는 네트워크가 가상화되지 않는다면 탄력적인 대응에 한계가 생길 수 있음.
  • 네트워크를 가상화해 사용자는 IT 인프라에 걸쳐 좀 더 효율적이고, 저렴하며, 안정적인 통신 체계를 만들 수 있음.
    가상화는 실제 하드웨어가 변하는 것이 아닌 논리적으로 구현되는 것이기 때문에 이런 특성으로 인해 상황에 따라 탄력적으로 대응할 수 있는 유연한 네트워크가 될 수 있음.

응용 소프트웨어 가상화

  • 프로그램을 하드웨어에 설치하지 않아도 클라이언트에서 응용 프로그램을 독립적으로 수행할 수 있는 기능을 제공한다.
    하나의 프로그램이 운영되기 위해서는 프로그램의 코드, 동적 라이브러리, 레지스트리 등 프로그램을 구성하는 다양한 자원이 필요하다. 응용 소프트웨어 가상화는 이러한 공유 자원들을 프로그램별로 복사본을 떠놓는 방식이다.
  • 일반적인 경우, 프로그램은 운영 체제에 직접 설치되어 각 프로그램 간 충돌이 발생하기도 한다.
    하지만 가상화를 적용하면 운영 체제에 따라 독립적이면서도 프로그램마다 저마다의 보호된 실행 환경을 가질 수 있다.

4-4. 클러스터 관리

  • 컴퓨터 클러스터 : 많은 양의 계산을 하거나 데이터를 저장하기 위해 여러 대의 컴퓨팅 자원을 하나로 묶어놓은 시스템.
    클라우드 컴퓨팅 서비스를 제공하는 클라우드 시스템 역시 매우 방대한 시스템들의 집합인 클러스터 시스템이라 할 수 있음.
  • 여러 대로 나뉘어 있지만, 논리적으로는 엮여 있기 때문에 시스템을 이용하는 사용자 입장에서는 하나의 시스템을 사용하는 것과 같은 효과를 얻을 수 있음.
  • 원활한 클라우드 컴퓨팅 서비스를 위해선 다양한 부분에서 클러스터를 관리해야 한다. 시스템 가용 상태 유지, 서버 관리, 자원 배분 등 해결 방안을 마련해야 함.
    클라우드 시스템에서 클러스터 관리 계층은 클라우드 컴퓨팅 환경을 구축하는 기본적인 하드웨어 자원들을 클러스터로 서로 묶고 이들을 관리함. 또 분산 컴퓨팅 플랫폼을 구성하고 있는 다양한 다른 계층에 자원 관리, 부하 분산, 프로비저닝 등의 기능을 제공해야 함.

노드 관리

  • 클라우드 컴퓨팅에서 노드 Node는 클러스터를 구성하는 시스템 하나하나라 할 수 있음.
    곧 클러스터 노드는 작업을 처리하는 데 필요한 자원을 제공하는 시스템. 응용 소프트웨어가 운용되고 데이터가 저장되는 한편, 기본적인 운영 체제와 데이터베이스 등이 존재하는 하드웨어.
  • 노드의 관리가 성공적인 클라우드 컴퓨팅 서비스의 첫걸음.
    노드 관리의 가장 중요한 부분은 시스템이 멈춰서는 안된다는 것. 노드가 고장나면 그 노드와 관련된 응용 소프트웨어, 컴퓨팅 자원 등이 모두 사용 불능에 빠지기 때문에, 제대로 작동하지 못하는 노드를 빨리 찾아 전체 클라우드 시스템에 영향을 미치지 않도록 복구하는 작업이 필요.
    • 오류가 발생한 노드는 향후 점검 후 클라우드 시스템에 추가 가능.
    • 노드가 굉장히 많기 때문에 노드 장애는 마치 일상적으로 발생하는 일이라고 받아들일 수 있도록 해야함.
    • 클러스터 운용 중 발생할 수 있는 다양한 장애 상황을 즉시 감지하고 대처하는 기능/기술을 통해 높은 가용성을 제공할 수 있어야 함.
  • 노드의 유연한 운용도 클라우드 컴퓨팅 제공에서 중요한 이슈 가운데 하나. 대규모 확장성을 확보하기 위해 클러스터 노드는 요구 변화에 맞춰 수정 가능해야 함.
  • 노드 관리는 기본적으로 물리적 하드웨어에 대해 수행됨. 하지만 클라우드 시스템은 서버 가상화 기능을 사용함으로, 가상화된 서버를 대상으로 노드가 관리되어야 함.
    따라서 기존 물리적 서버를 대상으로 했던 노드 관리는 물리적 서버뿐 아니라 가상화된 서버의 노드 관리도 할 수 있도록 수정되어야 함.
  • 가상화된 서버로 노드 관리를 확대하는 것은 물리적 노드 관리를 그대로 적용하는 것만으로는 달성하기 힘듬. 가상화된 서버는 논리적으로 제한 없이 하나의 물리 노드에 생성 가능하기 때문.
    따라서 노드 관리는 현재의 각 물리 노드의 상태, 자원 활용도 등을 지속적으로 살피며 어떤 물리 노드에 가상화된 노드를 설정할지도 결정해야 함.
  • 클라우드 서비스를 위해 클러스터 시스템의 전체 자원을 효과적으로 이용하기 위해서는 각 물리 노드/가상 노드의 자원 상태, 관계 등을 파악하고 있어야 함.
    모니터링 정보는 향후 부하 분산, 프로세스 이동, 클러스터 관리 등을 위한 기초 정보로 활용됨.
  • 전체 클라우드 시스템의 자원 모니터링 정보는 클라우드 시스템을 유지, 관리하기 위한 중요한 정보며, 이를 관리하기 위해 관리 공간을 하나로 만들어 감시하는 기능이 반드시 필요. 전체 시스템 관리를 위한 중앙 집중형 관리 시스템 외에 각 서비스 사용자 자신들이 활용하고 있는 클라우드 자원의 모니터링 정보 역시 서비스의 한 부분으로 사용자에게 제공되어야 함.

자동 업데이트 및 자동 설치 기능

  • 방대한 클러스터를 관리하려면 전문적인 지식과 많은 인력이 필요하지만, 일일이 손으로 관리하는 것은 불가능에 가까움.
    모든 클러스터를 대상으로 자동으로 업데이트/설치/수정 등이 가능하도록 하는 기능이 구현되어 있어야 함.

프로비저닝

  • 프로비저닝 : 클러스터에서 쓰지 않고 있는 자원을 파악하고 필요한 순간에 자원을 실시간으로 할당해 서비스르르 생성, 적절하게 제공하는 기술.
    실시간으로 운영 체제, 소프트웨어, 환경 정보, 스크립트 등 자원 상태를 관리(Resource Management)할 수 있는 메커니즘을 가지고 있어햐 함.
    프로비저닝 기술로 자동으로 클라우드 컴퓨팅 서비스에 필요한 자원을 파악하고 제공할 수 있음.
  • 예시 시나리오
    • 사용자가 폭주하면 요청이 순간적으로 늘어나 웹 서버들의 부하가 가중되고 처리 속도가 늦어질 수 있음. 이런 상황에서 프로비저닝이 힘을 발휘함.
    • 서버의 과부화를 감지한 클러스터 관리 시스템은 중앙 처리 장치/메모리 등 자원 상황이 좋은 다른 유휴 서버를 선택해 프로비저닝 명령을 내림.
    • 명령을 받은 유휴 서버들은 분산 파일 시스템에 접속해 서버와 프로그램 등의 바이너리(Binary : 0, 1 두 숫자만으로 이루어진 이진법 파일. 프로그램 배포에서 실행 파일을 나타냄) 및 환경 정보를 다운로드 함.
    • 다음 사용자의 요청을 처리하며 클라우드에서 필요한 만큼의 자원을 할당받을 수 있는 것.
      이러한 방식으로 프로비저닝을 통해 실시간으로 사용자 요청을 처리하기 위한 최적의 환경을 구성할 수 있음.

로드 밸런싱 및 자동 확장성

  • 한 서버에 사용자가 몰려 트래픽이 과중되는 것을 방지하는 기능이 로드 밸런싱
    • 동일 주소로 접속한 여러 사용자들을 서버 사용 형태에 따라 적절하게 분배해주는 기능.
    • 클라우드 시스템에서 클러스터 관리 계층이 처리하게 됨.
  • 확장성과 로드 밸런싱 기능이 만나 진정한 의미를 갖게 된다.
    • 기업이 언제 트래픽 과부화가 올지 서버 사용량을 24시간 감시하는 것은 불가능하다.
    • 클라우드 컴퓨팅 서비스 제공 업체는 이러한 문제를 해결하기 위해 자동으로 특정 사용자에게 할당된 자원의 사용 상태를 모니터링하고, 사용자와 협의한 일정 수준만큼 사용량이 높아지만 자동으로 새로운 자원을 더 할당하는 자동 확장성 기능을 제공한다.
    • 자동 확장성 역시 클러스터 관리 계층에서 지원하는 기능.
    • 자동 확장뿐 아니라 자동 반납도 지원한다.

4-5. 분산시스템

  • 병렬 컴퓨팅 인프라.
  • 클라우드는 흩어져 있는 자원을 활용하는 기술. 흩어진 자원을 활용할 수 있도록 데이터를 나누어 동시에 처리해야 함 → 분산 컴퓨팅 시스템
  • 분산 컴퓨팅을 위해서는
    • 분산 데이터 관리
      • 여러 시스템에 분산된 데이터를 마치 한 곳에 있는 데이터같이 사용하게 해주는 기술.
    • 분산 병렬 처리
      • 업무를 여러 개로 분할, 이를 여러 시스템에서 동시에 처리할 수 있게 해주는 기술.
    • 분산 파일 시스템
      • 여러 노드에 분산 저장하여 파일의 크기에 대한 확장성을 제공하는 기술.

    분산 데이터 관리

  • 분산 데이터 관리 시스템 DDMS : Distributed Data Management System.
    대규모의 구조화된 데이터를 여러 부분으로 나눈 다음, 분산해 저장/관리하는 시스템으로 클라우드 데이터를 위한 기술로 활용되고 있음.
  • 클라우드 서비스를 위해서는 데이터베이스를 쓰는 사람이 많아지거나 저장/관리해야 할 데이터 양이 증가했을 때 새로운 시스템을 추가해 손쉽게 확장이 가능한 분산 데이터베이스 관리 기술이 필요.
  • 기존 관계형 데이터베이스 관리시스템은 RDBMS 는 금융/인사/자산 등 기업 업무에 이용되는 데이터들을 체계적으로 저장, 관리하기 위한 시스템으로, 대량의 데이터를 관계형 모델에 따라 구조화해 저장/관리하고, 사용자가 간단한 데이터베이스 언어로 복잡한 질의 연산을 요구할 수 있게 함. 데이터의 안전한 관리와 모든 사용자가 같은 데이터를 제공받을 수 있도록 함(데이터 일관성)
  • 그러나 이런 복잡한 질의 연산 지원, 데이터 일관성 유지 등은 시스템 확장성에 제약을 주게되어 대규모 데이터 관리 및 사용자를 서비스하는 데 한계가 있음.
    때문에 높은 확장성을 제공하는 분산 데이터 관리 기술이 인터넷 서비스 업체를 중심으로 추진됨.
  • 높은 확장성을 제공하는 분산 데이터 관리 기술은 인터넷 서비스의 특성을 고려해 가능한 단순해야 하고, 꼭 필요한 기능을 제공하는 등의 방식으로 높은 확장성을 확보할 수 있음.
  • 클라우드 서비스 목적에 맞는 특화 분산 데이터 관리 시스템 필요하게 됨.
    클라우드 서비스용 분산 데이터 관리 시스템은 확장성(사용자 수 늘어남에 맞춰 확장), 고가용성(서비스 중단 최소화), 클라우드 컴퓨팅에서 요구하는 기능 및 성능에 적합한 데이터 관리 기능 제공.

분산 병렬 처리

  • 분산 처리 : 네트워크로 떨어져 있는 컴퓨터가 어떤 일을 나누어 처리하는 것을 의미.
    병렬 처리 : Parallel 을 번역한 말로, 말 그대로 나란히 늘어놓고 동시에 일을 진행한다는 의미.
  • 멀티 코어 프로세서(2개 이상의 코어(기억 소자)를 탑재해 만든 프로세서(CPU))로 병렬 처리라는 개념이 확산되며, 각 코어가 여러 개의 프로그램을 각각 맡아 처리하게 된 형태.
  • 네트워크를 통해 멀리 떨어져 있는 중앙 처리 장치가 나누어서 일을 처리하는 분산 처리 + 여러 업무를 중앙 처리 장치에서 동시에 진행 할 수 있도록 돕는 것이 병렬 처리
    자원을 효율적으로 처리하기 위해서 때로 분산, 때로 병렬 처리가 필요하다.
  • 업무의 성격에 따라 컴퓨팅이 많이 필요한 업무처리할 데이터가 많은 업무로 구분.
    • 컴퓨팅이 많이 필요한 경우 : 처리할 데이터의 양은 적지만, 많은 양의 컴퓨터 연산을 위해 여러 개으이 시스템 활용. 분산 시스템 간 데이터 전달이 크게 요구되지 않고 가용 자원만을 고려하여 업무를 나눠서 처리.
    • 처리 데이터가 많은 업무 : 여러 개의 시스템에 업무를 나눠서 처리할 때, 시스템 간 데이터 전달로 인한 네트워크 부하를 막기 위해 가능한 데이터가 저장되어 있는 시스템에 업무를 분산할 필요가 있음.
    • 태스크 분배는 네트워크 트래픽 발생을 최소화하기 위해 가능한 데이터가 위치한 노드에서 수행하도록 분배해야하며, 이를 위해 입력 데이터를 분할할 때 데이터의 저장 상태 및 위치를 고려해 분할하게 된다.

분산 파일 시스템

  • DFS Distribute File System.
    막대한 양의 데이터를 저장하고 관리하기 위해 수많은 서버들에 데이터를 나누어 저장하고 관리하는 파일 시스템
  • 클라이언트는 서버들에 저장된 데이터를 자신의 단말기에 저장되어 있는 것처럼 접근하고 처리할 수 있다. 클라이언트/서버 기반의 파일 시스템.
  • 클라우드 컴퓨팅에서 요구하는 분산 파일 시스템은 단순한 데이터 저장과 관리 뿐만이 아닌, 하드웨어 장애에 유연하게 대처해 서비스가 중단되는 일을 미연에 방지해야 한다. 적절히 병렬로 처리하면서 서비스가 요구하는 성능 역시 만족시켜야 함.
  • 클라우드 컴퓨팅을 위한 분산 파일 시스템이 만족시켜야 할 사항
    • 먼저, 다루는 데이터와 서버의 규모가 기존의 분산 파일 시스템의 그것과는 비교가 되지 않을 정도로 거대하다는 점.
      비용 측면의 효율성, 지속적으로 늘어나는 데이터의 수용, 빈번한 고장에 대한 대처, 관리 편의성 등 대부분의 핵심적인 내용들이 여기에서 나타남.
    • 다음으로 다양해지는 사용자의 요구를 충족시키기 위해 제공되는 클라우드 서비스들이 분산 파일 시스템에 만족할만한 데이터의 입출력과 처리 성능을 요구함.
      대용량 파일의 신속한 입출력, 네트워크 위상 구조를 인식한 데이터의 최저 배치, 효과적인 캐시(Cache. 일시적인 데이터 저장을 위한 공간)의 사용, 순간적으로 집중되는 부하의 유연한 대처 등.
    • 기업과 개인은 데이터 보안 문제에 대한 우려를 품고 있음.
      데이터 암호화, 사용자 간 엄격한 접근 제어, 관리자의 개인 데이터 접근 제한 등.
    • 사용자가 지정한 데이터에 오류가 발생하지 않도록 예방하고 저장 공간을 최적으로 사용하기 위한 방법.
      데이터의 오류 감지와 복구, 중복된 데이터의 제거 등.
  • 분산 파일 시스템의 구성 요건
  • 낮은 비용
    • 위와 같은 문제를 해결하기 위한 가장 클라우드 컴퓨팅을 이용하 분산 파일 시스템은 무엇보다 낮은 비용을 실현해야 함.
    • 데이터는 꾸준히 증가하고, 저장하고 관리하는데 막대한 IT 인프라가 요구됨. 고가의 서버와 고속의 네트워크를 활용해 인프라를 구축/유지할 수 있다면 큰 문제 없겠지만, 너무 큰 비용이 문제가 됨. 따라서 비용을 줄일 수 있는 것은 중요 경쟁력 중 하나이며, 저렴한 서버들과 네트워크를 활요해 비용을 대폭 줄이면서도 비슷한 성능을 낼 수 있는 분산 파일 시스템 기술을 개발하고 적용해야 한다.
  • 대규모 확장성
    • 꾸준히 증가하는 데이터의 저장과 관리를 위해 초기에 구축한 IT 인프라를 지속적으로 확장해야 함. 분산 파일 시스템은 논리적으로 공간 확장을 무한히 할 수 있어야하고, 공간을 확장하거나 축소할 때 서비스의 중단이 없어야 함.
      즉, 서비스의 중단 없이 공간 관리가 가능해야 한다는 뜻.
    • 모든 서버의 공간을 사용자들에게 단일 공간으로 보이도록 가상화해 서비스가 멈추는 일 없이 자유롭게 공간을 관리하고, 단일 저장소인 것처럼 제공해야 함.
  • 안정성 확보
    • 저비용 실현을 위해 안정성을 포기하면 안됨.
    • 사실 저가 장비를 쓰든, 고가 장비를 쓰든 고장은 언젠가 일어나게 되어 있음. 고장으로 인해 전체/일부 서비스를 중단해야 하는 상황이 나타나지 않아야 한다는 것.
    • 분산 파일 시스템은 모니터링을 통해 고장이 발생한 상황을 인지하고 적저랗게 대처해 서비스가 중단되는 상황을 방지해야 한다. 또한 데이터 유실을 방지하기 위해 데이터의 이중화 등 안정적인 데이터 보관 방법을 마련해야 함.
  • 고성능 제공
    • 기존 컴퓨터 환경에서 사용하던 수많은 소프트웨어가 클라우드로 들어오고 있음.
    • 분산 파일 시스템은 서버/스위치/랙 등의 네트워크 위상 구조를 인식하고, 이를 이용해 최적으로 데이터를 배치, 클라이언트의 요청을 빠르게 처리할 수 있어야 함. 메모리 캐시를 효율적으로 활용해 디스크 입출력을 최소로 줄여 성능을 높일 수 있음.
  • 간편해야 함.
    • 클라우드 컴퓨팅을 활용하는 기업들과 일반 사용자들은 서비스로 제공되는 기능들만을 사용하므로 분산 파일 시스템에 대해 알 필요도 없고 알지도 못함.
      하지만 분산 파일 시스템을 활용해 클라우드 서비스를 제공하는 기업의 관리자는 현재 관리되고 있는 모든 사항을 모니터링하고 분석해야하며, 분산 파일 시스템의 상세한 사항을 이해하고 있어야 함.
    • 클라우드 컴퓨팅을 위한 분산 파일 시스템은 관리자에게 GUI 형태의 관리 도구로 관리되는 모든 서버나 네트워크 상황을 일목요연하게 보여주고 손쉽게 관리할 수 있는 기능을 제공해야 함.
  • 보안성 유지
    • 사용자가 가장 우려하는 사항이 보안.
    • 관리자나 해당 기업의 관계자에 의한 정보 유출에 대한 걱정이며, 이 걱정은 클라우드를 이용하는 사용자들의 데이터가 사용자의 동의 없이 상업적으로 이용되거나 유출되지 않을까, 삭제된 데이터가 보관되지 않을까, 하는 우려로 이어짐.
    • 취약한 보안 허점을 이용해 해커들이 사용자의 데이터를 손실/유출시키는 일 역시 우려될 수 있다.
    • 사용자의 걱정을 불식시키기 위해 철저한 데이터 관리, 제도적인 보완 등이 필요.
      전문적 보안 관련 기업들과 협력해 보안을 강화하고 철저한 사용자 인증과 접근 허용 관리가 반드시 이루어져야 함.
  • 데이터 무결성 제공
    • 알 수 없는 원인으로 의도된 대로 데이터가 저장되지 않는 경우가 종종 발생하지만, 이러한 상황에서 사용자의 데이터를 보호하기 위해 오류를 검출하고 복구할 수 있어야 함.

4-6. 서비스 지향 아키텍쳐

  • 서비스 지향 아키텍쳐. SOA : Service Oriented Architecture
  • 정보 시스템 구축 방식에 일정한 규칙을 두고 공유하거나 다시 사용할 수 있는 서비스를 만드는 플랫폼 기술을 의.
  • 일반적으로 소프트웨어가 제공하는 서비스는 특정 운영 체제, 브라우저를 사용하는 등 일정한 환경과 방식에 맞추어야만 사용할 수 있음. 따라서 개발 시점에 정한 환경이나 방식과 다른 상황에서는 해당 서비스를 이용할 수 없게 된다.
  • 서비스 지향 아키텍처는 서비스를 다양한 환경에서 유연하게 사용할 수 있게 하는 플랫폼.
    서비스 지향 아키텍처에서 서비스 제공자는 서비스를 중개하는 서비스 브로커에게 자신의 서비스를 등록, 서비스 사용자는 자신이 원하는 서비스가 어떤 것이 있는지를 서비스 브로커를 통해 찾으면 서비스 브로커가 사용자가 요청한 기능에 맞는 서비스를 찾아 연결해주는 방식.
    결과적으로 서비스 사용자는 해당 서비스의 사용 방법에 맞게 해당 서비스를 요청해 사용하게 된다.
  • 새로운 상품/서비스를 얼마나 빨리 내놓느냐에 따라 경쟁력이 결정되는 요즘, 서비스 지향 아키텍쳐는 선택이 아닌 필수가 되고 있음. 재사용과 유연한 연결이 가능한 서비스 지향 아키텍쳐와 클라우드가 만나 시너지가 더 좋음.

클라우드 컴퓨팅과 서비스 지향 아키텍쳐

  • 서비스 지향 아키텍처는 다양한 기업이 동일 서비스를 이용하는 환경에서 가장 이상적인 아키텍처. 때문에 클라우드 컴퓨팅 시대가 서비스 지향 아키텍처의 주요 활동 무대로 각광받고 있음.

서비스 지향 아키텍처, 클라우드 구현의 핵심 기술

  • 서비스 지향 아키텍처는 클라우드 구현의 핵심 기술이 될 것. 클라우드의 핵심은 결국 시스템 통합과 비즈니스의 최적화로, 이는 서비스 지향 아키텍처의 이상과 직접적으로 맞물림.
  • 기업들은 하드웨어&소프트웨어&데이터베이스 도입을 대체해 클라우드 컴퓨팅 환경으로 이동할 것이며, 클라우드 컴퓨팅은 이것들을 서비스할 것임.
    클라우드 컴퓨팅 서비스의 타겟은 특정 대상이 아닌 매우 다양한 사용자층임으로, 클라우드 컴퓨팅 서비스들은 표준화된 방법으로 누구나 접근 가능한 형태가 되어야 함.
  • 사용자 입장에서도 다양한 소프트웨어를 상호 연동하는 등의 상황이 벌어질 것이고, 많은 서비스가 통합되고 비즈니스에 최적화되기 위해서는 서비스 지향 아키텍처가 반드시 필요함.

과제

  • 보안, 인증, 허가
  • 지금은 상당 부분 해결됐을 듯.

4-7. SaaS 플랫폼

  • 소프트웨어 제품을 구매/설치하지 않고 인터넷에 접속해 서비스 형태로 빌려 쓰는 모델.
  • IT 시스템 구축에 따르는 높은 투자 비용과 부담을 줄일 수 있음.
    인터넷으로 서비스되는 소프트웨어를 사용해 불법 복제가 불가능함. 소프트웨어의 저작권을 보호.
    SaaS 플랫폼에 사용자의 정보와 데이터를 저장해야 함으로 보안 문제가 중요.
    서비스 공급자의 서비스 연속성에 대한 보장은 매우 중요.
  • SaaS 플랫폼 : 사용자가 컴퓨터에서 SaaS 서비스를 이용하려 할 때 컴퓨터 어딘가에는 서비스를 구동할 수 있는 프로그램이 설치되어 있어야 하는데, 이 프로그램.
  • 기존 ASP(Application Service Provider)와 비교하면
    • 사용자 입장에서는 소프트웨어를 인터넷에서 사용한다는 점에서 큰 차이가 없지만
    • 사용자를 위한 커스터마이징을 소프트웨어 공급자가 하지 않고 사용자가 직접 할 수 있다는 점이 다름.
    • 공급자의 입장에서는 사용자들을 하나의 소프트웨어 인스턴스로 지원(Single Instance Multi-tenant)한다는 점에서 차별점을 지니는데,
    • 커스터마이징에 많은 비용이 들고 인스턴스를 개별적으로 띄우기 때문에 규모의 경제를 실현하지 못했던 ASP의 단점을 해결함.
  • SaaS는 사용자가 소프트웨어를 재구성할 수 있고, 여러 사용자에게 하나의 소프트웨어 인스턴스로 서비스를 제공함. 확장성을 갖춘 정도에 따라 크게 네 단계로 분류됨.
    • 1) 전통적인 소프트웨어 제공 서비스인 ASP와 비슷
      각 고객에게 별도의 응용 소프트웨어를 제공하고 커스터마이징해 관리가 복잡하고 비용이 큰 구조.
      애드 혹 Ad hoc 커스텀 Custom 구조.
    • 2) 고객별로 별도의 소프트웨어를 제공하고, 서비스 자체 설정으로 커스터마이징 가능. 하지만 멀티테넌시(사용자들이 웹을 통해 다니일 데이터베이스 안의 정보를 관리/공유할 수 있게 해주는 기술)을 지원하는 것은 아님.
      공급자는 충분한 하드웨어와 저장 공간을 제공해야 함.
      재구성이 가능한 구조 Configurable라고 함.
    • 3) 모든 고객을 하나의 객체로 지원하고 메타 데이터로 커스터마이징 하면서 멀티 테넌시 제공. 2에 비해 공급자는 효율적인 자원 관리가 가능.
      재구성이 가능한 멀티테넌트 효율성 구조 Configurable, Multi-Tenant-Efficient
    • 4) 부하 분산 시스템 Load-Balanced에서 모든 고객을 지원하는, 가장 성숙한 모델.
      고객의 데이터를 분산 관리하며 재구성이 가능한 메타 데이터로 각 고객별 커스터마이징을 지원하는 구조.
      확장할 수 있고 재구성 가능한 멀티테넌트 효율성 구조 Scalable, Configurable, Multi-Tenant-Efficient
  • SaaS의 멀티테넌시란 소프트웨어가 SaaS 공급자의 서버에서 단일 인스턴스로 실행되며 다중 테넌트(고객)들을 지원하는 형태를 의미. 클라우드 컴퓨팅에서는 테넌트들 간 하부 컴퓨팅 자원들을 공동으로 사용하는 것을 클라우드 컴퓨팅의 필수적인 특성으로 봄.
    논리적으로 서로 분리되어 있는 테넌트들 간의 컴퓨팅 자원 공유를 멀티테넌시라고 말하기도 함.

0개의 댓글