Web hosting

sycho·2024년 1월 4일
0

Network

목록 보기
9/9

hosting?

  • 나만의 웹사이트를 구성할 파일들이 다 준비되었다고 해보자. 이제 다른 사람들이 네트워크를 통해 내 파일들에 접근할 수 있도록 하고 싶다고 해보자.

  • 그러면 이 파일들을 접근하고 싶다는 요청처리를 해줘서 답변을 내리는 공간이 필요하며 이것이 host다. 뭐 IP 주소에 대해 배우면서 IP주소가 지칭하는 것들이 host라는 것은 이미 배웠을테니...

  • 내 컴퓨터가 host가 될 수야 있겠지만, 이럴려면 요구사항이 너무 많다. 보통 가장 먼저 이를 불가능하게 만드는 부분이 내 컴퓨터에서 활용하는 ip가 고정 ip가 아니라는 것이다. 타 회사 인터넷을 쓰는 경우 보통 동적으로 ip를 할당하기 때문. 뭐 그 외에도 내 네트워크가 모든 요청을 감당하기 힘들 수 있고, 사실 요청이 와도 이를 제대로 처리하게 해주는 서버 프로그램이 필요하고, 보안 고려, 전력 소모, 백업, 보안 고려 등등 생각해야 할게 매우 많다.

  • 소규모 프로젝트를 한다면야 뭐 고정 ip 어떻게든 구한다음에 뚝딱뚝딱 만들 수는 있겠지만 본격적으로 하려면 개인 PC로는 현실적으로 하기 힘든 경우가 많다. 물론 본인이 따로 서버용 컴퓨터를 살 수도 있다. 그리고 공부 열심히 하면 충분히 본인만의 잘 돌아가는 서버를 만드는 것도 가능하다.

  • 하지만 공부는 둘째치고, 돈이 없다면? 그러면 좀 난감해진다.

host service

  • 이 경우 그냥 남이 hosting을 위해 만들어놓은 인프라를 그냥 구입해서 사용하면 된다. 근데 그 방식이 여러개가 존재한다.

shared hosting

  • 여러 웹사이트의 웹페이지 자료들을 하나의 host(server)에서 관리하는 형태

  • 여러 웹사이트로 오는 요청을 하나의 큰 host에서 담당을 한다.

  • 장점 : 저렴하다. 여러 사용자가 하나의 host에 대한 비용을 부담하기 때문.

  • 단점 : 자원을 여럿이 공유해서 load가 intensive하기 시작해지면 금방 서비스 제공이 원할해지지 않는다. 타 사이트의 DoS공격에 본인 사이트의 서비스 제공이 영향을 받을 수 있다.

  • 소규모 웹사이트 운영을 하려고 할 때 적합하다.

  • 유의해야하는게 타사이트 보안 이슈로 인해 해킹이 되었다고 해서 본인 사이트도 해킹되는 것은 아니다. 다만 상주하고 있는 host 자체에 해킹이 이루어진거면 위험해질 수 있다.

  • 예시 : https://www.pcmag.com/picks/the-best-shared-web-hosting-services

VPS hosting

  • Virtual Private Server의 약자다.

  • 물리적으로 다른 웹사이트랑 하나의 host를 공유하는건 똑같은데 각 웹사이트가 고유의 가상 서버를 가진다는 차이가 있다.

  • 그러면 shared hosting이랑 무슨 차이가 있냐고 할 수 있는데 shared hosting의 경우 공산주의 느낌으로 원할한 운영을 위해 각 웹사이트에 관한 요청이 얼마나 활발히 이루어지는지 상관 없이 물리적 host의 자원을 등분시켜서 보통 성능을 제한하며 여러 웹사이트에 동시에 request가 많이 들어올 경우 혹은 한 웹사이트에 너무 많은 요청이 들어오면서 자원 조절이 제대로 되지 않을 경우 금방 먹통이 되어 버린다.

  • 반면 VPS hosting은 요금에 따라 특정 수치의 RAM, processor 개수, 하드를 어떤 상황에서든 100% 보장해준다. 타 웹사이트에서 뭔 짓거리가 이루어지든 간에 본인의 자원은 이만큼이 보장되는 것이다.

  • 특히 일부 shared hosting을 운영하는 곳에서 본인들이 감당 가능한 웹사이트보다 더 많은 양의 웹사이트를 상주시켜가지고 생기는 문제점을 해결해준다.

  • 게다가 자원 한도 안이기만 하면 본인이 웹사이트를 어떻게 구성하든, 아니 애초에 웹사이트를 여러개를 운영해도 별로 태클을 걸지 않아서 세부조작이 매우 자유롭다는 장점도 있다.

  • 단점은 비싸다. 그만큼의 자원을 직접적으로 사는 것이나 다름없기 때문. 그리고 완전 날것의 VPS의 경우에는 자원 구매 이후에 이를 제대로 설정하는 것 자체가 엄청 기술적으로 빡세다. 다만 후자의 경우 Managed VPS hosting을 통해 대리를 맡기는 것이 가능하다. 이 경우 추가 비용이 필요하고, 생각보다 자유롭진 않지만 대신 shared hosting보다 훨씬 좋은 성능을 shared hosting이랑 비슷한 환경에서 구축이 가능하다는 장점이 있다.

  • 여기서 물리적으로 사는것이랑 무슨 차이냐고 할 수 있는데, 본인이 급하게 용량 및 처리량을 늘려야 할 경우 요금제 변경 등의 몇번의 클릭 만으로 바로 확보가 가능하다는 장점이 있다. 다만 제공하는 측 사정상의 이유로 좀 시간이 걸릴 수도 있긴 하다. 물리적으로 사면 이런 경우 다 재구축을 해야 하기 때문에 난감하다. 거기에 가격도 상대적으로 저렴하다.

