본문 바로가기

Sorry Architecture

Cloud Computing

클라우드 컴퓨팅(Cloud Computing)은 이제 인터넷과 같이 우리의 일상 속에서 매우 자연스러운 현상이 되었다. 클라우드 컴퓨팅의 선두 주자인 AWS의 re:Invent 행사에서 뉴 노멀(New Normal)이라는 표현으로 우리의 일상까지 스며든 클라우드 컴퓨팅에 대해 언급했다. 인터넷에서 물건을 샀다는 표현이 어색하지 않은 것처럼 클라우드에서 구현했다는 말도 이제 매우 흔하고 익숙해졌다. 클라우드 컴퓨팅에 대한 다양한 견해와 시각이 있겠지만, 몇 년간 클라우드 컴퓨팅 환경에서 서비스(Service/Application)를 경험해본 내용을 바탕으로 몇 가지 특징[각주:1]을 나름대로 정리해 보려고 한다.
 
클라우드 컴퓨팅에서 볼 수 있는 중요한 특징은 클러스터링(Clustering) 이라고 생각한다. 과거에는 특정분야에서 높을 성능을 내는 컴퓨터를 만들기 위해서 클러스터링 기술이 발전했는데, 인터넷(Internet)이 급격하게 보편화되면서 대용량 정보처리를 위한 시스템을 지탱하기 위한 기술로 발전해왔다. 그래서 사실 클러스터링 보다는 분산 환경(Distributed System)이라는 단어가 조금 더 현재의 클라우드 환경을 잘 표현하고 있다. 그러나 분산 시스템 대신 클러스터링을 선택한 이유는 장애 극복(Fault-tolerance), 네트워크 기반 구조 등의 분산환경 특징들을 포함하면서도 응집이라는 목표를 추가로 담고 있기 때문이다.

Amazon S3(Simple Storage Service)의 경우를 생각해보면 좋겠다. S3는 매우 높은 수준의 가용성을 자랑한다. 1년 동안 S3가 제대로 동작하지 않는 시간을 다 합쳐도 몇 분 정도밖에 안된다. 그리고 그 안에 저장한 자료도 사라질 가능성이 매우 적다. 이러한 일이 가능한 이유는 3곳 이상의 분산 환경에 자료를 복제하여 저장하기 때문이다. 복사하는 곳은 물리적으로 떨어져 있는 데이터센터(Data Center)이며 데이터센터들은 매우 빠른 네트워크 장비로 연결되어 있다. 그래서 3곳 중 한 군데에서 문제가 발생해도 사용자는 나머지 2곳의 데이터센터 중 한 곳에서 원하는 정보를 가져올 수 있다.
 
클라우드 컴퓨팅에서 볼 수 있는 중요한 특징은 가상화(Virtualization)라고 생각한다. 앞 서 이야기한 클러스터링이 클라우드 컴퓨팅의 핵심을 이루는 특징이라면 가상화는 클라우드 컴퓨팅의 효율을 높여주는 특징이다. Amazon EC2 (Elastic Compute Cloud)는 사용자가 필요에 따라 원하는 인스턴스(Virtual Machine Instance)의 성능이나 개수를 결정할 수 있다. 또한 사용할 시간도 결정할 수 있다.

단순히 서버들이 네트워크에 연결되어 있고 장애를 극복할 수 있는 기술이 적용되어 있다고 하더라도 사용자 요구사항에 맞추어 탄력적으로 자원을 할당하고 해제하는 기술이 필요하다. 물리적인 블록 디스크(Block Disk/Storage) 위에 파일 시스템(File System)이라고 부르는 추상화된 계층을 두는 이유와 비슷하다.

따라서 사용자는 내가 사용하는 인스턴스가 어떠한 특정 물리자원에서 동작하는 지 몰라도 된다. 오히려 물리장치에 문제가 생겼을 경우 추상화된 정보는 그대로 유지하면서 물리장치를 새 것으로 교체할 수 있기 때문에 클러스터링 입장에서도 가상화는 유지보수를 편하게 만들어주는 완충효과를 주는 중요한 특징이다.


 

  1. Essential Characteristics of Cloud Computing [본문으로]

'Sorry Architecture' 카테고리의 다른 글

PhoenixServer  (0) 2019.02.20
Netflix Frigga  (0) 2019.02.18
Encapsulation  (0) 2019.02.16
Bakery System  (0) 2019.02.16
Music Radio Architecture  (0) 2019.02.16