기존 서버의 방식은 흔히 말하는 전산실 등에 컴퓨터를 배치하고 인터넷을 연결하여 서비스를 제공했습니다. 그런데 만약 서버가 요청에 대한 수용 능력이 한계에 도달한다면 같은 공간에 더 많은 컴퓨터를 추가하거나 컴퓨터 성능을 업그레이드 했습니다.
이러한 기존의 서버는 고장이나 노후에 대한 주기적인 유지 관리가 필요하며 증설 하다보면 공간의 한계가 오고 투입되는 인력이나 비용도 증가합니다.
이런 상황에서 추가적인 서버 증설이 어렵게 되자 일부 거대 기업은 데이터 센터라는 거대한 건물을 세우기 시작했습니다.
이때부터 데이터 센터의 유휴 자원을 대여하는 서비스가 등장하기 시작했습니다.
이러한 환경을 "온프레미스"라고 부릅니다.
프라이빗 클라우드와 온프레미스의 가장 큰 차이점을 클라우드의 핵심 능력을 보유하고 있는지 여부다.
클라우드의 핵심 능력은 '신속함'이다. 기업의 서비스에 사용자가 몰리면 프라이빗 클라우드는 해당 서비스를 위한 인프라를 증설해 빠르게 서비스를 안정화시킬 수 있다.
반면 온프레미스는 이것이 대단히 어렵다. 인프라를 새로 주문하고 이를 설치해 서비스에 연결할 때까지 서비스를 안정시킬 수 없다.
클라우드는 서버의 자원과 공간, 네트워크 환경을 제공하고 필요할 때마다 컴퓨팅 능력을 유연하게 조절하여 사용한 만큼의 요금만 지불하며 다른 컴퓨터로 즉시 이주가 가능해졌습니다.
현대의 클라우드 컴퓨팅은 앞서 설명한 데이터 센터와 비슷한 역할을 하지만, 물리적인 컴퓨터가 아닌 가상 컴퓨터를 대여한다는 점이 다릅니다.
이는 가상화(Virtualization) 기술의 발전으로부터 비롯되었습니다.
따라서, 최근의 가상화 기술을 사용하는 클라우드 서비스는 기존의 온프레미스 형식과는 달리 다음과 같은 장점이 있습니다.
- 필요할 때마다 컴퓨팅 능력을 유연하게 조절할 수 있습니다.
- 고정적인 비용이 들어가는 온프레미스와는 달리 사용한 만큼의 요금만 지불하면 됩니다.
- 컴퓨터의 스냅샷("이미지"라고 부릅니다) 을 이용해 다른 컴퓨터로 즉시 이주(migration)가 가능합니다.
클라우드 환경에도 단점이 존재합니다.
운영 환경 자체가 클라우드 제공자에게 종속되어 버리므로, 클라우드 서비스에 문제가 생기면 내가 배포하고 관리하는 환경에도 영향을 미칩니다.
운영환경이 특정 클라우드 사업자(vendor)에게 종속된다는 얘기는, 백엔드 구성 자체가 특정 회사의 기술로만 구성해야만 하는 경우가 발생할 수도 있다는 이야기입니다.
따라서, AWS와 같은 대표적인 클라우드 사업자가 제공하는 기술을 익히는 것도 중요하지만, 그만큼 이 인프라 자체에 대한 이해가 더욱 중요합니다.
AWS 같은 외부 클라우드 사업자가 제공하는 서비스를 통해 애플리케이션을 배포하는 방식을 퍼블릭 클라우드 혹은 올 인 클라우드라고 부릅니다. 서비스를 위한 모든 인프라를 클라우드에서 제공받는 것으로 이용 방식은 크게 두 가지로 클라우드에서 새로운 애플리케이션을 개발 및 제공하는 방법과 로컬에서 개발된 애플리케이션을 클라우드로 이전하는 방법입니다.
외부 클라우드 사업자가 제공하는 클라우드 서비스와 자체 인프라(온프레미스)를 함께 활용하는 것이다.
보통 서비스 구동은 클라우드 상에서, 데이터 보관이나 로컬 서비스는 자체 인프라에서 처리하는 형태로 구현되고 있다. 클라우드 서비스의 이점을 누리면서 데이터를 직접 관리하고 싶은 대기업들이 주로 활용한다.
프라이빗 클라우드란 기업이 직접 클라우드 환경을 구축하고 이를 기업 내부에서 활용하거나 계열사에 공개하는 것을 말한다. 외부 클라우드 사업자의 서비스를 이용하지 않고 서비스를 위한 인프라를 직접 구축한다는 점에서 자체 인프라 구축과 동일하다.
IaaS (Infrastructure as a Service)
클라우드 IT를 위한 기본 빌딩 블록이 포함되어 있으며, 네트워킹 기능, 컴퓨터(가상 또는 전용 하드웨어) 및 데이터 스토리지 공간에 대한 액세스 그리고 IT 리소스에 대한 최고 수준의 유연성과 관리 제어 기능을 제공합니다.
PaaS (Platform as a Service)
기본 인프라를 관리할 필요가 없어 애플리케이션 개발과 관리에 집중할 수 있습니다. 즉, 애플리케이션 실행과 관련된 리소스 구매, 용량 계획, 소프트웨어 유지 관리, 패치 작업 또는 다른 모든 획일적인 작업에 대한 부담 없이 더욱 효율적으로 운영할 수 있습니다.
SaaS (Software as a Service)
서비스 공급자에 의해 실행되고 관리되는 완전한 제품으로 대부분 웹 기반 이메일과 같은 최종 사용자 애플리케이션을 말하며 서비스 유지와 인프라 관리를 신경쓰지 않고 애플리케이션을 어떻게 사용할지만 생각하면 됩니다.
AWS는 245개국에서 리전, 가용영역, 상호접속위치 등으로 구성된 글로벌 클라우드 인프라를 제공하며, 지속적으로 확장하고 있습니다. 더불어 안정적인 글로벌 서비스를 위해 25개 리전과 5개 대륙에 각각 하나의 로컬 리전을 두고 있습니다.
AWS 클라우드 서비스용 데이터 센터 클러스터가 위치한 물리적인 장소를 의미합니다.
리전에 속한 데이터는 AWS 고객의 명시적인 동의 없이 리전 외부로 이동할 수 없습니다.
각 리전에는 AZ라고 부르는 가용 영역이 존재합니다. 하나의 AZ에는 1~6개의 데이터 센터로 구성되며, 전력 공급망과 네트워크망이 중첩적으로 구현됩니다.
AWS는 공유 보안 모델을 따르고 있는데 이는 클라우드 자체의 보안은 AWS가 맡고 클라우드 내의 보안은 고객이 맡는다는 의미입니다. 즉 AWS는 데이터 센터, 비디오 감시, 하드웨어, 서버, 스토리지, 가상화 자원, 네트워킹 등 물리적 보안을 책임지고, 고객은 애플리케이션과 호스팅하는 데이터에 대한 보안을 책임집니다.
사용자들에게 애플리케이션을 서비스하기 위해 사용하는 컴퓨터로 과거에는 물리적인 데이터 센터를 확장함으로써 서버의 수용인원을 증가 시켰으나 점차 클라우드로 시장이 확대 되면서 물리적인 데이터가 인터넷으로 연결된 가상화된 컴퓨터로 이전되었다. 이러한 기술을 클라우드 컴퓨팅이라고 한다.