예시 : https://www.forbes.com/advisor/business/software/best-vps-hosting/

Dedicated Server (Dedicated Hosting)

  • 그냥 어떤 물리적 서버를 통째로 우리가 운용하는 것이다(...?)

  • 물리적으로 우리가 서버를 샀다는건 아니고, 그냥 다른 어딘가에 존재하는 물리적 서버 하나를 통째로 우리가 사서 운용하는 것이다.

  • 장점 : 다 내꺼다. 으하하. 이 때문에 대규모 서비스 운용에 매우 좋다.

  • 단점 : 일단 가장 비싸다. 그리고 업그레이드가 매우 힘들다. 왜냐하면 제공 측에서 관련 내용물을 전부 새로운 물리적 서버에다가 옮겨야 하기 때문. 애초에 그게 준비가 되지 않았으면 훨씬 오래 걸릴 것이다.

  • 요즘은 이걸 쓸 바에 cloud hosting을 쓰는게 낫다는 평이 지배적이다.

  • 예시 : https://www.pcmag.com/picks/the-best-dedicated-web-hosting-services

Cloud hosting

  • 최근에 나온 개념이며, 사실 web hosting이랑 차이가 큰 개념이다.

  • 클라우드가 뭔지를 알면 좀 더 이해하기가 쉽다.

  • web hosting이랑 가장 비슷한 개념은 앞의 VPS hosting이다. 왜냐하면 둘 다 가상 서버를 기반으로 서비스를 운용하며, 그 서버 안에서의 자유도를 극한으로 보장해주기 때문이다.

  • 그러나 cloud hosting은 VPS hosting 대비 훨씬 더 좋은 확장성 (scalability)를 제공한다. 이유는 웹사이트의 내용물을 여러 물리적 위치에 존재하는 여러개의 가상 서버들에 저장해두기 때문. 앞에서 VPS도 클릭 몇번으로 필요 자원을 늘리거나 줄이는게 가능하다고는 했으나, 어쨌든 그것도 가상 서버의 설정을 건드리거나 심하게는 해당 가상서버가 운용되고 있는 물리적 기계가 가용 용량이 없어서 다른데로 옮겨야 해가지고 (server migration) 시간이 좀 걸릴 수 있다. 그런데 클라우드의 경우에는 여러개의 가상 서버를 한 서비스를 위해 제공해주고, 늘리거나 줄여야할 경우 그냥 가동할 서버를 늘리거나 줄이는 형태로 운용되기 때문에 이 시간이 훨씬 짧은 것이다. 아니 심지어는 서비스를 계속 운용하면서 (no downtime) 필요 자원을 조절하는 것도 가능하다.

  • 이 물리적으로 분산된 가상 서버 형태는 다른 면에서도 도움이 되는데, 특정 가상 서버가 존재하는 물리적 머신 하나가 망가지더라도 즉시 그정도의 스펙을 보장하는 다른 가상 서버를 가동시킴으로써 서비스를 유지 및 사이버 공격 대응이 가능하다는 점이다.

  • 장점 : 뛰어난 확장성, 빠르게 이루어지는 자원 조절. 이에 따라 필요한 만큼만 지불하면 되는 비용. 뛰어난 성능 및 보안 능력. server failure에도 어느정도 대응이 가능함 (reliability)

  • 단점 : 생각보다 설정이 많이 복잡함. 기본적으로 AWS를 알고 있다고 가정하고 UI를 만듬(...)

  • 예시 : AWS, Google Cloud 등.

같이 참고하면 좋은 자료

profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글