AWS? 클라우드 컴퓨팅이 무엇인가요?

클라우드 컴퓨팅
클라우드 컴퓨팅이란 기존 IDC처럼 전통적으로 서버를 제공해주는 방식과는 또 다른 방식으로 서버를 제공해주는 방식입니다.
보통 전통적인 방식은 회사가 자사의 시설, 혹은 IDC에 자체적으로 컴퓨터 서버를 두고 운용하는 온-프레미스(on-premise) 방식입니다.
그리고 아마존의 AWS, 구글의 GCP, 마이크로소프트의 Azure, 네이버 클라우드 플랫폼 같은 것들이 클라우드 컴퓨팅 서비스입니다.

전통적인 온-프레미스 방식은 비유하자면 특정 공간을 배정 받아 그 공간에 제가 원하는 대로 집을 짓고 사는 것이라고 할 수 있습니다.
반면 클라우드 컴퓨팅 서비스는 호텔방에 사는거라고 할 수 있습니다.
전통적인 온-프레미스 방식은 모든걸 제 마음대로 할 수 있으니까 커스터 마이징에 강점이 있겠네요.
반면 클라우드 컴퓨팅 서비스는 호텔방 안의 물건들을 제 마음대로 바꿀 수는 없으니 커스터 마이징에는 약할 것이고요.
하지만, 이미 웬만한 것들이 세팅되어있으니 편할 겁니다.
하지만 온-프레미스 방식은 특정 공간을 배정 받아 (- IDC에서 컴퓨터 한대를 배정받은 것과 같습니다.) 너무 필요 이상의 공간을 받았을 수도 있겠죠.
반대로 제가 그 공간을 다 활용하고나면 더 이상 쓸 공간이 없어집니다.
반면에 호텔방은 제가 필요한 공간 만큼 사용할 수 있죠. 작은 방을 원하면 작은 방을 선택해 들어가고 큰 방을 원하면 큰 방을 선택해 들어가면 됩니다.
또한 방이 더 필요하다면 호텔에 돈을 더 지불해 사용하면 되죠.

클라우드 컴퓨팅 방식과 온-프레미스 방식은 이런점들이 차이점이라고 할 수 있습니다.
정말 간단하게 공간을 정말 내가 필요한만큼 할당받을 수 있냐 없냐, 커스터마이징을 할 수 있냐 업냐의 차이라고 볼 수 있겠죠.
클라우드 컴퓨팅 원리
이 클라우드도 역시 자사의 거대한 데이터 센터에 서로 연결된 수많은 컴퓨터들을 운용하고 있습니다.
다만, 전통적인 서버 방식처럼 사용자에게 컴퓨터를 하나씩 통째로 배당하는게 아니라 필요한만큼 떼어서 나누어줍니다.

컴퓨터가 두부처럼 썰 수도 없는건데, 어떻게 떼어서 나누어주냐고요?

가상 컴퓨팅이란 기술을 사용하면 물리적 컴퓨터 한 대에 가상의 컴퓨터 여러 대를 띄울 수 있습니다.
맥북 쓰시는 분들 보면, 페러렐즈 같은 걸로 맥에 위도우도 같이 띄워서 쓰기도 하죠?
컴공하시는 분들 중에는 버추어 박스 같은 걸로 윈도우에 우분투 깔아 쓰느라 고군분투해보신 분들도 있을 겁니다.
그런게 가상 컴퓨팅입니다.
컴퓨터의 물리적 자원을 필요에 따라 분할해서 쓸 수가 있는 거죠.
사용자는 원격 접속 소프트웨어를 이용해서 마치 컴퓨터 한대를 이용하는 것처럼 인터넷으로 연결된 이 가상 컴퓨터를 이용하는 겁니다.
필요한 컴퓨터 자원이 많지 않거나 수시로 변화하는 회사나 기관, 혹은 개인에게 클라우드는 아주 매력적인 선택이 됩니다.

세일 시즌이나 이벤트 기간에 유난히 접속량이 폭주하는 앱의 경우 클라우드는 그때그때 필요한 만큼 자원을 늘려주거나 줄여줄 수 있습니다.
시간이나 접속량에 따른 종량제로 운영되니까 필요한 만큼만 쓰고 돈을 지불하면 됩니다.
하드웨어도 클라우드에서 알아서 관리해주니까 걱정할 필요 없고, 여기에 비용을 더 지불하면 예전엔 회사에서 자체적으로 해야 했던
데이터베이스, 자료백업, 스토리지, 자동화, 머신러닝, 심지어 블록체인까지 검증된 최고급 프로그래머들이 구현해놓은 걸 서비스로 이용할 수 있습니다.
그런 것들을 직접 개발하고 관리하는데 써야 했던 시간적, 인적, 물적 비용을 회사의 주요 업무에 집중할 수 있으니까
시스템 엔지니어, DB 전문가 같은 고급 인력을 일일이 고용할 여력이 없는 중소기업이나 벤처에게 굉장히 유용합니다.

그러나 작은 회사들만 사용하는 게 아닙니다.
글로벌한 서비스를 하는 대기업들은 각국 사업소들로부터의 정보를 실시간으로 통합하고, 거점마다 IT 인력을 배치하고 하는 게 큰 부담이거든요.
클라우드의 거대한 인프라가 이걸 대신해주니까 국제적으로 활동하는 대기업들도 클라우드를 활용합니다.
물론 비용이나 기밀보안 등 한계도 있기 때문에 회사들은 온프레미스와 클라우드 중에 이것저것 따져보고 적합한걸 선택할겁니다.
클라우드 서비스의 종류
클라우드 컴퓨팅 서비스도 클라우드에서 어디까지 해주느냐에 따라 크게 세단계로 나뉩니다.
먼저 IaaS(Infrastructure as a Service) - 하드웨어.
서비스로 제공되는 인프라입니다.
가상 컴퓨터, 즉 하드웨어 자원의 일부를 떼어주는 겁니다.
클라우드에서는 거의 하드웨어만 관리하고, 내가 직접 가상서버 하나를 본체 사서 윈도 깔고 드라이버 다운받고 프로그램 깔고 하듯이 운영하고 관리한다고 생각하면 됩니다.
클라우드들의 대표적 상품이죠.

PaaS (Platform as a Service) - 하드웨어, 가상서버
플랫폼이 서비스로 제공되는 겁니다.
여기선 이 가상 컴퓨터도 내가 신경 쓸 필요 없이 클라우드가 관리해줍니다.
나는 소프트웨어만 만들어 올리면 되는 겁니다.
내가 짠 코드를 압축해서 업로드하거나 깃으로 전송하면 클라우드에서 알아서 서버에 넣고 돌려줘요.
[배포]한다고 하죠. 난 코드만 짜면 되니까 진짜 편합니다.

SaaS
이건 아예 다 만들어진 소프트웨어를 서비스로 제공합니다.
여러분들이 이미 많이 쓰시는 에버노트, 드랍박스, 구글닥스, 온라인 페이, SNS, 이메일, 유튜브 등등
사용자들이 바로 온라인으로 이용할 수 있는 서비스들은 SaaS라고 보시면 됩니다.
laaS 제공
Amazon Web Services, Google Cloud Platform Compute Engine, Microsoft Azure, Naver Cloud Platform
새 가입자에게 1년간 laaS(외 다수) 무료 이용권 제공
작은 서비스를 운영하기엔 충분한 리소스를 제공해줍니다.
PaaS 제공
heroku, 넷리파이
일정부분까진 무료로 제공