웹 페이지를 올리려면 웹 서버가 필요합니다.
웹 호스팅과 홈 서버 구축 등 필요한 정도에 따라 선택할 일이 있을 수 있으니 어느 정도 기준 같은 게 필요하지 않을까 싶어서 작성해봅니다.
타이틀을 달아두므로 대략적으로 알아보기 좋을 것입니다.
일반적으로 최적화가 된 웹 사이트 또는 API를 기준으로 작성하였으며, 다른 의견이 있을 수 있습니다.
(무거운 서비스를 돌린다면 기준치보다 더 많은 자원이 필요할 수 있습니다.)
서버를 직접 구축하려면 추가적으로 백업용 서버, DB 전용 서버, 프록시 서버 등 추가 서버 자원이 필요할 수 있습니다.
먼저 정적 웹 사이트인가요?
정적 웹사이트(static web)란? : html, css, js만 이용하는 경우
만약 월 트래픽이 10GB를 넘지 않을 것 같다면,
Github Pages를 이용하여 무료로 사이트를 호스팅 할 수 있습니다.
깃허브 정책상 트래픽이 10GB가 넘어도 차단되지는 않습니다.
회사 소개 페이지, 포트폴리오 등 호스팅이 가능합니다.
100GB 제한 서비스로 Netlify, Vercel 등도 이용 가능합니다.
Node.js를 AWS Lambda와 비슷한 방식으로 제공하며 블로그 서비스 등도 이용 가능하고 매우 빠릅니다.
가벼운 사용량인 경우?
일 방문자 1000명 이하 또는 동시접속자 50명 이하
또는 웹페이지가 아닌 가벼운 API인 경우 2배 이상 처리 가능
사내 시스템 구축 시에도 이 경우에 해당 가능(시스템의 리소스에 따라 다릅니다.)
- 호스팅 제품을 선택하는 경우 월 500원 ~ 1,000원 수준 상품으로 처리 가능
- AWS 등 클라우드의 가장 저렴한 인스턴스로 처리 가능
- 서버의 스펙 : 라즈베리파이, 안드로이드 공기계 등으로 처리 가능
네트워크 스펙 : 10Mbps 이상
다만, 호스팅에서 트래픽을 적게 주는 경우 운영이 힘들 수도 있습니다.
이 경우 이미지나 영상 등은 다른 업체를 이용하는 방법이 있습니다.
예) YouTube에 영상 업로드 후 공유 기능으로 사이트에 영상 넣기
홈 서버 구성시 DDNS 서비스를 써도 되나요?
24/7 서비스가 필요하다면 IP와 도메인을 바로 이어줘야 되겠지만
DDNS도 충분히 안정성이 있는 경우 사용하셔도 충분합니다.
접속자가 조금 되나요?
웹서비스 동시접속자 500명 이하
또는 웹페이지가 아닌 가벼운 API인 경우 2배 이상 처리 가능
사내 시스템 구축 시에도 이 경우에 해당 가능(시스템의 리소스에 따라 다릅니다.)
- 호스팅 제품을 선택하는 경우 보통 월 5,000원 수준 ~ (10,000원 이상 상품 권장) 상품으로 처리 가능
- AWS 등 클라우드의 인스턴스(2 코어 이상, 4GB 이상)로 처리 가능
- 서버의 스펙 : 20만원대 PC 성능으로 가능
서버 스펙 권장 사양은 30~40만원대 PC
< 권장사양 : 라이젠 3200G(같은 가성비 CPU) + 8GB 램 (이 정도 스펙에서 자원은 남아돕니다.) >
네트워크 스펙 : 10Mbps 이상
접속자가 많아질수록 네트워크 속도 + 네트워크 용량이 중요합니다.
단순히 순간 속도가 중요한 게 아닌 계속해서 처리해줘야 되기에..
꾸준히 처리를 안정적으로 해줘야 됩니다.
고의로 트래픽 만들어보려면 서버 프로그램 켜고 영상 등을 동시에 많이 재생하면 됩니다.
모바일 기기들로 영상 몇 개를 동시 실행한다면 페이지 로딩은 먹통이 될 거예요
CPU와 RAM은 남아도는데 말이죠
운영할 상황에 따라 다르지만 사진, 영상 분산처리, 캐싱을 잘한다면 더 저렴한 가격으로도 운영 가능합니다.
웹 서버와 이미지(등의 미디어) 서버를 분리해서 운영해도 됩니다.
권장하는 방법으로는 아마존 라이트세일 또는 오라클 클라우드를 이용하여 트래픽을 분산시킬 수 있습니다.
홈서버 구성시 대형 통신사 기준 KT > LG > SKT 순으로 좋은데
인터넷 계약에 따라 서버 운영을 하면 안 되는 경우도 있을 겁니다.
이 부분에 대해서는 각자 알아보시길 바랍니다.
접속자가 좀 많은가요?
웹서비스 동시접속자 2,000명 이상
또는 웹페이지가 아닌 가벼운 API인 경우 2배 이상 처리 가능
- 호스팅 제품을 선택하는 경우 보통 월 20,000원 수준 ~ 상품으로 처리 가능
- AWS 등 클라우드의 인스턴스(4 코어 이상, 8GB 이상)로 처리 가능
- 서버의 스펙 : 40만원대 PC 성능으로 가능
< 라이젠 3200G(같은 가성비 CPU) + 16GB 램 >
서버 구성에 따라 다르겠지만 보통 4코어 정도면 웹서비스의 동시접속 2000명도 감당 가능합니다.
(당연하게도.. 최적화가 안 된 경우는 안될 수도 있습니다.)
네트워크 스펙 : 100Mbps 이상 권장
만약 CPU, RAM은 남아도는데 네트워크 문제인 경우 아래와 같은 방법으로 처리할 수 있습니다.
- CDN 이용 등 트래픽 분산처리
- 적절한 캐싱
이제부터 호스팅이 아닌 서버 구성시 mysql 같은 것 따로 설정 없이 깔린 대로 쓰는 경우 처리가 버거울 수 있습니다.
my.ini 등 서버, DB
메모리 사용량 등 제한을 늘려주셔야 되며 사용 환경에 맞게 최적화를 해줘야 좋습니다.
DB 동시 연결수와 메모리 제한 변경, 적절한 인덱스, 분리 등이 있습니다.
여기에서 사용자가 더 늘 것 같다면 유연하게 쓸 수 있는 Cloud 서비스를 이용하셔도 됩니다.
웹 호스팅 자체가 보통 무겁지 않아서 웹만 사용 시 호스팅이나 직접 구축을 하셔도 됩니다.
DB는 분리 운영 및 백업을 권장합니다.
보안은 잘 신경 쓰셔야 됩니다.
Mysql DB(Maria DB) 서버는 단일 코어 성능이 뛰어난 경우가 아직 좋습니다.
언제 업데이트될지는 모르지만 글 작성일 기준으로 라이젠에 비해 인텔 CPU가 Mysql DB(Maria DB)용으로는 좀 더 성능상 우위입니다.
WAS가 감당을 못하면
프록시(분산 시스템용) -> WAS 1, 2... -> DB 형태로 구성하면 되고
네트워크가 감당을 못한다면
네트워크를 증설하거나, 캐싱을 활용하기 + CDN 등 분산처리를 하면 될 겁니다.
아마존 라이트세일과 오라클 클라우드 등 트래픽이 저렴한 서비스로 미디어 서버를 별도로 구축하셔도 됩니다.
DB가 감당 못하는 경우는 없을 겁니다...
DB사용량을 제한해서 서버는 남아도는데 느려지는 경우가 아니라면 DB가 감당 못하는 경우는 거의 없습니다.
요즘 클라우드 서버를 사용하는 이유가 기존방식으로 서버 운영시 여러 단점들을 개선시키려고 나온 만큼
클라우드 서버를 잘 활용해도 좋을 겁니다.
가격은 설계가 잘되었다는 가정하에 당연히 직접 운영이 더 쌀 수 있습니다.
장애에 곧바로 대처해야 하려면 계속 모니터링을 해야 되는 등의 큰 단점이 있지만요
이 글의 목적
이 글은 웹서버 하나 돌리는 데에는 많은 사양이 필요 없음을 알리고자 작성하였습니다.
단순히 웹페이지 하나 돌리는 데에는 많은 자원이 필요하지 않습니다.
사용자가 많으면 네트워크는 많이 필요할 수 있습니다.
정확한 테스트를 위해서는 웹서버와 동일하게 구축 후 스트레스 테스트를 해보시면 됩니다.
웹페이지는 웹문서라고 불립니다. 문서하면 우리는 쉽게 txt, 워드, 한글 파일을 생각할 수 있는데..
웹 서버가 처리하는 일은 txt 파일을 단순히 열어보고 닫는 정도로 생각하시면 됩니다.
= 그만큼 많은 사양이 필요하지 않습니다.
게다가 요즘의 보급형 PC 사양은 과거의 기업용 서버(10년 이상된) 보다 좋은 경우가 많습니다.
PC 성능의 발전에 따라 웹서버의 성능은 보급형 PC 수준에서 맞출 수 있게 되었습니다.
'소개 > IT 상식' 카테고리의 다른 글
아이폰 색상반전 (0) | 2020.06.07 |
---|---|
Windows 에서 만들 수 없는 폴더명은? (0) | 2020.06.06 |
유튜브의 고유 ID값은 얼마나 많은 영상을 나타낼 수 있을까? (0) | 2020.06.05 |
애드센스 추적기) 로그분석으로 무효클릭 공격 분석하기 (0) | 2020.06.03 |
보안 뉴스) 디스코드를 타겟으로 하는 트로이목마 악성코드 발견 (1) | 2020.06.02 |
2020-05-30 오류해결) 루트 인증서 업데이트 방법 (37) | 2020.05.30 |
오류해결) NET::ERR_CERT_DATE_INVALID (17) | 2020.05.30 |
‘전자세금계산서 발급안내’로 위장한 악성 이메일 어떻게 발신자 변조가 가능할까? (0) | 2020.05.28 |
저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)
예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.
만약, 본문 공유를 원하신다면 링크 공유를 해주세요
저작권 정책 확인하기링크 공유하기