운영서버란 개발이나 테스트 목적(
로컬 환경
)이 아닌 실제 사용자들을 대상으로 서비스하는 서버이다.
운영 서버는 트래픽 대응과 빠른 응답, 높은 가용성을 보장해야 하므로 로컬 서버와 다르게 서버 환경을 구성해야 한다.
1. 단일 서버
가장 기본적인 서버로 테스트 서버나 간단한 애플리케이션을 서비스할 때 사용
데이터베이스와 애플리케이션이 같은 서버에서 실행되므로 별도의 네트워크 설정이불필요
단일 서버의 단점으로는 전체 서비스의 장애 발생 가능성이 높고 서버 자원을 효율적으로 사용하기가 어렵다. 또한, 보안성이 떨어지고 확장 방식인 Scale-out이 어렵다.
2. 애플리케이션과 데이터베이스 서버를 분리
단일 서버 구성에서 하나로 이루어져 있던 애플리케이션과 데이터베이스를 각각의 서비로 구성하는 방법
단일 서버의 단점을 어느 정도는 해소해 주지만, 클라이언트가 여전히 하나의 애플리케이션 서버를 바라보고 있기 때문에 Scale-out은 여전히 어렵다.
3. 서버 단위의 로드 밸런서
로드 밸런서란 수많은 요청들을 앞서 늘린 여러대의 서버에 적절히 나눠주는 네트워크 장치 혹은 프로세스이다.
클라이언트는 애플리케이션 서버와 직접 통신하는게 아닌 로드 밸런서 서버와 통신하며, 그 뒤에 여러대의 애플리케이션 서버를 두는 방식
Scale-out을 통한 확장이 가능해지고 특정 서버에 장애 발생시, 로드 밸런서가 정성 서버에 요청을 넘기므로 서버 다운을 최소화 할 수 있다.
4. 서버 내 앱 단위의 로드 밸런서
기존에 하나의 로드 밸런서가 여러개의 서버로 요청을 분산해주었던 방식에서, 서버 내에 앱 단위의 로드 밸런서가 추가 된 방식으로 기존의 애플리케이션 서버 안에서 똑같은 애플리케이션을 여러 프로세스로 만들어 실행 해놓고 외부에서 들어온 요청을 프로세스 중 하나로 보내주는 방식이다.
하나의 서버에 여러 개의 프로세스를 실행해 하나의 서버에서 여러 개의 요청을 동시에 처리 가능하고 서버의 자원을 최대한으로, 효율적으로 사용 가능
온프레미스란 IT 서비스를 기업이 자체적으로 보유한 물리적인 서버에 직접 설치해 운영하는 방식으로 클라우드 컴퓨팅 기술이 나오기 전까지 기업들이 사용하던 일반적인 인프라 구축 방식이다.
온프레미스의 특징
인프라를 물리적으로 직접 구축하여 운영하는 방식이므로 프로젝트에 필요한 시스템을 구축하기 위해서는 기업이 직접 구성에 맞는 하드웨어를 구입하여야 하므로 불필요한 비용이 발생할 수 있고 지속적인 모니터링이 필요하다.
Compute
컴퓨팅은 스토리지 및 네트워킹과 함께 클라우드 컴퓨팅 인프라 계층의 핵심 컴포넌트 중에 하나이다. 단순히 말해 운영 체제를 실행하는데 필요한 자원들과 네트워크 기능으로 구성된 물리적인 서버이다.
클라우드 컴퓨팅
클라우드 컴퓨팅 서비스란 서로 다른 위치에 존재하는 컴퓨팅 자원을 제공하는 것이다.
클라우드 컴퓨팅의 특징으로는 온프레미스와 다르게 직접 서버 장비를 구매하지 않고도, 원하는 시간동안 원하는 만큼의 컴퓨팅 자원을 언제 어디서나 이용할 수 있다. 따라서 프로젝트 초기 구성 시 사용되는 비용을 줄이는 효과를 가져온다.
클라우드 컴퓨팅의 주요 기능
서비스형 인프라스트럭처(IaaS)
클라우드 컴퓨팅의 가장 기본적인 계층으로 비즈니스 운영에 필요한 스토리지, 네트워킹 및 컴퓨팅 자원을 제공
ex) AWS Elastic Compute Cloud (EC2), Microsoft Azure Virtual Machines, Google Compute Engine..
서비스형 플랫폼(PaaS)
애플리케이션 및 서비스를 구축할 수 있는 플랫폼을 제공(OS, Middleware, Runtime 등 개발 환경을 미리 구축해 서비스 형태로 제공)
ex) AWS Elastic Beanstalk, Heroku, Redhat OpenShift
서비스형 소프트웨어(SaaS)
클라우드 컴퓨팅 서비스의 주요 기능 3가지 중 가장 완성된 형태의 서비스로 제공 업체가 대부분의 기능을 구축한 뒤 제공
ex) Google Drive, iCloud, Slack, Zoom, Dropbox