Judaeng
Cloud Computing 알아보기 본문
클라우드 컴퓨팅이란 클라우드를 통해 가상화된 컴퓨터의 시스템 리소스를 요구하는 즉시 제공하는 것으로 인터넷 기반 컴퓨팅의 일종으로 정보를 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술을 의미한다.
직접 서버를 운영 할 수 있는 기술이 부족한 중소기업들이 주로 CSP를 통해 서비스를 제공받는다.
일반적인 이유는 사용한 클라우드 서비스에 대해서만 요금을 지불하므로, 운영 비용을 낮추고 인프라를 보다 효율적으로 운영할 수 있다.
그 뿐만 아니라, 비즈니스 요구 사항의 변화에 따라 규모를 조정할 수도 있다.
만약 클라우드 서비스를 이용하지 않는다면 IDC, 서버, 스펙, 네트워크 구조 등 다 신경을 써야 되기에 그만큼 인력 및 투자금이 많이 들어가게 된다.
Auto Scaling기능을 통해 편리하여 사용자 수 변동이 큰 게임 업체의 경우는 클라우드 서비스를 통해 서비스를 제공하고 있다.
(오픈 때 사용자 수가 몰려 트래픽이 많기에 서버가 많이 필요하고, 후에는 사용자 수가 줄어들기에 서버수를 줄이기 편해야 된다.)
*네이버 N드라이브, 구글 드라이브, 아마존 S3, 애플 iCloud, Dropbox 등이 클라우드 컴퓨팅 서비스이다.
🤷♂️클라우드 컴퓨팅 등장 배경
서버실과 같은 곳에 컴퓨터를 배치하고, 컴퓨팅 능력이 더 필요하다면 같은 공간에 더 많은 컴퓨터를 추가하고, 컴퓨터 성능 업그레이드를 한다.
클라우드 등장 이전의 방식은 흔히 말하는 전산실 등에 컴퓨터를 배치하고 인터넷을 연결하여 서비스를 제공했다.
그런데 만약 서버가 요청에 대한 수용 능력이 한계에 도달한다면 어떻게 대처하나요?
같은 공간에 더 많은 컴퓨터를 제공하여 한 대가 해결할 수 있는 요청을 여러 대가 나누는 방식을 사용할 수 있다.
혹은 컴퓨터 한 대의 성능을 높이는 방식을 사용할 수도 있다.
하지만 이런 방식은 몇 가지 문제점들을 가지고 있다.
🤷♂️On-premise(온프레미스)
온프레미스(On-premise)란 소프트웨어 등 설루션을 클라우드 같이 원격 환경이 아닌 자체적으로 보유한 전산실 서버에 직접 설치해 운영하는 방식을 말한다.
클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었다.
그럼 기존의 서버 방식의 문제점을 알아보자.
첫째. 주기적인 관리가 필요하다.
흔히 말하는 서버실에는 종종 고장이 나거나 인터넷과 연결이 되지 않는 컴퓨터가 생기기도 한다.
이런 상황이 발생한다면 이를 해결하기 위한 인력 및 비용이 투입되어야 했다.
그러나 점차 관리해야 하는 컴퓨터 및 다른 전자기기의 수가 많아지는 만큼 투입되어야 하는 인력 및 비용도 증가하기 시작했다.
둘째. 공간의 한계가 있습니다.
예전의 방식은 서버실이라는 공간에 컴퓨터를 배치해 두고 필요할 때마다 추가적인 컴퓨터를 추가하는 방식으로 수용 능력을 향상해 왔다.
하지만 이런 방식은 공간이 부족하여 컴퓨터를 더는 배치할 수 없는 문제에 직면하게 된다.
이런 상황에서 서버의 컴퓨팅 능력을 늘리려는 방법은 컴퓨터의 성능을 높이고 부피를 줄여 좀 더 많은 컴퓨터를 같은 공간에 배치하는 방법이었다.
이런 상황에서 추가적인 서버 증설이 어렵게 되자 일부 거대 기업은 데이터센터라는 거대한 건물을 세우기 시작했다.
이때부터 데이터센터의 유휴 자원을 대여하는 서비스가 등장하기 시작했습니다.
즉 서버의 자원과 공간, 및 네트워크 환경을 제공을 빌려 사용하는 클라우드 컴퓨팅이 시작된 순간이다.
앞서 말했듯이, 데이터 센터에서는 서버의 자원과 공간, 및 네트워크 환경을 제공한다.
(이러한 환경을 "온프레미스"라고 부릅니다)
🤷♂️클라우드(Cloud) = 오프 프레미스(Off-premise)
현대의 클라우드 컴퓨팅은 앞서 설명한 데이터 센터와 비슷한 역할을 하지만, 물리적인 컴퓨터가 아닌, 가상 컴퓨터를 대여한다는 점이 다르다.
이는 가상화(Virtualization) 기술의 발전으로부터 비롯되었다.
따라서, 최근의 가상화 기술을 사용하는 클라우드 서비스는 기존의 온프레미스 형식과는 달리 다음과 같은 장점이 있다.
클라우드의 장점
1. 필요할 때마다 컴퓨팅 능력을 유연하게 조절할 수 있습니다.
2. 고정적인 비용이 들어가는 온프레미스와는 달리 사용한 만큼의 요금만 지불하면 됩니다.
3. 컴퓨터의 스냅샷("이미지"라고 부릅니다)을 이용해 다른 컴퓨터로 즉시 이주(migration)가 가능합니다.
클라우드의 단점
1. 운영 환경 자체가 클라우드 제공자에게 종속되어 버리므로, 클라우드 서비스에 문제가 생기면 내가 배포하고 관리하는 환경(내 애플리케이션)에도 영향이 미칩니다.
간혹 뉴스 등을 통해 아마존 웹 서비스의 장애로 특정 서비스의 서버가 지연되었다는 기사가 난 적이 있다.
운영환경이 특정 클라우드 사업자(vendor)에게 종속된다는 얘기는, 백엔드 구성 자체가 특정 회사의 기술로만 구성해야만 하는 경우가 발생할 수도 있다는 이야기이다.
따라서 AWS와 같은 대표적인 클라우드 사업자가 제공하는 기술을 익히는 것도 중요하지만, 그만큼 이 인프라 자체에 대한 이해가 더욱 중요하다.
이런 클라우드는 모든 것을 서비스화하는 것을 목표로 한다.
🤷♂️대표적인 클라우드 서비스 형태
대표적인 클라우드 서비스의 형태는 SaaS, IaaS, PaaS 세 가지이다.
✏️SaaS는 Software as a Service의 약자입니다.
클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공하는 경우 대부분 SaaS에 해당합니다.
✏️PaaS는 Platform as a Service의 약자입니다.
대부분 클라우드 제공자가 데이터베이스, 개발 플랫폼까지 제공하는 경우 대부분 PaaS에 해당합니다.
✏️IaaS는 Infrastructure as a Service의 약자입니다.
클라우드 제공자가 가상 컴퓨터까지 제공하는 경우 대부분 IaaS에 해당합니다.
예를 들어 여러분이 피자라는 서비스를 제공해준다고 생각해보자.
서비스의 범위는 여러분이 어떤 식으로 피자를 제공해주는지에 따라 달려있다.
레스토랑과 같이 모든 테이블과 탄산음료 등의 서비스를 전부 제공해줄 수도 있고, 처음부터 끝까지 내가 모든 피자 조리와 재료, 심지어 서빙까지 스스로 해야 할 수도 있을 것이다.
클라우드 제공자로부터 얼마만큼의 서비스를 제공받느냐에 따라서, 이러한 서비스의 형태가 구분된다.
질문: 여러분이 사용하고 있는 서비스가 어떤 형태에 포함되나요?
AWS는 IaaS에 가깝습니다.
GitHub는 어떨까요?
Google Drive와 같은 서비스는 어떤 형태로 볼 수 있을까요?
'DevOps > AWS' 카테고리의 다른 글
Amazon S3(Amazon Simple Storage Service) (0) | 2021.04.25 |
---|---|
Amazon RDS(Relational Database Service) (0) | 2021.04.25 |
Amazon EC2(Elastic Compute Cloud) (0) | 2021.04.25 |
Deploy (배포) 알아보기 (0) | 2021.04.24 |