Cloud Computing
- 네트워크를 통해 다양한 IT리소스와 어플리케이션을 온디맨드로 제공하는 서비스
--> IT리소스 : 서버, 스토리지, 네트워크와 같은 IT기반의 자원
--> 온디맨드: 요구사항에 따라 즉시 제공 / 공급 하는 방식 (주문형)
구분 | 대상 | 대표 프랫폼 |
---|
퍼블릭 | 일반 사용자 | AWS, Azure, GCP |
프라이빗 | 내부 사용자 | OpenStack, Cloudstack |
- 퍼블릭과 프라이빗을 조합을 해서 하이브리드 형태로 사용하는 회사도 늘어남
==> 대규모의 트래픽을 수용하기 위해서 외부 고객에게는 AWS, Azure, GCP 등 퍼블릭 클라우드를 활용을 하고, 직원들이 사용할 수 있게 OpenStack, Cloudstack을 통해서 하이브리드 형태로 연동해서 서비스를 만들어냄
Cloud Computing의 종류
1. Infrastructure As A Service
서버 + 디스크(스토리지) + 네트워크 가 서비스화
iaas 기반 위에 OS + 런타임 + 미들웨어 를 올려서 제공하는 모델
데이터베이스, 큐서비스, 데이터 저장소, 인증시스템 등을 플랫폼 레벨에서 제공
3. Software As A Service
플랫폼 위에서 어플리케이션까지 제공하는 서비스
Cloud Computing의 특징
1. 온디맨드한 접근성
- 온디맨드: 요구사항에 따라 즉시 제공 / 공급 하는 방식 (주문형)
- 주문형으로 사용하는 서비스는 전기, 가스, 수도와 같은 유틸리티가 있으면 VOD(주문형 비디오 서비스) 역시 대표적인 사례
2. 대규모의 확장성
- 전통적인 IT 인프라 환경에서는 서버 or 스토리지 or 네트워크를 증설하려면 물리적으로 시간이 든다. --> 온디맨드하지 않기 때문에 확장성 떨어짐
- 클라우드 환경에서는 트래픽이 증가함에 따라서 웹서버들도 같이 늘어남, DB 사이즈도 트래픽, 성능 등에 따라 늘리고 줄이고 할수 있음
3. 종량제 과금정책
- 전통적인 IT 인프라 환경에서는 처음에 서버나 스토리지 등을 구매를 하고, 서버실도 확보를 하는 등 초기투자비용 발생
- 클라우드 환경에서는 사용한 만큼 비용 지불
4. 관리의 편리성
- 전통적인 IT 인프라 환경에서는 서버 or 스토리지 or 네트워크를 관리하기 위해서 엔지니어나, 서버실을 관리하기 위한 경비, 보안 인력이 들어간다.
- 클라우드 환경에서는 클라우드 컴퓨팅 프로바이더--> AWS, Azure 등에서 관리 도맡아서 해줌
- API라는 표준 인터페이스를 제공해줌 --> API에 맞춰서 스크립팅을 해서 IT리소스를 관리 하고 확장성 있게 늘리고 줄이고 할 수O
Cloud Computing의 이점
1. 비즈니스적인 측면
(1) 초기 인프라 자원 투자에 대한 부담 감소
(2) 사용한 양에 따른 비용(종량제) 구조
(3) 즉각적인 인프라 자원 제공
- 트래픽이 몰렸을 경우 즉각적으로 인프라를 늘려서 서비스 품질을 높여 서비스를 안정적으로 유지 가능
(4) 효율적인 자원 할당 및 관리
(5) Time to Market 시간 절감
- 병렬적으로 작업을 처리
- 하나의 Job에 총 소요시간이 10시간이라면, 클라우드 컴퓨팅에서는 10개 CPU를 돌릴 수 있는 10개의 서버를 만들어서 1시간에 모두 끝낼 수 있게 함
- 전통적인 방식에서는 하나의 인프라에 하나 밖에 수행 못했지만 클라우드 환경에서는 병렬적으로 수행하면서 시간절감 가능
2. 기술적인 측면
(1) 자동화 (프로그래밍 가능한 인프라 자원)
(2) Auto-Scaling, 탄력적인 확장
(3) 개발 Lifecycle 단축
- 개발(Dev)환경 --> Stageing환경 (실제 운영 환경과 거의 동일한 환경으로 만들어놓고 기능을 검증하는 환경 --> Production환경 (실제 서비스를 위한 운영 서버) 구성 하나하나 인프라 프로그래밍 가능
- 개발환경에서 Stageing으로 넘어갈때 좀더 빠른 속도로 넘어갈 수O
- Stageing에서 Production으로 갈 때도 빠른 속도로 넘어갈 수O
(4) 검증 절차 향상 (QA)
- Stageing환경에서 QA환경을 가져가는 것이 아니고, 개발환경에서도 QA를 수행할 수 있고, 개발전 프로토타입 환경에서도 QA를 활용 할 수O
--> 적재적소에 활용 가능하기 때문에 검증 절차 역시 향상O
(5) 대규모의 트래픽 수용 가능
- 클라우드 컴퓨팅이 기본적으로 큰 리소스 풀 안에서 할당받아 사용
- Load Balancer(LB): 부하 분산 시켜줌
(6) 비즈니스 연속성과 재해 복구
- 한국 서비스가 외국으로 확장 한다고 했을 때 외국으로도 확장 가능
- 지역에서 문제가 발생 했을 때, 다른 지역에서 재해 복구 시나리오를 통해 복구O
Cloud Computing의 고려사항
1. 개인정보 보호
-
클라우드 환경이든, 기본적인 it환경이든 개인정보가 가장 중요한 데이터
-
클라우드 환경에서는 리소스를 큰 리소스 풀 안에 자원들을 할당해서 1번 고객이든, 2번고객이든 나눠서 분리해서 관리를 하고있음
-
물리장비 자체라던가 네트워크 같은 것을 공유 할수밖에 없는 구조임
-
클라우드 컴퓨터 안에서
third party solution을 통한 개인정보 보호 시스템을 구축 한다던가
네트워크 레벨에서 어떻게 설계를 해서 보호 할수 있을 것인가
등을 고려
2. 요구된 보안수준 확보
-
서비스별로 어떠한 서비스냐에 따라서 서비스 오픈전에 보안 검토를 받아야 함
-
클라우드 컴퓨터같은 경우는 다양한 자원들을 공유해서 쓰는 환경이다 보니 비즈니스적으로 요구되는 보안수준을 확보하는 것은 (기존 it인프라 정책 보다는)고려해야 할 사항이 많다.
-
보안수준 확보를 위해서 네트워크, 암호화 등을 통해서 기본 it리소스에서 했던 보안적인 시스템들을 클라우드 환경에서도 동일하게 적용해야함
3. 서비스의 가용성 확보
- 클라우드 컴퓨팅 자체가 대규모 환경을 다루는 시스템이기 때문에 다양한 장애 환경이 발생
- 하나의 장애환경이 발생 했을 때에도, 전체 서비스에는 이상이 없도록 높은 가용성을 가지도록 서비스 설계를 해야함
4. 제한사항에 따른 요구사항 파악
-
클라우드 컴퓨팅은 빌려쓰는 it자원이다 보니 제한사항이 따라옴
-
비즈니스적으로 서비스를 구성 할 때, 클라우드의 제한사항 때문에 서비스를 확장할 수 없는 것을 회피하기 위하여 어떻게 문제점을 해결하고 기능을 어떻게 구현할지에 대해 고려를 해야함
-
뚜렷한 요구사항을 파악한 다음 앞으로 어떻게 설계를 할지 생각을 해야 높은 품질의 서비스가 나올 것
학습정리
참고