Cloud
개념
클라우드 컴퓨팅이란 인터넷 기반의 컴퓨팅을 말합니다. 인터넷 상의 가상화된 서버에 프로그램을 두고 필요할때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스입니다.
클라우드(Cloud)라는 단어가 말해주듯, 인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 가져다 쓸 수 있습니다. 구름에 싸여 있다는 것은 그 내부를 보려고 하거나 알지 않아도 얼마든지 내가 원하는 것을 꺼내어 사용할 수 있다는 것이며, 인터넷이 연결된 어느 곳에서든 이것을 보장 받을 수 있다는 뜻입니다.
장점
웹서비스 운영자 입장에서 클라우드를 바라본다면 다음과 같은 장점이 있습니다.
- 서버를 직접 구매할 때 고려해야 할 전력, 위치, 확장성을 고민하지 않고
- 데이터 센터 어딘가에 이미 준비되어 있는 서버를 사용하며,
- 서버 세팅 등을 신경쓰지 않고 서비스 운영에만 집중 가능
또한 서비스 부하에 따라 실시간 확장성을 지원 받을 수 있으며, 사용한 만큼 비용을 지불하기 때문에 서비스 운영에 있어서 효율성이 훨씬 높아진다고 할 수 있습니다.
- 가용성 (High Availability): 클라우드 서비스는 다양한 서버와 데이터 센터에 분산되어 운영되므로 장애 시에도 서비스 지속이 가능합니다. 데이터 백업 및 복구 기능도 향상되어 중단 없는 서비스 제공이 가능합니다
- 확장성: 클라우드 서비스는 필요에 따라 컴퓨팅 파워나 스토리지 등의 리소스를 빠르게 늘릴 수 있습니다. 이는 사용자의 수요나 부하 변화에 따라 신속하게 대응할 수 있도록 해줍니다.
- 탄력성: 클라우드는 수요에 따라 리소스를 확장하거나 축소할 수 있는 능력을 갖추고 있습니다. 또한, 자동화된 확장 기능과 함께 서비스 회복 능력도 뛰어나므로 높은 가용성과 성능을 유지할 수 있습니다
서비스 제공 형태
클라우드 컴퓨팅은 서비스 제공 형태에 따라 퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드로 구분됩니다. 각각은 다음과 같은 특징이 있습니다.
- 퍼블릭 클라우드(Public Cloud, 공공 클라우드, 개방형 클라우드)
특정 기업이나 사용자를 위한 서비스가 아닌 인터넷에 접속 가능한 모든 사용자를 위한 클라우드 서비스 모델입니다. 클라우드 서비스 제공자(CSP)가 하드웨어, 소프트웨어를 관리합니다. 데이터나 기능, 서버 같은 자원은 각 서비스에서 사용자 별로 권한 관리가 되거나 격리 되어, 서비스 사용자 간에는 전혀 간섭이 없다는 장점이 있습니다.
간혹, 공공기관이 도입하는 공공 클라우드와 퍼블릭 클라우드의 공공 클라우드를 혼동하는 케이스가 있습니다. 공공기관이 도입하는 공공 클라우드는 Government Cloud, 공용 인터넷망에 연결된 공공 클라우드는 Public Cloud입니다.
- 프라이빗 클라우드(Private Cloud, 사설 클라우드, 폐쇄 클라우드)
제한된 네트워크 상에서 특정 기업이나 특정 사용자만을 대상으로 하는 클라우드로 서비스의 자원과 데이터는 기업 내부에 저장됩니다. 또한 기업이 자원의 제어권을 갖고 있습니다. 따라서 보안성이 매우 뛰어나며, 개별 고객의 상황에 맞게 클라우드 기능을 커스터마이징 할 수 있다는 장점이 있습니다.
- 하이브리드 클라우드(Hybrid Cloud)
하이브리드 클라우드는 퍼블릭 클라우드와 프라이빗 클라우드를 병행해 사용하는 방식으로 여겨져 왔으나, 최근에는 개념이 모호해진 경향이 있어 클라우드(가상서버)와 온프레미스(물리서버)를 결합한 형태를 말하기도 합니다. 이럴 경우 퍼블릭 클라우드의 유연성, 경제성, 신속성과 물리 서버의 보안성, 안정성 등을 함께 취할 수 있는 장점이 있습니다.
최근 클라우드를 도입하려는 움직임이 늘면서, 전체 워크로드를 클라우드(가상서버)로 이전하기 보다 주요 데이터는 온프레미스(물리서버)에 남겨 두고 이벤트 또는 신규 서비스처럼 트래픽을 예측할 수 없는 워크로드는 클라우드로 이용하는 구성이 증가하는 추세입니다.
서비스 유형
서비스 관리 주체와 수준에 따라 클라우드 서비스를 IaaS, PaaS, SaaS로 구분할 수 있습니다.
- On-premise (온프레미스)
이 형태는 조직이 자체 데이터 센터나 서버 룸에 모든 IT 자원을 보유하고 운영하는 방식입니다. 예를 들어, 한 회사가 자체적으로 서버와 스토리지를 구입하고 설치하며, 운영체제, 보안 패치, 데이터 백업 및 복구 등을 직접 관리하는 것이 포함됩니다.
- IaaS(Infrasture as a Service)
IaaS는 ‘서비스로서의 인프라’를 뜻하는 사용자가 관리할 수 있는 범위가 가장 넓은 클라우드 컴퓨팅 서비스입니다.
인프라 수준의 클라우드 컴퓨팅을 제공해 사용자가 서버 OS부터 미들웨어, 런타임, 그리고 데이터와 어플리케이션까지 직접 구성하고 관리할 수 있습니다.
클라우드 서비스 제공업체(CSP, Cloud Service Provider)는 데이터센터를 구축해 다수의 물리 서버를 가상화해 제공하며, 네트워크, 스토리지, 전력 등 서버 운영에 필요한 모든 것을 CSP가 책임지고 관리합니다.
대표적인 IaaS: Amazon Web Service(AWS)의 EC2와 Google의 Compute Engine(GCE), 그리고 가비아의 g클라우드 등
- PaaS(Platform as a Service)
PaaS는 ‘서비스로서의 플랫폼’이라는 의미를 담고 있습니다. PaaS는 IaaS 형태의 가상화된 클라우드 위에 사용자가 원하는 서비스를 개발할 수 있도록 개발 환경(Platform)을 미리 구축해, 이를 서비스 형태로 제공하는 것을 의미합니다.
PaaS는 운영체제, 미들웨어, 런타임 등을 미리 구축한 상태로 제공하기 때문에 IaaS보다 관리상의 자유도가 낮습니다. 하지만 PaaS 사용자는 서비스 외적인 부분에 신경 쓸 필요가 없고, 오로지 애플리케이션 개발과 비즈니스에만 집중할 수 있으며, IaaS와 마찬가지로 별도의 인프라를 유지하고 운영하는 데 별도의 인력이 소요되지 않기에 하드웨어 및 소프트웨어 인프라 관리에 드는 비용을 절약할 수 있습니다.
대표적인 PaaS: 세일즈포스닷컴의 Heroku나 Redhat(레드햇)의 OpenShift 등
- SaaS(Software as a Service)
SaaS는 ‘서비스로서의 소프트웨어’를 의미하는 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스입니다.
클라우드 인프라 위에 소프트웨어를 탑재해 제공하는 형태로 IT 인프라 자원뿐만 아니라 소프트웨어 및 업데이트, 버그 개선 등의 서비스를 업체가 도맡아 제공합니다.
별도의 비용을 들여 소프트웨어 라이센스를 구매할 필요 없이 월간/연간 구독 형태의 사용료를 지불하고 제공 업체의 소프트웨어를 이용하게 됩니다. SaaS를 이용할 경우 사용자는 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용을 절약할 수 있기 때문에 자체적으로 소프트웨어를 개발하는 것 대비 초기 비용을 대폭 줄일 수 있습니다.
대표적인 SaaS: ‘슬랙(Slack)’, ‘마이크로소프트365(Microsoft 356)’, ‘드롭박스(Dropbox)’ 그리고 ‘세일즈포스(Salesforce)’ 등
웹호스팅 vs 서버호스팅 vs 클라우드 차이점
웹 호스팅, 서버 호스팅, 그리고 클라우드 호스팅은 모두 웹 사이트 또는 애플리케이션을 호스팅하는 다른 방식을 나타냅니다. 각각의 차이점을 살펴보면 다음과 같습니다.
- 웹 호스팅 (Web Hosting):
- 웹 호스팅은 주로 개인 블로그, 소규모 웹 사이트, 온라인 포트폴리오 등과 같은 작은 규모의 웹 사이트를 호스팅하기 위한 방식입니다.
- 대개 호스팅 공급자가 이미 구축된 서버에 여러 웹 사이트를 공유해서 호스팅합니다. 이는 비교적 저렴하고 간편한 해결책입니다.
- 주로 공유 호스팅, 가상 사설 서버 (VPS), 리샐러 호스팅 등이 웹 호스팅의 형태입니다.
- 서버 호스팅 (Dedicated Server Hosting):
- 서버 호스팅은 전용 서버를 임대하여 사용하는 방식으로, 한 대의 서버가 특정 웹 사이트 또는 애플리케이션을 위해 사용됩니다.
- 이는 더 많은 자원과 제어권을 제공하기 때문에 대규모 웹 사이트나 비즈니스 애플리케이션에 적합합니다.
- 서버 호스팅은 웹 호스팅보다는 더 높은 가격과 기술적인 능력이 필요합니다.
- 클라우드 호스팅 (Cloud Hosting):
- 클라우드 호스팅은 가상화된 리소스를 사용하여 웹 사이트나 애플리케이션을 호스팅하는 방식입니다. 클라우드 공급자는 여러 대의 서버를 묶어서 하나의 클라우드 인프라를 구축합니다.
- 가용성, 확장성, 탄력성 등을 강조하며, 필요에 따라 리소스를 늘리거나 축소할 수 있습니다.
- 주로 고가용성을 필요로 하는 중요한 웹 애플리케이션, 대규모 웹 사이트, 온라인 서비스 등에 사용됩니다.
요약:
- 웹 호스팅: 작은 규모의 웹 사이트를 저렴하고 간편하게 호스팅하는 방식.
- 서버 호스팅: 전용 서버를 사용하여 높은 성능과 제어권을 제공하는 방식.
- 클라우드 호스팅: 가상화된 리소스를 사용하여 확장 가능하고 고가용성을 갖춘 호스팅 방식.
각 방식은 사용자의 요구 사항, 예산, 기술적인 요건에 따라 선택될 수 있습니다.
'몰입 교육' 카테고리의 다른 글
서버리스(ServerLess) (0) | 2023.08.05 |
---|---|
MSA(Micro-Service Architecture) 설계 (1) | 2023.07.31 |
네트워크 기초 (0) | 2023.07.28 |
GIt 사용자 지정 및 버전 커밋하기 (0) | 2023.07.26 |
Git(Gitbash) 설치 및 다운로드(window) (0) | 2023.07.25 |