논문 정리 : 클라우드 컴퓨팅의 분석과 이해
AWS 와 PaaS-TA 서비스를 조금씩이지만 사용해보고 있다.
이번 기회를 통해 클라우드 컴퓨팅에 대해 알아보자
클라우드 컴퓨팅의 분석과 이해
클라우드 컴퓨팅의 분석과 이해
김양우, 이승윤. (2015). 클라우드 컴퓨팅의 분석과 이해. 한국통신학회지(정보와통신), 32(4), 87-92.
클라우드 컴퓨팅이란 무엇인가, 어떤 서비스 유형이 있는가, 도입 시 고려해야할 사항은 무엇인가에 대해 알아보자.
목차
- 클라우드 컴퓨팅 이란?
- 클라우드 컴퓨팅 모델 및 유형 분석
- 클라우드 컴퓨팅 도입 시 고려사항
- 결론
클라우드 컴퓨팅 이란?
클라우드 컴퓨팅
- 정의 :
확장성 있고 탄력 있는 공유 가능한 가상 또는 물리 자원 풀에 필요한 만큼 네트워크를 통해 접근할 수 있는 컴퓨팅 패러다임이다. - 필요 조건 :
- 요금 부과를 위해 측정되야 하기 때문에 모든 서비스는 네트워크 연결이 필수다.
- 동적으로 필요한 만큼 컴퓨팅 자원을 확보,반납 하기 위해 확보와 반납의 과정이 사람의 개입이 최소화한 상태로 자동화되어야 한다.
클라우드 컴퓨팅 모델 및 유형 분석
1. 클라우드 컴퓨팅 적용 모델
- 사설 클라우드 (Private Cloud) :
어느 한 조직이나 기관만의 이용을 위한 모델 - 공용 클라우드 (Public Cloud) :
불특정 다수 일반 사용자들의 이용을 위한 모델 - 커뮤니티 클라우드 (Community Cloud) :
공통 관심사나 목적을 가진 커뮤니티 멤버들을 위한 모델 - 혼합 클라우드 (Hybrid Cloud) :
둘 이상의 모델들이 혼합되어 만들어진 모델
2. 클라우드 서비스 유형
클라우드 서비스 유형은 어떤 성격의 컴퓨팅 자원들을 서비스 형태로 제공 받느냐에 따라 3가지로 분류 할 수 있다.
- 인프라형 서비스 (Infrastructure as a Service/IaaS)
서버, 스토리지, 네트워크 등 인프라형 자원들을 빌려 쓸 수 있도록 서비스를 제공하는 클라우드 서비스 - 플랫폼형 서비스 (Platform as a Service/PaaS)
프로그램이 실행될 수 있는 개발환경(플랫폼)을 제공하는 클라우드 서비스 - 소프트웨어형 서비스 (Software as a Service/SaaS)
다양한 소프트웨어들을 설치의 과정 없이 인터넷을 통해 사용 가능하게 하는 클라우드 서비스
일반적으로 SaaS 형태로 제공되는 소프트웨어 프로그램들은 플랫폼형 서비스(PaaS)에서 제공하는 프로그램 개발환경(플랫폼) 서비스를 통해 만들어 진다.
PaaS가 제공하는 개발 환경이란
- 프로그램 개발에 직접적인 기능
- 운영체제
- API
- 미들웨어
- 프로그래밍 언어와 그에 따른 해당 라이브러리 등
- 컴퓨팅 자원의 동적 확장을 고려한 부가 기능
IaaS 서비스를 이용하는 경우
- 독자적인 자체 프로그램 개발환경을 확보하고 있는 경우
- 특별한 개발환경이 필요 없는 전산 자원 위주의 작업을 하는 경우
PaaS 서비스를 이용하는 경우
- PaaS 자체의 고유한 편의적 기능을 이용하여 서비스 개발을 신속하며 용이하게 하기 위한 경우
- SaaS 수요 증가/감소 에 따라 IaaS의 자원들의 증가/감소를 연동 시켜 주는 PaaS의 장점을 이용하기 위한 경우
SaaS 서비스를 이용하는 경우
- 클라우드 서비스 제공자가 소유한 서비스를 제공받는 경우
(소프트웨어 소유권이 고객에 있는 IaaS와 PaaS와 구분되는 특징이다.)
3. 클라우드 서비스 유형별 고려사항
1. IaaS 서비스 유형
가상화 기반의 서버와 스토리지, 네트워크를 제공하는 서비스
서버 가상화 기술은 운영 체제 영역을 둘로 나누어 그 하단에 위치하는 하이퍼바이저(Hy-pervisior)를 통해 하나의 물리적 서버를 여러 개의 가상 서버로 쪼개는 것이다.
쪼개진 가상 서버 각각을 가상 머신(VM)이라고 하며, 각 가상머신은 독자적인 하드웨어를 갖는 하나의 독립적인 서버처럼 동작한다.
IaaS 서비스의 사용자는 고객 측 시스템 관리자가 되어 하이퍼바이저 위 단의 모든 소프트웨어 관리를 책임진다.
장점
-
각 컴퓨팅 자원의 사용량과 사용 시간에 비례하여 사용료를 지불하는 방식이기에 운영공간과 관리자 확보등의 높은 초기 비용을 줄일 수 있다.
-
VM 등 컴퓨팅 자원에 관리자로서 전적인 제어권을 행사할 수 있기에 기존의 응용들을 클라우드 환경으로 이전시킴으로써 높은 이식성과 상호운용성을 제공할 수 있다.
단점
-
기존의 응용들이 IaaS 클라우드에서도 실행됨으로써
기존 시스템이 갖는 보안 취약성이 클라우드 환경에서 동일하게 노출될 수 있다. -
많은 VM 들이 다양한 상태로 존재하는 상황에서 비활동적인 VM에 대한 보안 업데이트가 제공되지 않는 경우처럼
VM 의 재구동 시 보안에 허점이 발생할 수 있다.
2. PaaS 서비스 유형
개발자들에게 확장성 있는 응용을 개발할 수 있는 기반(플랫폼)을 제공하는 서비스
PaaS 제공 업체에 따라 특화된 기능들이 존재하여 사용자가 서비스할 응용에 따라 PaaS 제공 업체를 선택할 수 있다.
장점
- 필요한 만큼의 자원들을 이용하여 데이터를 처리,배치 할 수 있기 때문에 큰 초기 비용 없이 사용량에 따라 점진적으로 과금하는 방식으로 동적으로 급변하는 수요 증감에 부드럽게 대처 가능하다.
단점
- PaaS 제공 업체에 따라 제공방식과 인터페이스가 서로 상이하기에 서로 다른 PaaS 환경에서 만든 응용 서비스들 사이에는 상호운용성이나 이식성이 매우 부족하다.
(벤더에 종속될 가능성이 크다.) - 위의 단점을 해결하기 위해 PaaS 제품들을 표준화 할 시 각 PaaS 제품이 가진 특화된 기능이 희석될 수 있기에 표준화 하기 어렵다.
3. SaaS 서비스 유형
SaaS에서 제공되는 응용 소프트웨어는 클라우드 서비스 제공자의 서버에서 실행되고,
사용자의 웹 브라우저는 사용자의 입력 데이터를 받아 클라우드로 전송하고 처리된 결과를 받아 사용자에게 전달하는 인터페이스 역할을 수행한다.
장점
- 전통적 컴퓨팅 방식에 비해 높은 확장성과 효율성 제공 및 관리의 편의성이 높다는 특징 존재
- 별도의 클라이언트 프로그램과 복잡한 설치 절차 없이 SaaS응용을 사용 가능하다.
- 고객의 컴퓨터에 설치된 기존 프로그램들과의 간섭영향이 최소화된다.
- 소프트웨어 유통에 소요되는 비용 감소
단점
- 세부적인 제어 능력이 떨어진다.
클라우드 컴퓨팅 도입 시 고려사항
1. 활용분야와의 적합성 검토
클라우드 컴퓨팅은 네트워크와 밀접한 관계를 이루고 있다.
네트워크와의 연결이 장점이 되는 응용 분야와 단점이 되는 응용 분야에 따라 적합성이 달라진다.
클라우드 컴퓨팅 도입이 적합한 서비스
- 네트워크 연결 때문에 가능한 상호 협업 응용
- 다양한 여러 환경들을 각각 구축하고 분산 테스트 및 개발하는 응용
- 자주 실행되지는 않지만 일단 실행되면 많은 자원을 필요로 하는 응용
클라우드 컴퓨팅 도입이 적합하지 않은 서비스
- 실시간성 또는 성능에 매우 민감한 응용
- 유출 가능성이 매우 적어야 하는 민감한 데이터를 다루는 응용
- 많은 양의 데이터가 고객 쪽에서 발생하고 그 데이터를 클라우드로 옮겨 처리해야 하는 응용
2. 작업 및 데이터 이전 방안 수립
클라우드를 도입 시 가장 먼저 고려되어야 할 사항은
추후 클라우드 환경으로부터 복귀하는 경우에 대한 대비책이다.
클라우드 제공자와의 계약 만료, 폐기, 제공자의 도산 등 여러 가능한 경우를 고려하여
클라우드에 있는 작업(워크로드)과 데이터를 고객의 기존 환경으로 회수 또는 다른 클라우드 제공자로 이전할 수 있는 방안과 절차가 사전에 수립되어 있어야 한다.
3. 이식성 및 상호운용성 검토
클라우드 컴퓨팅의 상호운용성과 이식성은 특정 클라우드 제공자에게 종속되는 것을 막기 위한 중요한 요소다.
사유기술에 기반을 둔 제품보다는 최대한 오픈 소스에 기반을 둔 제품을 사용해야 추후 상호 운용성이나 이식성을 향상시킬 수 있다.
클라우드 환경에서 플랫폼 및 응용 이식성을 확보할 수 있는 방법
- 이식 받는 곳의 인프라 위에 동일한 개발/실행 환경을 구축하고 플랫폼과 응용을 재컴파일 해주는 것
- 이식을 원하는 응용이 최적화되어 실행되고 있는 VM의 시스템 이미지를 복사하여 이식할 곳의 인프라 위에 설치하는 것
4. 규정준수 정책 검토
클라우드 컴퓨팅의 도입에서 고객의 데이터가 저장된 데이터 센터가 위치한 국가의 규정을 지켜야 한다.
제공자가 규정을 잘 준수하고 있는지 확신시키 위해 공신력 있는 제 3자로부터 주기적인 감사를 실시하는 것은 좋은 방법이 될 수 있다.
일반적으로
- IaaS 모델은 고객의 제어력이 크기에 고객이 주된 책임을 가진다.
- SaaS 모델은 전적으로 제공자가 책임을 가진다.
- PaaS 모델은 양 쪽 모두에게 공동 책임을 가질 수 있다.
5. 다중 소유(Multi-tenancy)
클라우드 컴퓨팅은 제공자 측 자원의 공유를 통해서 상당한 경제적 이득을 취할 수 있다.
- IaaS에서는 서로 다른 VM들 간에 하이퍼바이저를 통해 하드웨어를 공유 가능
- PaaS에서는 서로 다른 프로세스들 간에 운영체제와 데이터, 그리고 네트워크서비스들을 공유 가능
- SaaS에서는 서로 다른 사용자들간에 같은 응용과 데이터베이스를 공유 가능
결론
클라우드 컴퓨팅이 기존 컴퓨팅 환경에 비해 더 크고 복잡해진 것과 같이 클라우드 컴퓨팅의 도입도 다양한 적용 모델, 서비스 유형, 활용분야와의 적합성, 경제적 이해득실, 그리고 상호운용성과 이식성 등 다양한 이슈들을 사전에 검토하여야 한다.
댓글남기기