가상화 vs 클라우드
사내에서 기존처럼 WEB/WAS 구축 중에 어느 날 기존과 hostname이 다른 서버가 등장했다.
알고보니 사내 클라우드에 올라간 서버가 신규로 구축된 것이었다.
IDC에 올라간 서버들과 동일하게 설치작업을 진행했는데, 알 수 없는 이유로 서버간 통신이 안되 설치가 잘 안됬다.
사수: “클라우드는 화이트리스트라 방화벽 오픈신청 해야될껄?”
나: “아.. 가상화 해서 그래요 ?”(아무말 대잔치)
사수: “ㅇㅇ. 근데 IDC에 있을때도 가상화한거긴 해”
나: “???”
(*화이트리스트: 허가된 사용자만 서비스를 사용할 수 있도록 하는 보안 정책 방법 중 하나.)
그리하여 클라우드와 가상화 기술의 차이점을 알아보는 시간을 갖게 되었다.
가상화
컴퓨터에서 컴퓨터 리소스를 추상화하는 기술. 물리적인 컴퓨터의 리소스를 나눠서 여러대가 있는 것 처럼 사용하는 기술.
클라우드
인터넷 기반의 웹 소프트웨어로 서비스를 제공하고 실시간 확장성을 보장하며 사용한 만큼 비용을 부과하는 서비스의 형태. -> 돈내면 기능/자원을 주는 서비스 정도로 해석할 수 있음.
클라우드의 특징 몇가지
즉, 클라우드에도 가상화 기술이 쓰이는데 클라우드는 위와 같이 4가지 특징을 갖는 서비스를 뜻한다.
클라우드 서비스에는 IaaS(Infra as a Service), PaaS(Platform as a Service), SaaS(Software as a Service) 와 같이 다양한 종류의 서비스들이 존재한다.
우리가 익히 들어본 AWS의 EC2, GCP의 GCE는 IaaS에 속하고, AWS의 S3등이 PaaS에 속하는 제품이다.
클라우드 서비스 제공 모델
보안/정책 등의 관점에서 어떠한 모델로 가져갈 것인가에 대한 표현이다.
- 퍼블릭 클라우드 : 돈만 내면 누구나 쓸 수 있음. 예) 아마존 AWS, 구글 GCP, 마이크로소프트 Azure.
- 프라이빗 클라우드 : 기업이 내부 인프라에 구축하여 내부에서만 이용하는 사내 클라우드.
이 외에도 하이브리드 클라우드, 커뮤니티 클라우드 등의 모델도 있다.
서비스 제공 모델에 따라 보안정책에 제한이 생긴다.
MSA와 클라우드의 관계
클라우드와 MSA는 뗄레야 뗄 수 없다. Dev의 측면에서 MSA가 핫이슈라면 Ops의 측면에서는 클라우드가 핫하다.
근데 왜?
- 요즘 개발 트렌드는 모놀리틱 아키텍처
-> MSA(MicroService Architecture). 작게 가고 있다.
모놀리틱 아키텍쳐는 최대 사용량만큼의 리소스를 확보하고 있어야 하는데, MSA에서는 필요하면 늘리면 되고 늘리면 늘린만큼 돈 내면 된다.
즉, 모놀리틱 아키텍처는 클라우드의 온디맨드, 리소스 풀링 등의 태생과 맞지 않음. - 또한 클라우드는 ‘Agile/애자일’ 개발방법론과도 어울린다.
애자일은 미리 완성된 서비스의 형태를 완벽히 정의, 설계하고 가는게 아니라 기본기능 개발하고 다음단계 프로토타입 개발하고 또 다음을 개발하고 ..
최종 서비스의 형태를 완벽히 그리고 가지 않는다. 즉, 사용자/트래픽을 예측할 수 없다.
이런 경우에 클라우드가 잘 어울린다.
이렇게 클라우드와 일반 가상화 차이점에 대해서 정리해보았다.
요약하면 가상화는 ‘기술’ 이고 클라우드는 이 기술을 이용하여 만든 ‘서비스’이다.
다음엔 컨테이너와 가상화와의 차이점에 대해서도 정리해봐야 겠다.