VM으로 Server를 구축하는 이유
PaaS
, SaaS
와 같은 것이 더 편리한 것이 있는데 불구하고 왜 굳이 VM
으로 Server를 구축하려는 것 일까요?
온 프레미스 환경
을 구축하는게 아닌 이상 보편적으로 AWS, Azure와 같은 클라우드 컴퓨팅 서비스
를 이용하게 됩니다.
4대 클라우드
- AWS-Amazon
- IBM Cloud-IBM
- Azure-MS
- Google Cloud Platform-Google
온 프레미스 환경
과 클라우드 환경
의 장/단점 존재하지만 엄청난 대형 서비스를 운영하는 게 아닌 간단하게 서버를 열어서 테스트하거나 소규모 Project용 혹은 취미용으로 사용하는 경우에는 사용한 만큼 가격을 지불하고 보안 및 관리가 용이한 클라우드 환경
이 편리합니다.
AWS, Azure는 클라우드 환경
에서 PaaS 형태로 용도에 맞게 여러 서비스를 제공합니다.
이 중에 용도에 맞는 Service를 선택하지 않고 하나의 VM으로 Server를 구축하는 이유는 뭘까요?
먼저 Server란?
Server는 클라이언트에게 네트워크를 통해 서비스하는 컴퓨터를 의미합니다.
DB Server가 되면 클라이언트 사용자들이 DB에 저장된 정보를 요청하면 DB에서 요청된 정보를(때로는 가공하여) 제공하는 서비스
역할을 할 수도 있고
또는, Web Server가 되면 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는
역할을 할 수도 있습니다.
이와 같이 Server는 넓은 역할을 수행할 수 있습니다.
용도에 맞는 서비스 이용
클라우드 환경에는 용도에 맞는 서비스를 제공합니다.
Azure를 예로 들면
- 웹 사이트를 호스팅 하기 위한
App Services
- DB Server인
Azure Cosmos DB
- 등등...
해당 서비스를 이용하면 용도에 맞게 특화되고 강력한 기능을 제공합니다.
장점
- 서비스에 맞는 강력한 기능 제공
- 독립적인 리소스로 관리가 가능
- 서비스 사용량만큼 가격을 지불하는 형태라 합리적이다
- 서비스가 다운되더라도 독립적이기 때문에 하나만 다운됨
단점
- 여러 서비스를 관리해야 하는 어려움
그럼에도 VM? 🙄
그럼에도 불구하고 VM를 사용하게 되면 생기는 이점이 있습니다.
note
데일리 하게 가볍게 사용하는 사용자 입장으로 서술되었으며 하나의 VM만 사용한다는 가정으로 서술되었습니다.
장점
- VM 하나로 모든 서비스를 관리할 수 있다. 😍
온프레미스 환경
과 비슷한 환경을 만들 수 있다.- 원하는 기능을 제약 없이 만들 수 있다.
- 하드웨어 성능을 선택할 수 있으며 변경이 자유롭다.
- 필요한 기능을 하나하나 설치하고 Setting 해야 되기 때문에 구동 메커니즘 이해에 도움이 된다.
단점
- VM 다운시 모든 서비스가 다운된다. 😱
- 보안 관리가 어렵다.
- 항상 작동 가정으로 독립적인 서비스보다 지출이 크다.
결론
내가 구현하는 서비스나 환경에 맞게 잘 선택해서 사용하는 것이 바람직합니다.
아직은 경험치가 부족하여 여러 서비스를 공부하는 것보다 하나의 VM으로 관리하고 느껴보는 것이 좋다고 판단되어 해당 시리즈에서는 VM을 Server로 사용하는 방법을 가이드 하게 되었습니다.