앞서 로드밸런싱으로 어떻게 클라이언트의 많은 요청을 관리하는지 공부했다. 이제 그 요청들을 어떻게 원격 데이터베이스에 저장하는지, 크게 두 가지 방식을 알아보겠다.
IT 서비스를 기업이 자체적으로 보유한 물리적인 서버에 직접 설치해 운영하는 방식. 클라우드 컴퓨팅 기술이 나오기 전까지 사용하던 일반적인 데이터베이스 인프라 구축 방식.
인프라를 물리적으로 직접 구축하여 운영하는 방식이므로 프로젝트에 필요한 시스템을 구축하기 위해서 기업이 직접 구성에 맞게 하드웨어를 구입해야 한다.
보통 프로젝트에 필요한 자원을 예측하여 인프라 기술자가 물리적인 구성을 설계하는데, 이때 물리적인 구성은 최대 사양을 기준으로 구성되기 때문에 예측과 실제 프로젝트가 많이 다를 수 있으며 이로 인해 불필요한 비용이 사용된다. 또한 구축 후에도 문제가 발생하지 않는지 지속적인 모니터링이 필요하며 필요에 따라 구성을 변경하는 등 유지, 보수가 필요하다.
위와 같은 이유로 현재 온프레미스만을 사용하는 조직은 그리 많지 않지만 군대 인트라넷, 보안 회사처럼 보안에 민감한 조직의 경우 자체적으로 강력한 보안 시스템 개발하거나 외부망과의 단절을 위해 여전히 온프레미스 환경으로 구축한다.
클라우드 컴퓨팅 개념인 온디멘드는 외부 서비스 공급자가 데이터를 관리하는 방식.
클라우드 공급자가 모든 물리적 및 가상의 미들웨어, 하드웨어, 소프트웨어, 데이터베이스 및 기타 지원 인프라를 조달하고 자사의 데이터 센터에 설치 및 관리.
클라우드 컴퓨팅의 가장 기본적인 계층.
비즈니스 운영에 필요한 스토리지, 네트워킹 및 컴퓨팅 자원을 제공. 다른 모델들과 비교하여 사용자가 관리할 수 있는 영역이 가장 넓다. 사용자가 직접 OS, Middleware, Runtime, CPU, Memory, Network, Storage 등을 직접 구성 및 관리 가능.
하지만, 인프라 운영에 대한 지식, 경험이 준비되지 않은 경우 진입 장벽이 높다는 단점.
EX) AWS Elastic Compute Cloud (EC2), Microsoft Azure Virtual Machines, Google Compute Engine..
애플리케이션 및 서비스 구축하는 플랫폼 제공. 모든 물리적 및 가상 핵심 인프라에다가 미들웨어, 데이터베이스 관리 시스템, 개발 툴, 비즈니스 인텔리전스 및 분석 툴 등 대부분의 서비스를 호스팅.
서비스를 제외한 외적인 부분을 신경쓸 필요가 없기 때문에 오로지 개발, 비즈니스에만 집중할 수 있으며 인프라를 운영하는 인력이 필요하지 않으므로 유지 및 보수 비용을 절약할 수 있다.
독점 소프트웨어를 많이 구축하는 기업은 호스팅 및 제공 전략을 변경하는 방법으로 클라우드 구현 시 PaaS를 먼저 고려할 수 있다.
하지만 개발 중인 애플리케이션과 서비스를 관리하는 역할만 담당, 즉 관리적인 측면에서 자유도가 낮고 의존성이 높다.
예) AWS Elastic Beanstalk, Heroku, Redhat OpenShift, Kubernetes, AWS RDS
클라우드 컴퓨팅 서비스의 주요 기능 3가지 중 최상위에 있는 서비스.
서비스 호스트가 대부분의 기능을 구축한 뒤 제공하기 때문에 사용자가 직접 관리해야 하는 영역이 가장 좁다.
기본적인 클라우드 인프라와 소프트웨어를 함께 제공하는 형태로, 소프트웨어 업데이트, 버그 픽스 등의 서비스를 업체가 직접 도맡아 제공하고, 사용자는 별도의 라이센스를 구매할 필요 없이 이미 구축된 소프트웨어를 무료 혹은 비용 지불을 통해 이용.
하지만 제공 업체가 이미 만들어 놓은 소프트웨어를 그대로 활용하기 때문에 사용자가 필요하지 않은 기능에 대해서도 비용을 지불해야 할 수도 있다.
예) Google Drive, Freshdesk, iCloud, Slack, Zoom, Dropbox