하룻밤이 무섭게 새로운 용어와 기술들이 태어나는 IT분야에 클라우드로 글을 시작 하게 된 이유는 클라우드 서비스가 많은 IT기술을 내포하고 있기 때문이다. 클라우드 서비스는 엄청난 속도로 발전하고 있는 IT분야인 만큼 새로운 기술에 대한 흡수력도 상당하다. 결국 클라우드 서비스를 알아가다 보면 많은 IT기술들을 만날 수 있을 거라는 기대감과 설레임에 클라우드를 주제로 선정해 보았다.
클라우드의 큰의미에 대해서는 별도로 설명하지 않겠다.
(클라우드라는 말을 처음 듣는 사람은 잠시 구글에 가서 검색을 하고 오길 바란다. 생각보다 오래전부터 만들어진 자료를 통해서 정의를 보게 될 것이다.)
우리가 일반적으로 듣는 클라우드 서비스는 같은 이름을 가지고 있지만 여러가지 얼굴을 가지고 있다.
클라우드 설명에 앞서 우리가 자주 이용하는 커피 체인점들을 떠올려 보자. 커피 체인점을 관리하는 회사는 카페 운영자를 도와주는 역할을 한다. 하지만 각 브랜드 마다 지원해주는 범위에 있어서는 차이가 있다. 브랜드 이름과 인테리어만 지원을 하고 그외는 직접 운영하도록 하는 커피숍, 원두와 커피 기기, 제조 방법은 제공하지만 커피를 제조하는 과정은 운영자에게 맞기는 커피숍, 원두와 커피 원액, 제조까지 모두 기계가 처리하도록 하여 기기만 대여하는 커피숍을 들 수 있을 것이다.
클라우드 서비스도 마찬가지다. 기업별로 클라우드 서비스를 제공하는 방식이 상이하고 방식에 따라 사용자가 해야할 역할에 차이가 있다. 이렇게 사용자가 해야할 역할의 범위별로 클라우드 서비스를 크게 세가지로 분류하여 설명하고 있는데 이것이 바로 Iaas, Paas, Saas 이다.
아래 그림은 이 세가지 서비스를 그림으로 표현한 것이며 사용자가 관리해야할 부분에 대해 이해하기 쉽게 표시해 두었다.
1. Iaas(Infrastructure as a Service) 인프라 스트럭쳐
- 말 그대로 인프라 부분만 제공해 주는 서비스이다. 서버 컴퓨터 기기만 대여해 주고 OS 설치부터 시스템이 동작하기 위해 필요한 다양한 활동은 사용자의 몫이 된다. 단, 서버 기기가 고장나거나 노후화 되는 것과 같은 유지 보수성에 문제는 사용자가 관여하지 않아도 되다. 태풍이 몰아치고 지진이 날 때 서버가 죽을것을 걱정하며 잠못이루는 일은 더이상 없을 것이다. 커피숍으로 보면 인테리어와 공간은 제공해 주지만 커피의 원두를 볶고, 적당한 온도에 커피를 내리는등... 커피 제조 방식에 대해서는 커피숍 운영자가 알아서 하는 것과 같다. 물론 커피숍의 인테리어와 공간에 문제가 생기거나 유행에 뒤쳐지지 않게 관리하는 것은 체인점 관리자의 몫인 것이다.
이와 같은 서비스는 기업이 제공해주는 서비스가 작은 만큼 서비스 제공자의 부담은 적고 사용자의 부담은 높아질 것이다. 사용자가 유료 OS나 DBMS를 사용한다면 추가적인 비용이 발생할 것이며 그것들을 관리하기 위한 노력과 시간이 추가적으로 들어 갈 것이기 때문이다.
더 나아가 사용자의 능력이 중요해 진다. 커피숍 운영하는데 있어서도 원두 선별, 커피 내리는 방법까지 모두 카페 운영자의 몫이기 때문에 바리스타의 능력에 따라 커피맛에 큰 차이가 생긴다. 바리스타에 의해 그 카페의 매출은 결정될 것이다.
* Amazon EC2, SKT, KT, LG U+등의 기업이 제공하고 있는 서비스.
2. Platform as a Service
- 사용자가 개발 및 시스템을 서비스 하기 위해 필요한 다양한 서비스와 기능들을 제공해 주는 서비스이다. 사용자는 자신이 개발하고자 하는 서비스의 어플리케이션과 필요한 DATA에 대한 부분만 신경쓰면 된다. 그 외 OS와 DBMS, 모니터링과 같은 다양한 부수적인 기능은 제공자가 제공해주는 것을 이용하면 되고 시스템을 운영하기 위해 필요한 많은 영역을 제공자가 관리해 주기도 한다. 다시 커피숍으로 돌아가면 스타벅스와 같은 체인점에 해당할 것이다. 스타벅스는 원두와 커피 머신을 각 체인점에 제공해 준다. 커피별 제조법도 제공해 주며 더 나아가 바리스타 교육도 시켜준다. 하지만 모든 스타벅스의 커피맛이 동일할 수는 없다. 재료와 방법은 똑같지만 바리스타가 현장에서 커피를 만드는 스킬에는 미세한 차이가 있으며 바리스타별로 각자만의 노하우가 있을 것이기 때문이다.
이와 같은 서비스를 사용하면 사용자는 효율적으로 일을 할 수 있고 생산성은 자동적으로 올라가게 될 것이다. 그리고 인프라 서비스보다 개발자의 능력에 의존도가 낮아지게 된다. 일정 영역은 전문가 집단이 서비스 하는 제공자가 담당하고 있으므로 각 사용자가 담당한 어플리케이션 부분에만 영향력을 미치게 된다.
슈퍼 개발자가 단독으로 서비스하는 경우라면 인프라 서비스를 사용하는 것이 더욱 좋은 서비스를 제공할 수 있을 것이다. 하지만 점점 시스템의 규모가 커져가면서 소수의 개발자가 시스템을 개발하는 경우보다 많은 사람이 개발에 관여하게 되고 있으며 개발에 연관된 많은 사람들이 모두 슈퍼 개발자가 되기는 쉽지 않을 것이다. 이러한 상황에서 어느정도의 품질을 확보하기 위한 방법으로 Paas는 큰 도움이 되고 있다.
* 마이크로소프트 Platform,AWS Elastic Beanstalk.
3. Software as a Service
- 이 서비스는 우리 일상생활에 너무나 가까이 있는 것중 하나이다. 소프트웨어 서비스를 클라우드 제공자가 제공해주는 것으로부터 별도 가공없이 고객에게 소비 관점에서 IT 서비스하는 것을 말한다. 일상 생활에서 우리가 사용하고 있는 만큼 커피숍 예는 별도로 들지 않겠다. 네어버 메모장, 구글 드라이브등...이미 많은 Saas형 클라우드 서비스가 제공되고 있으며 우리가 사용하고 있다.
어떠한 서비스가 가장 좋은가요?
정답이 없는 질문이다. 구지 답을 하자면 '그때 그때 달라요~' 이다. 각 기업 또는 사용자가 처한 상황에 따라 어떤 클라우드 서비스를 사용할지 선택해야 할 것이다. 현재 개발을 담당할 구성원들에 따라 달라질 것이고 비지니스 스타일과 규모에 따라서도 달라질 것이다. 절대적 진리로 어떠한 서비스가 좋다고 말할 수 있는것은 IT분야에 없는 것 같다. 우리는 내가 처한 상황에 어떠한 기술을 도입해서 사용할지 정확히 판단할 수 있는 능력과 안목을 키워나가야 할 것이다.
앞으로는 AWS기반으로 클라우드 서비스의 세부적 기술들을 다뤄볼 생각이다. 왜 AWS라고 묻는다면 별의미 없다. 그저 가장 많이 사용되고 있는 서비스이기 때문이다. 너무 많은 기술 앞에 당황하여 선택 장애 본능이 일어날 때, 시장에서 가장 필요로 하는 기술과 앞으로 시장이 필요로 할 기술을 습득해 나가는 것을 추천한다.
'잡학다식 > IT 컬럼' 카테고리의 다른 글
블록 체인이란? (0) | 2017.09.18 |
---|---|
[IT 첫걸음] JAVA8편 람다(lambda) (0) | 2017.04.11 |
[IT 책갈피] Spring Framework 3.x -> 4.x Web Application migration (0) | 2017.03.28 |
[IT 첫걸음] 보기 좋은 코드가 고치기도 쉽다. (0) | 2017.03.21 |
[IT첫걸음] 코딩 작명 비법 (0) | 2017.03.12 |