웹 서비스를 위해 서버를 구성하는 데 있어 다양한 방법이 존재 합니다. 그 중에서 클라우드와 코로케이션(서버호스팅)은 서버를 구성하는 데 가장 많이 선택하는 옵션으로 초기 스타트업에서 어느 것이 더 효과적인지 고민하는 경우가 많이 존재합니다.
어느 정도 규모가 되는 기업은 자체적으로 서버를 운영할 수 있는 조직과 역량을 갖추고 있어 워크로드와 보안 요구사항에 따라 클라우드와 코로케이션 중 적합한 방식을 유연하게 선택할 수 있습니다. 하지만 초기 자본이 부족한 스타트업은 비용적인 측면이 초기 생존과 직결되기 때문에 비용적인 측면에서 고민을 하는 것이 사실입니다.
이 글에서는 초기 스타트업의 특성을 반영하여 어떤 선택이 더 적합한지 알아보도록 하겠습니다.
클라우드란?
클라우드는 인터넷을 통해 컴퓨팅 자원(서버, 스토리지, 네트워크 등)을 제공하는 서비스입니다. 대표적인 클라우드 서비스 제공업체로는 AWS, Microsoft Azure, Google Cloud, Naver Cloud 등이 있습니다.
클라우드의 장점
- 유연성: 필요에 따라 자원을 확장하거나 축소할 수 있습니다.
- 비용 효율성: 초기 투자 비용이 없으며, 사용한 만큼만 요금을 지불합니다.
- 신속한 배포: 인프라를 빠르게 설정하고 서비스를 시작할 수 있습니다.
- 관리 간소화: 하드웨어 유지보수가 필요 없으며, 서비스 제공자가 이를 책임집니다.
클라우드의 단점
- 예상치 못한 비용 증가: 사용량이 증가하면 비용도 예상보다 크게 늘어날 수 있습니다.
- 종속성: 특정 클라우드 제공업체에 의존하게 될 가능성이 있습니다.
- 보안 우려: 데이터가 제3자 서버에 저장되므로 보안 문제를 신중히 검토해야 합니다.
코로케이션이란?
코로케이션은 기업이 자체 서버를 구매하여 데이터센터의 공간을 임대하고, 전력, 냉각, 네트워크와 같은 인프라 서비스를 제공받는 방식입니다.
코로케이션의 장점
- 높은 제어권: 하드웨어 및 소프트웨어를 완전히 제어할 수 있습니다.
- 보안 강화: 데이터를 물리적으로 보호할 수 있는 독립적인 환경을 제공합니다.
- 예측 가능한 비용: 장기적인 관점에서 클라우드보다 비용이 저렴할 수 있습니다.
- 고성능: 특정 워크로드에 맞게 하드웨어를 최적화할 수 있습니다.
코로케이션의 단점
- 초기 투자 비용: 서버 장비 구매 및 설치 비용이 높습니다.
- 복잡한 관리: 하드웨어 유지보수 및 업그레이드가 필요합니다.
- 확장성의 한계: 급격한 확장 요구를 처리하기 어려울 수 있습니다.
클라우드와 코로케이션의 주요 차이점
특징 | 클라우드 | 코로케이션 |
---|---|---|
비용 구조 | 사용량 기반 과금 | 초기 투자 비용 및 월 운영비 |
확장성 | 무제한 확장 가능 | 제한적, 하드웨어 추가 필요 |
제어권 | 제한적, 서비스 제공 업체에 의존 | S/W 및 H/W 모두 제어 가능 |
보안 | 공유 인프라 기반, 보안 우려 있음 | 물리적 제어 가능, 보안 강화 |
유지보수 | 서비스 제공업체가 관리 | 자체 유지보수 필요 |
가용성 | 글로벌 네트워크 지원 | 데이터센터의 물리적 위치에 의존 |
초기 스타트업에서 고려사항
클라우드와 코로케이션 선택에서 가장 중요한 요소는 서버 스펙 및 인스턴스 개수 입니다. 초기 사용자가 많지 않다고 가정하고, 소규모로 운영 가능한 최소 서버 스펙을 vCPU 1코어 및 2GB 램으로 가정해보겠습니다.
서버 비용
클라우드와 코로케이션을 모두 제공하는 가비아를 기준으로 비교해보겠습니다.
1vCore 및 2GB의 경우 월 30,000원, 4vCore 및 8GB의 경우 월 140,500원의 비용이 발생하고 있습니다.
가비아에서 제공하는 1분 설치 서버를 사용한다면 4Core에 8GB의 경우 월 90,000원의 비용이 발생하고 있습니다.
3 티어 구성 시 비용
만약 웹 서비스를 3티어(Frontend 서버, Backend 서버, Database 서버)로 구성한다고 가정하면 동일하게 둘다 동일하게 월 9만원의 비용이 발생합니다. 서비스 운영 시점에 다다르면 서버를 추가/삭제하기보다는 인스턴스를 지속적으로 유지하는 경우가 많아 월 요금이 고정되는 경향이 있기에 월 요금으로 계산하였습니다.
- v1Core 2GB 3개 인스턴스 필요 : 30,000 * 3 = 90,000
- 4Core 8GB 서버 필요 : 90,000
이때 비용은 동일하나 1분 서버 설치가 더 가용성이 좋습니다. 그리고 만약 1분 서버 설치가 아닌 코로케이션 서버를 구매/임대하는 경우는 비용이 더 증가하나 더 많은 가용성을 확보할 수 있습니다.
코로케이션을 사용하는 경우
보통 코로케이션을 사용하는 경우가 더 적은 비용으로 더 많은 가용성을 확보할 수 있습니다. 다만, 코로케이션의 경우 업체에 따라서 약정 기간이 존재하는 경우가 있어 사용 기간에 대한 부담감이 존재할 수 있습니다. 또한, 동시 접속자 수가 갑작스럽게 증가하는 경우 대응하기 쉽지 않기 때문에 동시 접속자 수가 일정 수준으로 유지되는 경우에 유리합니다.
저는 웹 서비스 개발자들이 다 외부에서 개발하고 있기 때문에 개발 서버가 내부가 아닌 외부에 존재해야 합니다. 또한 데모 시스템을 제공하고 있기 때문에 데모 서버도 항시 운영되어야 합니다. 이 경우 실제 사용자 수는 많지 않고, 서버 인스턴스가 더 많이 필요하기 때문에 개발 서버와 데모 서버는 코로케이션 서버 한대로 NGINX와 Let’s Encrypt SSL 구성하여 내부에 FE 서비스 4개, BE 서비스 2개, MySQL을 설치하여 운영하고 필요에 따라서 웹 서비스를 올리고 내리고 하고 있습니다.
이때 발생하는 월 비용은 클라우드 비용 대비 50% 이상 절감됩니다.
하이브리드 방식
저는 운영 서버는 클라우드 기반으로 그외 나머지 서버는 모두 코로케이션 서버로 운영하고 있습니다.
운영 서버의 경우는 특정 이벤트에 따라서 2~3일 정도 동시 접속자 수가 평시 대비 100배 이상 증가하기 때문에, 그 기간만 로드밸런싱을 사용하여 서버를 추가했다가 제거합니다.
그리고 개발하고 서비스 하는 과정에 있어서 검증 서버 및 스테이징 서버 구성하는 데 있어 클라우드 서비스를 이용하고 있습니다.
- 로컬 개발 : 각자 로컬에 개발
- 개발 서버 : 코로케이션으로 운영 ( 기본적인 단위 테스트 진행 )
- 검증 서버 : 개발 항목에 대한 검증 시 클라우드에서 인스턴스 생성 후 진행 ( 보통 2주 )
- Staging 서버 : 검증 완료 후 실제 운영 서버와 동일한 형태의 클라우드 인스턴스 생성 후 진행 ( 2~3일 )
- 운영 서버 : 클라우드에서 최소 스펙으로 로드밸런싱
마치며
클라우드가 관리 및 운영이 쉽고 편하기 때문에 클라우드를 선택하는 경우가 많이 있습니다. 전부다 클라우드를 사용하는 경우 비용이 많이 발생할 수 있기에 개발하는 형태 및 운영 형태에 따라서 클라우드가 아닌 코로케이션 서버를 직접 운영하는 것도 또 다른 대안이 될 수 있습니다.
합리적인 웹 서비스 운영이 되었으면 좋겠습니다.
참고 자료 및 관련 사이트
저렴한 서버 호스팅
1. CLOUDV 서버 호스팅
2. CAFE24 서버 호스팅
3. 가비아 서버 호스팅