클라우드 파헤치기 (1) 클라우드와 온프레미스
'구름빵과 클라우드' 전 편에서 예고했던 대로 서버(Server)에 대해서 정확하게 짚고 넘어가 보려고 한다. 그동안 일상생활 속에서 숱하게 들어왔던 용어이지만 정의를 정확하게 설명하기는 어려웠던 용어가 아닐까?
'서버'와 짝꿍으로 등장하는 '클라이언트'와 함께 서버가 클라우드 서비스에 있어서 어떤 의미를 갖는지에 대해서 생각해보려고 한다.
대학교 수강 신청이나 유명 가수의 콘서트 예매처럼 일시적으로 수많은 사람들이 접속하는 경우에 사이트에 접속하지 못하는 경우가 종종 발생하곤 한다. 새롭게 출시된 게임의 경우에도 수많은 사용자들이 몰리면서 게임에 정상적으로 접속할 수 없는 상황이 발생한다. 이러한 상황이 발생하는 이유 중 하나는 바로 '서버가 다운'되었기 때문이다. '서버 관리'를 제대로 하지 못한 탓으로 종종 서버 관리자들을 원망하지만, 과연 그것이 서버 관리자들만의 잘못일까?
이 문제의 과실을 따지기 전, 먼저 '서버(server)'에 대해서 알아보자. 서버란 쉽게 말해 데이터를 저장하고 앱과 웹 사이트를 구동하는 데 특화된 고성능 컴퓨터를 의미한다. 즉, 네트워크를 통해 서비스를 제공하는 컴퓨터를 의미하며, 제공하는 서비스가 무엇이냐에 따라서 애플리케이션 서버, 데이터베이스 서버, 메일 서버 등 다양한 형태와 종류를 지니게 된다. 키보드, 마우스, 모니터와 같은 입출력 장치들이 연결되어 있지는 않지만, 사용자들이 사용하는 앱들이 꺼지지 않고 실행될 수 있도록 항상 전원이 켜진 채로 '데이터 센터'라는 건물에 가지런히 배치되어 있다.
그렇다면 이번에는 서버와 짝꿍인 '클라이언트'의 개념을 통해 서버가 구체적으로 어떤 역할을 담당하는지를 살펴보자. 이를 이해하기 위해 먼저, 당신이 이 글을 읽기 위해 어떤 과정을 거쳤는지 생각해보자. 가장 먼저는 브런치 사이트에 접속하거나 검색을 통해 이 글을 찾아 제목을 눌렀을 것이다. 이 경우 브런치 사이트로 연결되어 브런치 안에 있는 이 글을 보여주었을 것이다. 그렇다면, 브런치 사이트는 어떻게 등장한 것일까? 이 글의 제목을 누르면 어떻게 이 글이 보이게 되는 것일까?
사용자가 브런치 사이트를 검색하고 접속하며, 그 안에서 글을 읽기 위한 요청을 하면 그 요청에 응답하는 것이 바로 '서버'인 것이다. 거의 모든 컴퓨팅에서 사용되는 '클라이언트-서버'모델은 바로 클라이언트가 요청하는 서비스를 서버가 제공하는 형태를 말한다. 즉, 클라이언트는 사람이 컴퓨터 서버에 요청(request)을 보내기 위해 상호작용하는 웹 브라우저나 애플리케이션을 의미하고, 서버는 이 요청을 평가하고 클라이언트에 정보를 반환(response)하여 요청을 이행하는 컴퓨터를 뜻한다.
그렇다면 다시 돌아와서, 우리가 원망했던 서버 관리자들의 입장을 살펴보자. 클라이언트의 요청을 이행하여 일을 잘할 수 있는 서버를 확충하면 되지 않느냐고 요청해볼 수도 있겠다. 하지만 기업 입장에서는 서버를 늘리는 것이 그렇게 간단한 문제만은 아니다. 사실, 사람들이 몰리는 경우는 일시적인 경우에 불과하고 오히려 대부분의 경우에는 접속자가 그만큼 몰리지 않는다. 블랙프라이데이에 쇼핑몰에 접속하는 접속자의 수와 일반적인 비성수기의 평일에 쇼핑몰에 접속하는 접속자의 수는 확연히 다르다는 점을 생각해보면 된다.
따라서, 일 년에 몇 번 되지 않는 큰 이벤트들을 위해서 피크 타임에 맞게 서버를 구축하게 된다면 대다수의 시간에는 그 서버들이 요청을 수행하지 않는 유휴 상태로 있게 된다. 그리고 이것이 큰 비효율로 다가오는 이유는 바로 서버를 확충하고 이를 운영 및 유지하는 데에 드는 시간과 비용이 상당하기 때문이다. 서버실을 만드는 데에는 서버, 스토리지, 네트워크 장비와 같은 H/W 와 S/W 조달 자체뿐만 아니라 이를 제대로 유지하기 위한 전기, 공조, 냉온/냉습, 물리적 보안 등 데이터 센터를 구축하는 시설 비용이 든다. 단기간에 많은 투자를 해야 하기 때문에 기업 입장에서는 더욱 신중할 수밖에 없는 것이다. 이제는 단지 서버 확충만을 외칠 수 없지 않을까?
혹여나 서버실 확충이 소비자 및 사용자들을 위해서는 필수 불가결한 것이라고 아직 주장하는 분들을 위해 온프레미스 방식과 클라우드를 비교하여 소개해보고자 한다. 온프레미스 방식이란 기업이 IT 시스템 운용에 요구되는 데이터 센터에 다수의 *H/W와 S/W 설비를 자체적으로 보유하고 운용하는 방식을 의미한다. 즉, 기업이 직접 전산실을 구축하고 운영하는 전통적인 방식을 말하는 것으로 '클라우드'의 반의어로도 통용된다.
(*하드웨어(H/W) : 물리 서버, CPU, 메모리, 네트워크 장비, 저장 장치 등을 포함하는 개념
소프트웨어(S/W) : 운영체제, 플랫폼, 유틸리티, 애플리케이션, 그룹웨어 등을 포함하는 개념)
반면, 클라우드 방식은 '서비스에 필요한 IT 리소스를 보유하지 않고 필요할 때만 빌려서 사용할 수 없을까?'라는 질문에 대한 해답으로서 시작된 것이다. 즉, 직접 데이터 센터를 구축하는 것이 아니라 클라우드 서비스 제공자가 제공하는 IT 리소스를 빌려 사용하는 렌털 서비스의 형태인 것이다. 따라서, 클라우드 사용자/기업은 웹 브라우저 혹은 클라우드 서비스 전용 소프트웨어를 통해 IT 리소스를 언제 어디서든지 이용할 수 있게 된다.
그렇다면, 어떻게 '클라우드' 방식이 '온프레미스 방식'의 대체재가 될 수 있을지에 대해서 생각해보자. 위에서도 언급했듯이 일단 도입 방식 측면에 있어서 클라우드는 물리적으로 데이터 센터를 구축할 필요가 없다는 장점을 가진다. 그렇다면, 이번에는 도입하는 데에 들어가는 비용 측면에서 살펴보자. 왜 온프레미스 방식은 최초 도입 시 많은 투자비가 필요한 걸까?
온프레미스 시스템을 구축하기 위해서는 최소한 위의 다섯 가지의 과정을 거쳐야만 한다. 먼저, 요구 기능을 수집해야 한다는 측면에서 온프레미스 시스템의 구축에는 쉽지 않은 노력과 비용이 들어간다. 이는 IT 리소스의 용량 계획을 수립하는 것으로서 기존의 리소스 활용량 변화의 추이를 살피고, 향후 필요할 것으로 예상되는 리소스의 양을 계획하는 것이다. 이후 시스템을 설계하고 조달하여 구축한 뒤 유지 보수 및 운영을 하는 과정까지 거치게 되는 것이다.
반면, 클라우드를 사용하게 된다면 많은 시간과 비용이 소요되었던 요구 기능 수집의 단계를 스킵할 수 있게 된다. 그 이유는 클라우드 서비스의 비용은 'Pay-as-you-go' 방식으로 운영되기 때문이다. 즉, 원하는 만큼을 먼저 사용 한 이후에 비용을 지불하는 방식이기 때문에 사전에 필요한 리소스에 대한 계획이 온프레미스 시스템만큼 철저할 필요가 없다는 것이다. 이는 클라우드 서비스의 가장 큰 특징으로 볼 수 있으며, 시스템 도입을 하는 데에 들어가는 초기 비용을 상당 부분 줄여줄 수 있다.
또한 도입 기간에 있어서도 온프레미스 시스템은 위의 5가지 단계를 거쳐야 하기 때문에 최소 2주, 많게는 몇 달까지도 기간이 소요될 수 있다. 요구 기능을 수집하는 과정뿐만 아니라 물리적인 서버를 조달하고 구축하는 과정 역시 많은 시간을 필요로 한다. 한편, 클라우드의 경우에는 이러한 과정을 거치지 않아도 되며 클릭 몇 번으로 서버 증설이 가능하다. 따라서 필요한 그 순간, 반영되는 시간을 고려하더라도 최대 1일 이내에 원하는 서비스를 이용할 수 있다.
이는 곧, 클라우드 서비스와 온프레미스 시스템 각각의 효율성과도 직결되는 문제이다. 온프레미스 시스템은 최대 용량을 산정하고 이 계획에 따라 서버를 구축하게 되기 때문에, 유휴 리소스가 많아질 확률도 무시할 수 없다. 그리고 서버를 조달하고 구축하는 데에도 시간과 비용이 지출되기 때문에 이는 기업의 입장에서는 비효율성을 증대시키는 원인이 된다. 한편, 클라우드 시스템은 서버 증설을 원하는 시간과 장소에서 할 수 있다는 점에서 효율적인 관리를 가능케 한다.
물론 온프레미스 방식의 반의어가 클라우드 방식이지만, 그 두 방식은 무조건 적으로 양자택일을 해야만 하는 것은 아니다. 기업의 입장에서는 기존의 온프레미스 방식을 유지하는 동시에 일부 데이터를 저장하거나 서비스를 실행하는 데에 있어서만 클라우드 서버를 이용할 수도 있는 것이다. 혹은 작은 업무에서부터 조금씩 클라우드로 이관하여 클라우드 기반 시스템의 경험을 먼저 축적한 후에 점진적으로 클라우드로 이관하는 방식을 사용할 수도 있다.
다만, 클라우드 방식이 온프레미스 방식과 대비했을 때 효율적인 부분에 대해 인지하고 어떻게 제대로 활용할 수 있을지에 대해서 진지하게 고민해보아야 할 필요가 있다는 생각이 든다. 그리고 이를 위해서는 클라우드의 이면에 대해서도 반드시 알아야 한다. 본문에서는 온프레미스 방식에 대비한 클라우드 방식의 장점에 대해서 주로 서술했지만, 사실 클라우드 방식에서도 보안의 취약함이나 법적 규제와 같은 문제점들이 존재한다. 다음 화에서는 이어서 클라우드 방식이 가지고 있는 문제점들에는 어떤 것들이 있는지 살펴보자.
[참고]
1. IT 좀 아는 사람 '비전공자도 IT 전문가처럼 생각하는 법', 닐 메타, 아디티야 아가쉐, 파스 디트로자 지음, 김고명 옮김, 윌북 출판
2. 클라우드 컴퓨팅, 정재화 지음, 방송통신대학교 출판문화원 출판
3. AWS Skill Builder - CCP 모델 강의 참조
4. 퉁퉁코딩, https://www.youtube.com/watch?v=cAQPmK340-s
5. 이미지 출처 : https://wakeupcoders.medium.com/introduction-to-the-world-of-cloud-computing-61ebcef86318