Cloud란?
면접을 진행하였는데, MSA에대한 질문이 나왔다. 대답을 하였는데, 정말 초등학생같은 답변을 하였다..그래서 공부를 해야겠다 마음먹었고, 아래 이도원님의 강의와 함께 진행하려고한다..
Cloud란? 클라우드란 무엇일까?
구름.. 클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅 가상화된 서버에 프로그램을 두고 필요시마다 불러와 사용하는 서비스 이다. 인터넷 통신망 어딘가에 있기에, 컴퓨팅 자원을 원하는대로 가져올 수 있으며, 인터넷만 연결되어있다면 어디서든 보장받을 수 있다.
장점(웹 서비스 운영자 입장)
- 서버를 직접 구매할 때, 고려해야 할 전력, 위치, 확장성을 고민하지 않고
- 데이터 센터 어딘가에 이미 준비되어 있는 서버를 사용하며,
- 서버 세팅 등을 신경 쓰지 않고 서비스 운영에만 집중 가능
또한 서비스 부하에 따라 실시간으로 확장성을 지원 받을 수 있어, 사용한 만큼 비용을 지불 할 수 있다.
내가 이해한 바로는 예를들어, 서버 사용자가 100명이고, 해당 서버를 1억을 주고 운용하는데, 만약 이벤트를 하여 이벤트 기간에 서버 사용자가 1000명이면 이벤트 하나 때문에 서버 운용비용이 10억이든다. 이러한 것을 신경 쓰지 않기 위해 클라우드를 사용하는 것이 아닐까? 라는 생각을 했다.(장점을 두고 생각함)
서비스 제공 형태
퍼블릭 클라우드
특정하는 것이 아닌 인터넷에 접속 가능한 모든 사용자를 위한 클라우드 서비스 모델이다
데이터나 기능, 서버 같은 자원은 각 서비스에서 사용자 별로 권한 관리가 되거나 격리 되어, 서비스 사용자 간에는 전혀 간섭이 없다는 장점이 있습니다.
프라이빗 클라우드
제한된 네트워크 상에서 특정 기업이나 특정 사용자만을 대상으로 하는 클라우드로 서비스의 자원과 데이터는 기업 내부에 저장됩니다. 또한 기업이 자원의 제어권을 갖고 있습니다. 따라서 보안성이 매우 뛰어나며, 개별 고객의 상황에 맞게 클라우드 기능을 커스터마이징 할 수 있다는 장점이 있습니다.
하이브리드 클라우드
하이브리드 클라우드는 퍼블릭 클라우드와 프라이빗 클라우드를 병행해 사용하는 방식으로 여겨져 왔으나, 최근에는 개념이 모호해진 경향이 있어 클라우드(가상서버)와 온프레미스(물리서버)를 결합한 형태를 말하기도 합니다
최근 클라우드를 도입하려는 움직임이 늘면서, 전체 워크로드를 클라우드(가상서버)로 이전하기 보다 주요 데이터는 온프레미스(물리서버)에 남겨 두고 이벤트 또는 신규 서비스처럼 트래픽을 예측할 수 없는 워크로드는 클라우드로 이용하는 구성이 증가하는 추세입니다.
서비스 유형
서비스 관리 주체와 수준에 따라 클라우드 서비스를 IaaS, PaaS, SaaS로 구분할 수 있습니다.
IaaS(Infrasture as a Service)
IaaS는 사용자가 관리할 수 있는 범위가 가장 넓은 클라우드 컴퓨팅 서비스이다.
클라우드 서비스 제공업체는 데이터 센터를 구축해 다수의 물리서버를 가상화해 제공하며, 네트워크, 스토리지, 전력 등 서버 운영에 필요한 모든것을 관리 한다
예) EC2, GCE 등이 있다.
PaaS
PaaS는 ‘서비스로서의 플랫폼’이라는 의미를 담고 있습니다. PaaS는 IaaS 형태의 가상화된 클라우드 위에 사용자가 원하는 서비스를 개발할 수 있도록 개발 환경(Platform)을 미리 구축해, 이를 서비스 형태로 제공하는 것을 의미합니다.
PaaS는 미리 구축한 상태로 제공하기에, IaaS보다 관리상의 자유도는 낮다 하지만 사용자는 서비스 외적인 부분에 신경 쓸 필요가 없고 오로지 애플리케이션 개발과 비즈니스에만 집중할 수 있으며,별도의 인프라를 유지하고 운영하는 데 별도의 인력이 소요되지 않기에 하드웨어 및 소프트웨어 인프라 관리에 드는 비용을 절약할 수 있다.
예) Redhat(레드햇)의 OpenShift 등
SaaS
‘서비스로서의 소프트웨어’를 의미하는 SaaS는 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스입니다.
클라우드 인프라 위에 소프트웨어를 탑재해 제공하는 형태로 IT 인프라 자원뿐만 아니라 소프트웨어 및 업데이트, 버그 개선 등의 서비스를 업체가 도맡아 제공합니다.
별도의 비용을 들여 소프트웨어 라이센스를 구매할 필요 없이 월간/연간 구독 형태의 사용료를 지불하고 제공 업체의 소프트웨어를 이용하게 됩니다. SaaS를 이용할 경우 사용자는 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용을 절약할 수 있기 때문에 자체적으로 소프트웨어를 개발하는 것 대비 초기 비용을 대폭 줄일 수 있습니다.
예) 슬랙, 마이크로소프트 365 등
참고
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의
Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해
www.inflearn.com
https://library.gabia.com/contents/infrahosting/9114/
가비아 라이브러리
IT 콘텐츠 허브
library.gabia.com