오늘은 앱서비스개발을 위해서 최소한의 비용으로 서버를 준비하는 방법에 대해서 정리해 보도록 하겠습니다.
1. Why Hosting?
호스팅서비스의 경우 비용을 제어할 수 있다는 장점이 가장 큰 것 같습니다.
월 얼마정도로 맞추어놓고 그에 맞게 사용하면됩니다.
저처럼 개인개발자의 경우, 사용한만큼 과금되는 형태는 분명 신경이 쓰여지는 부분입니다.
AWS에서도 EC2같이 호스팅서비스를 제공하고 있습니다.
하지만 매번 환율에 따라 가격도 달라지고 이런저런 작은 비용들이 붙습니다.
게다가, AWS의 UI가 편하다고 생각된 적은 한번도 없었구요.
국내업체에서 가상서버호스팅을 사용할 경우,
설치비와 매월 얼마씩해서 결재해놓으면 그것으로 요금에 대해서는 걱정 끝입니다.
Docker가 생긴 요즘같은 시대에 서비스가 커지고 확장이 필요해지면,
투자를 받아서 AWS로 옮기는데 들어가는 리소스도 예전에 비해 상대적으로 좋아졌습니다.
다만 한가지 생각해 두어야 할 것이 있습니다.
사용자 인증과 관련하여서 보안을 스스로 해결해야 한다는 것은 큰 허들입니다.
특히나 서버에 유저의 민감한 정보가 들어간다면 말이지요.
그렇지 않고, SNS서비스 로그인을 이용해서 아이디와 비번인증을 다른 서비스에 기대도 되며,
민감한 정보가 없고, 즐겨찾기 아이템정도만 저장되어 있다면 호스팅이 좋을 것 같습니다.
2. 웹호스팅, 단독서버호스팅, 가상서버 Hosting
웹호스팅, 단독서버호스팅, 가상서버호스팅이 있는데요.
아래와 같이 구분해 볼 수 있습니다.
장점 | 단점 | |
웹호스팅 | 필요한 소프트웨어설치가 되어 있음 PHP, MariaDB, GNU보드등의 게시판 소프트웨어들이 설치되어 있는 경우가 많다. |
- 여러유저와 실제 서버를 공유하므로, 타유저에 의해 문제 발생가능 - 소프트웨어 설치 자유도가 떨어짐 |
단독서버호스팅 | - 실제 물리적으로 한대를 본인을 위해 사용하므로 타 유저에 의한 문제발생요소 없음 - 소프트웨어 설치자유도 높음 |
유지비가 비쌈 |
가상서버호스팅 | - 서버자원을 가상머신들이 분할해서 개별서버처럼 운영하도록 한 서비스로 단독서버호스팅의 장점중 하나인 소프트웨어 설치 자유도가 있음 - 단독서버호스팅에 비해 가격이 저렴한 편 |
여전히 여러 유저와 실제 물리적 서버를 나누어서 사용하는 것은 동일하므로, 본인과 관계없이 타 유저에 의해 문제가 발생가능 |
가능하다면, 단독서버호스팅이 좋겠지만, 개인이 소규모로 시작해보려고 하는 경우는 부담이 되는 것 같습니다.
Docker등의 설치 및 사용이 용이하면서도 가격도 저렴한 편인 가상서버호스팅을 중심으로 글을 자성하겠습니다.
호스팅업체는 여러곳이 있지만, Cafe24 나 가비아등이 큰 업체로 알려져 있는데요.
보안이라는 부분이 업체의 사이즈와도 연관이 많이 되므로,
규모가 크고 보안이 잘 되면서, 유저들과 서비스업체간 커뮤니케이션도 잘 되는 곳으로 골라야 하겠습니다.
3. 트래픽 과 Ram 및 SSD사양
리눅스 가상서버 호스팅을 사용하기로 결정하였다면, 구체적인 사양을 결정하셔야 하는데요.
일반적으로 PHP나 DB등이 설치된 버전보다는 훨씬 많은 트래픽과 용량을 제공해 줍니다.
아래보면 서비스 구분이 되어있는데요.
상업적으로 시작하려고 한다면, 비즈니스정도 사양이 좋을 것 같기는 하지만,
시작으로는 일반형도 크게 무리가 없어보입니다.
개인적으로는 AWS서버에 FreeTier가 남아있다면 무료로 서비스를 준비하다가,
Beta정도로 운영을 할 정도가 되었을 때부터 비즈니스나 퍼스트클래스로 시작을 하는 것고 괜찮은 것 같습니다.
우리에겐 Docker가 있으니까요.
4. SubDomain의 활용
웹호스팅 서비스를 이용할 때,
가격이 조금 더 들어가더라도 서브 도메인을 지원하는 서비스를 이용하시는 것이 좋습니다.
위에서 언급한 것처럼, 한 서버에 두개의 서비스를 돌릴 때,
서브도메인을 이용해야 하기 때문입니다.
싸다고 아무거나 하시면, 서브도메인이 포함되지 않는 경우가 있으므로 조심해야 합니다.
5. 소규모 호스팅 서버 구현을 위한 기술들
소규모의 호스팅 서버 구현을 위해서 어떤 것들이 필요할까요?
5-1. NginX
웹애플리케이션 앞단에서 ReverseProxy로서의 역할을 해주는 Nginx입니다.
이에 대한 내용은 아래 글을 참조해 주세요.
>> NGINX에 대한 정리 #Upstream #Reverse Proxy #Proxy_pass
5-2. Docker
이제 Docker는 필수가 되었는데요.
Docker를 사용하면서 로컬에서 서버로 작업한 내용을 업로드하기가 매우 쉬워졌구요.
서버를 추가하기도 너무나 쉬워졌습니다.
AWS의 Scaling만큼 자동화되지는 않지만,
사용량을 보면서 수동으로 서버를 늘리더라도,
Docker사용에 필요한 Script정도만 잘 정리해서 가지고 있어도 매우 빠르게 할 수 있습니다.
또한 Docker를 사용하는데 있어서 큰 장점 중 하나가, 컨테이너 간에 격리가 되어서 한 서버에 여러개의 서비스를 올릴 수 있다는 부분입니다.
하나의 서버에 몇개의 서비스를 돌리는 것도 가능하다는 것 이지요.
물론, 서버의 사양에 따른 부하도 고민을 해 보아야겠지만요.
그래도, 1,2개의 서비스를 띄워서 잘 되는 것을 테스트해 볼수도 있는 것 이구요.
CI툴들을 Docker로 설치해서 분리해 사용할 수도 있겠지요.
Docker의 기본에 관한 글은 아래 글을 참조해 주세요.
>> Docker와 DockerHub를 사용해 배포하는 방법에 대해서 정리해 봅니다 #NodeJS
5-3. OAuth구현
이메일가입등을 직접구현하기보다는 이러한 부분은 SNS업체들에게 맞기고,
OAuth구현에 집중하는 것이 좋다고 생각합니다.
소규모 서버호스팅을 하면서, 비즈니스로직이 아닌 곳에 너무나 많은 리소스가 들어가면 좋지 않다고 생각합니다.
참고로, 서비스가 잘되어서 AWS서비스로 서버를 옮길 경우에,
Kakao로그인이나 Naver로그인의 경우 AWS의 Cognito에서 직접 지원하지 않기 때문에,
Migration시에 부담이 될 수 있습니다.
어떤 클라우드서비스에서도 공용으로 사용되는 FaceBook과 Gmail및 Twitter로 구현해 놓고,
추후 확장방향에 따라 변경하는 것도 좋을 것 같습니다.
6. SSL인증서
개인정보를 입력하는 사이트의 경우,
개인정보보호 법률에 SSL인증서를 갖추거나, 정보를 암호화해서 송수신할 수 있도록 하는 프로그램을 웹서버에 설치하도록 되어있습니다.
HTTPS가 아니면, 크롬에서는 경고사이트를 보여주므로, SSL인증서는 필수라고 하겠습니다.
웹호스팅서비스를 이용하면, 무료로 설치되어 있는 경우가 많은데요.
아쉽게도 가상서버호스팅의 경우는 설치가 않되어 있는 경우가 많습니다.
이럴경우 직접 인증서를 구매하여 설치해야 합니다.
잘 찾아보면 무료부터 1만원대까지 다양하게 있으니 조금 불편하더라도 구매해서 설치해 사용해 주어야 합니다.
7. 팁 및 주의할 점
7-1. Static Webpage
간혹 유저가 많이 방문할 필요도 없고, 어떠한 이유로 존재해야만 해서 static한 웹페이지가 필요한 경우가 있습니다.
이런 경우 굳이 호스팅서비스를 이용하기 보다는 Firebase의 Hosting 서비스나 AWS의 S3를 추천합니다.
Firebase의 경우 data transfer양이 하루에 360mb로 매우 적지만, 사이트 용량을 최소화하면 되기 때문에 크게 문제되지 않구요.
과금 방식이라면, S3를 이용한 static webpage를 이용하는 것도 것도 적은 비용으로 빠르게 사용할 수 있습니다.
8.정리
이상으로 소규모 서비스를 위한 Hosting 서비스 사용에 대해서 정리해 보았는데요.
좀 더 저렴하면서 효율적인 방법이 있다면, 이 글을 통해서 업데이트 하도록 하겠습니다.
'Cloud Services > 가상서버호스팅' 카테고리의 다른 글
Mac 에서 Cafe24 가상서버 호스팅 접속방법 # SSH 접속 (0) | 2022.04.26 |
---|
댓글