이 포스팅은 Udemy의 Internet and Web Development Fundamentals 강의를 보고 작성하였습니다.
Shared Hosting
-
호스팅 회사가 특정 양의 리소스를 웹 사이트에 할당한다.
-
위 그림과 같이 Linux 운영체제를 갖춘 서버가 2GB Ram, 512GB storage, 5TB monthly bandwidth의 스펙을 갖추었다면서버의 능력에 따라 백개 혹은 수천개의 사이트와 시스템 리소스를 공유할 것이다. 할당받는 리소스 양은 등록한 호스팅 패키지의 타입에 따라 달려있다.
-
웹 호스팅 사이트로 유명한 godaddy의 shared hosting 패키지 타입이다.
-
그 중 하나인 ECONOMY 패키지를 살펴보자. 1 Website는 하나의 도메인 이름을 이용할 수 있다는 것을 의미한다. 100GB Storage는 파일을 저장하는데 100GB의 디스크 공간을 이용할 수 있다는 것이다. 100 Email Addresses는 등록한 도메인 주소를 기반으로 하는 100개의 customized email를 이용할 수 있다는 것이다. Bandwidth는 호스팅 패키지가 허용하는 파일의 이동량이다. 주의해야 할 점은 웹 사이트 방문자는 모든 컨텐츠와 이미지를 다운로드 받고 있다는 것을 알아야 한다. 홈페이지가 1MB이고 한달동안 200명이 홈페이지를 방문했다면 한달에 200MB의 bandwidth의 사용을 의미한다. 약간의 오해가 있을 수 있다. 거의 모든 호스팅 공급자는 공유 호스팅 계정에 대한 클로킹이라는 관행에 참여한다. 이는 리소스가 특정 임계값을 초과하지 않도록 하기 위한 것이다. 이 임계값은 주어진 시간에 서버의 다른 웹 사이트에 필요한 리소스 양에 따라 설정되고 기술적으로는 무제한 리소스 할당은 없다.
Dedicated Hosting
- 컴퓨터 시스템 전체와 모든 리소스가 웹 사이트를 위해 사용된다.
- 서버가 더 Powerful하고 더 많은 Bandwidth가 할당된다.
- 서버 구성 세팅에 관해서 완전한 Control이 가능하다.
- Custom 하드웨어 서버 구성이 가능하다. 메모리, hard drive, bandwidth를 원하는 대로 추가할 수 있다. 모든 물리적인 업그레이드된 요소들은 dedicated hosting의 서버 관리자에 의해 설치된다. 그것을 스스로 하지 않는다면 일반적으로 관리비가 요구된다. 호스팅 회사는 필요한 업데이트, 보안 점검, 원하는 어떤 업그레이드를 모두 관리한다.
VPS Hosting
- Virtual Private Server
- 몇개의 웹사이트와 리소스를 공유한다. 공유하는 웹사이트의 수는 shared hosting보다 훨씬 작다. 서버 capacity와 bandwidth에서 큰 부분을 할당받는다. 그 양은 구매한 VPN package에 따라 달려있다.
- Dedicated hosting과 같은 하드웨어 업그레이드나 구성에 대한 유연성은 가지고 있지 않다. 일반적으로처음 가입한 시스템의 사양으로 제한된다. 하드웨어의 물리적 용량을 초과하지 않는 범위까지 리소스 할당의 공유를 늘릴 수 있다.
Cloud Hosting
- Cloud hosting은 매우 낮은 금액으로 놀라운 유연성을 제공하기 때문에 웹 호스팅 산업을 진화시켰다. 100% 확장가능히고 완벽하게 control이 가능하다. 기존 호스팅과 유사하게 클라우드 서버는 전 세계 데이터 센터에 보관된다.
- 거의 zero에 가까운 Downtime을 보여준다.
- 초당 혹은 시간당으로 비용을 지불한다.
- 사용한 부분에 대해서만 지불한다.
- 두 개의 버거를 가진 데이터 센터가 있다고 가정하자. 각각의 서버는 2GB RAM, 512GB 하드웨어 저장소 5TB monthly bandwidth의 스펙을 가지고 있다. 만약 두 개의 컴퓨터 저장소와 bandwidth를 결합하고자 한다면 4GB RAM, 1024GB 하드웨어 저장소 10TB monthly bandwidth를 가지게 되고 이 전체적인 리소스 풀을 computing cloud라고 생각할 수 있다. 추가적인 서버를 더하고자 한다면 위 일러스트에서 아래의 The Cloud처럼 computing capacity를 증가시킬 수 있다.
- Traditional 호스팅 패키지와 비교해보면 패키지가 standardised하다는 것은 할당된 리소스보다 적은 양을 사용함에도 매달 고정된 호스팅 비용이 나간다는 것을 의미한다. 다른 문제는 최고의 공유 호스팅 패키지에서 가상 패키지로의 이동이 상당히 힘들다는 것이다. 공유 호스팅이 제공할 수 있는 것보다 더 많은 리소스가 필요하지만 가상 호스팅 솔루션만큼은 아닌 경우 사용할 수 있는 솔루션은 없다.
- 웹사이트의 리소스가 집약적인 경우 dedicated server를 선택할 수 있다. 저장 공간에 더 많은 CPU가 필요한 경우 하드웨어를 계속 추가하고 업그레이드 할 수 있다. 서버는 이 작업을 하기 위해 onsite technician이 필요하다. 이것은 상당한 비용 인상을 요구될 수 있고 웹 사이트는 백업 서버가 만들어지기 전까지 서버가 다운된다(작동이 멈춘다). Cloud hosting은 이러한 문제에 효과적인 해결책을 제시한다.
주요 차이점은 클라우드 컴퓨팅 네트워크의 리소스를 활용하는 방식에 있다. Cloud server는 유저에게 virtual machine을 만들고 필요한 만큰 cloud로부터 리소스를 추출하는 것을 허용한다. Cloud는 호스팅하는 어플리케이션의 요구사항을 충족하기 위해 무한대로 확장할 수 있다. 클라우드를 이용해서 웹 사이트가 요구하는 만큼의 필요와 리소스에 맞춘 virtual machine을 만들 수 있다는 의미이다.
- Cloud hosting은 사용만 만큼만 비용을 지불한다.
Case Study
- 예를 들어, 너가 웹사이트를 시작한다고 하자. 전통적인 hosting을 이용한다면 처음에는 shared hosting에 등록할 것이다. 시작하기에 가장 베이직한 패키지이기 때문이다. 이후에 트래픽의 점진적인 증가가 있을 수 있고 주기적으로 hosting account를 업그레이드 해야할 것이다. 웹 사이트 오픈 후 2년차가 되었을 때 트래픽이 더욱 증가하여 웹페이지가 주기적으로 다운되고 호스팅회사가 너에게 shared hosting packages가 감당하기에 너무 많은 리소스가 있다는 알림을 보낸다. 이제 업그레이드 밖에는 선택지가 없기에 VPN hosting를 살펴볼 것이다. 결국 VPN을 사용하기로 결정하고 모든 것을 다시 setup 해야 한다. Testing, database 모든 것을 다시 설정해야 한다. 3년차가 되었고 최근에 경쟁사에서 새로운 서비스를 런칭해 사이트의 이용량에 큰 감소가 있게 된다. 트래픽이 거의 있지는 않지만 shared hosting으로 돌아가면서 겪는 두통을 다시는 느끼고 싶지는 않다. 이용자들이 돌아오기를 바라면서 새로운 서비스를 계획할 것이다. 현재 hosting package를 유지하면서 매달 40달러를 낼 것이다. 4년차가 되었다. 너는 새로운 기능을 도입하였고 고객들에게 빠르게 알려졌다. 트래픽의 엄청난 큰 증가와 함께 어떤 VPS package도 리소스 요구를 감당할 수 있지는 않았다. 설상가상으로 호스팅 회사는 이용로 초과 금액을 부과한다. 그래서 dedicated server로 옮겨가는 것을 결정한다. 새롭게 setup하는 것을 다시 겪어야 한다. 새로운 서버로 옮기는 동안 하루 또는 이틀의 downtime을 겪게된다. 5년차가 되고 사이트가 더 성장해 하드웨어 장비를 업그레이드 해야 하며 서버 관리비를 매달 내야 한다. 리소스가 얼마가 사용되는지에 관계없이 dedicated server에 많은 돈을 지불해야 할 것이다. 다시 돌아와 cloud와 전통적인 hosting과 비교해보자. cloud hosting account를 만들고 virtual server를 만든다. 트래픽 레벨에 적합한 서버를 구성할 것이다.
패키지는 시간당 요금을 부과한다. 이것은 서버를 끈 상태에서는 돈을 지불하지 않는다는 것과 웹사이트에서 사용한 만큼만 지불한다는 것을 의미한다. 2년차가 되어 트래픽이 늘게 되었다. 클라우드에 들어가 virtual machine을 업그레이드 하고 싶어 한다. 몇개의 버튼을 클릭함으로써 ram과 bandwidth를 추가할 수 있다. 3년차가 되었는데 트래픽이 크게 감소했다. 너는 몇개의 버튼을 클릭해서 서버의 크기를 줄일 수 있다. 클라우드 호스팅으로 서버의 크기의 유연함, 비용의 효율, 서버의 안정성을 얻을 수 있었다.