클라우드 서비스가 왜 우리에게 좋은지, 수많은 클라우드 컴퓨팅 중 왜 AWS를 선택했는지에 대해 적어보고자 합니다.
클라우드 컴퓨팅에 대해 정의한 다양한 회사와 기관들
위키피디아 | 클라우드 컴퓨팅은 인터넷 기반 컴퓨팅의 일종으로, 공유 컴퓨터 처리 자원과 데이터를 컴퓨터와 다른 장치들에 요청 시 제공해준다. |
미국 표준기술국 (NIST: National Institute of Standards and Technology) | 클라우드 컴퓨팅은 공유가능한 네트웍과 서버, 스토리지, 앱 등을 제공하여 언제 어디서나 쉽고 편리하게 사용할 수 있는 컴퓨팅환경을 제공한다. |
IBM (International Business machines Corporation) | 간단히 '클라우드'로도 불리는 클라우드 컴퓨팅은 애플리케이션부터 데이터 센터까지 모든 on demand 컴퓨팅 리소스를 인터넷을 통해 사용단위 요금부과 방식으로 제공한다. |
아마존 (Amazon) | 클라우드 컴퓨팅은 클라우드 서비스 플랫폼에서 컴퓨팅 파워, 데이터베이스 스토리지, 애플리케이션 및 기타 IT 리소스를 필요에 따라 인터넷을 통해 제공하고 사용한 만큼 비용을 지불하는 것을 말한다. |
내용을 보면 공통적인 부분은 다음과 같습니다.
컴퓨터 자원이 필요한 만큼 요청하고, 사용한 만큼 비용을 지불한다.
클라우드 서비스의 역사
https://timesofcloud.com/cloud-tutorial/history-and-vision-of-cloud-computing/
위의 글을 보면 어떤식으로 클라우드 서비스가 발전해왔는지 간략하게 볼 수 있습니다.
물리적인 서버를 직접 운용하는 것 or 서버 호스팅 or 클라우드 서비스
저희는 서비스를 하기위한 프로세스로 린스타트업을 지향하기로 했고, 그에따라 프로토타입을 만들기위한 서버가 필요했고, 선택지는 세개가 있었습니다.
그 중 물리적인 서버를 직접 운용하는 것은 배제했습니다.
그 이유는 다음과 같습니다.
1) 서버를 직접 놓을 장소가 없습니다.
2) 해당 서버를 위한 네트워크들이나 인프라를 구축한 경험이 있는 인력이 없습니다.
3) 장소와 네트워크가 해결된다고 해도 불필요한 유지비용(서버를 놓을 장소, 서버에 맞는 온도 유지 비용, 상시 관리 인력, 네트워크 구축 비용) 소모
4) 시장 반응이 좋고 서비스가 빠르게 클 시 세가지 선택 중 확장성 제일 낮음
서버 호스팅 vs 클라우드 서비스
서버 호스팅과 클라우드 서비스는 개발자의 입장에서 봤을 때 서버를 빌리고, 그 안에 환경을 구축한다는 것은 비슷하지만
근본적인 차이점은 '서버 자원을 자유롭게 추가할 수 있는가' 입니다.
사진에서 보시다시피 웹, 서버 호스팅은 물리서버의 자원을 사용하기 때문에 서버 자원을 자유롭게 추가할 수 없고,
VPS 호스팅과 클라우드는 같은 서버 가상화 방식을 사용하지만 클라우드는 서버 자원을 자유롭게 추가할 수 있고, VPS 호스팅은 불가능합니다.
결론적으로 클라우드만 서버 자원을 자유롭게 추가할 수 있습니다.
VPS호스팅과 클라우드는 같은 가상화 방식인데 VPS호스팅은 자원을 자유롭게 추가하지 못하는 이유는 다음과 같습니다.
사진들을 보면 그 차이점을 알 수 있는데, 근본적인 가상화방식엔 차이가 없지만 사용방식에 따라 달라지는걸 알 수 있습니다.
저희는 다음과 같은 이유로 클라우드서비스를 선택했습니다.
1. 사용량 유연성 & 비용절감
프로토타입을 만들고, 시장에 출시해서 반응을 보게되면, 갑자기 사용자가 증가해 트래픽이 과도하게 발생할 경우 클라우드 서비스는 즉각적으로 대응이 가능하지만, 서버 호스팅같은 경우는 대처하는데 오래 걸리게 됩니다. 또한 정해진 자원을 계속 빌리고 있는 것보다, 자원 사용량이 많을 때 많이 사용할 수 있고, 자원 사용량이 적을 때는 그만큼 비용을 덜 내는게 효율적이라고 생각했습니다.
2) 트래픽 급증 대처 용이
바로 위에 VPS 호스팅과, 클라우드의 차이점에서도 보이듯이 트래픽이 급증했을 때 자원을 모두 사용하고 있다면, 서버를 증설해야하는데 그렇게되면 재부팅을 하거나 다른 서버를 호스팅하고 데이터를 연결해야하는데 해당 작업을 경험해본 사람이 없어 리스크가 크고, 서비스가 오랫동안 중지될 수도 있다고 생각해서 클라우드서비스를 이용하여 빠르게 대처해야겠다고 판단했습니다.
수많은 클라우드 서비스 제공 업체들 중 Amazon을 선택한 이유
저희가 클라우드 제공업체를 선정한 기준들은 다음과 같습니다.
- 한국 Region이 있는지
저희 서비스는 한국에서 서비스를 시작하기 때문에 네트워크 대기시간을 최대한 줄이기 위해 한국에 물리적인 서버가 존재해야 했습니다. 해외에 유명한 기업들이고, 클라우드 서비스가 훌륭하지만, 한국 region이 존재하지 않는다면 불필요한 네트워크 리소스 소모량이 많아지기 때문에 피해야겠다고 판단했습니다.
위 링크는 한국 region이 있는 클라우드 컴퓨팅의 리스트입니다.
컴퓨팅은 2022년 7월 17일 기준으로 78개가 있었고, 이중에 선택해야한다고 판단했습니다.
- 러닝커브 (팀원들의 사용경험)
클라우드 서비스는 물론 물리적인 서버를 직접 구축해 사용하는 것보다는 편하지만 서비스 이용이 생각보다 복잡하고 세세하게 설정해줘야할 부분이 많습니다. 그래서 개발팀원들이 사용해봤고, 문제가 없었던 업체를 선정하는 부분을 우선순위를 높게 뒀습니다. 개발 팀원들이 사용해본 클라우드 서비스는 AWS, iwinv 가 있었고 일단 중요 후보들로 AWS와 iwinv를 뒀습니다.
- 제공회사의 신뢰성 & 안정성
서비스를 제공하는 업체가 보안, 서버관리가 안정적으로 잘 이루어지고 데이터가 사라질 위험이 없는게 일단 제일 중요하다고 생각했습니다. 또한 시스템이 중단되어서 서비스가 중지되는일이 생기면 안되고, 서비스가 중지될 경우 빠르게 복구가 가능한지 혹은 저희 서비스에는 타격이 없는지가 중요하다고 판단했습니다. 여기에서 후보군을 많이 줄였고 여러 기업들에서 사용하고 있고, 시장 점유율이 가장 높은 서비스가 AWS, Azure, GCP 였고 모두 한국 region을 가지고 있었기 때문에 최종 후보군을 AWS, Azure, GCP, iwinv 로 선정하게 되었습니다.
- 비용
저희가 주로 사용하는 클라우드 서비스는 컴퓨팅이기 때문에 컴퓨팅을 기준으로 비용을 책정했을 땐 저렴한 순으로
iwinv -> GCP -> Azure -> AWS 였습니다.
iwinv가 유독 싼편이지만 GCP, Azure, AWS는 비용차이가 난다고 해도 드라마틱하게 나진 않았습니다.
2021년 2분기 기준 벤치마크 표
그 외
- 다양한 cpu, memory를 제공하고 쉽게 변경이 가능하도록
- 우리에게 필요한 레퍼런스에 대한 수가 많이 있는가 & 점유율
- Pass서비스가 다양한 것 (DB, cache, runtime 배포 가능한것, AI)
- 문의가 편한가
최종
저희 서비스는 한국 region을 지원하면서 최대한 빠르게 린스타트업 프로세스로 프로토타입을 출시해야해서 클라우드 서비스를 이용함에 있어 러닝커브가 높지 않아야 한다고 판단했습니다. AWS는 여러가지 서비스의 결합이나, 어떻게 사용해야하는지 등이 공식문서와 레퍼런스가 많았고, Azure는 제대로 사용하려면 전문지식이 많이 필요하다는 글을 많이 접했습니다. 제공회사의 신뢰성은 이미 여러 기업에서 사용하고 있었고 비용은 AWS가 가장 비쌌지만 러닝커브가 좋지 않은 Azure을 선택하면서까지의 큰 비용차이는 없었기 때문에 AWS로 선정했습니다
참고
https://library.gabia.com/contents/infrahosting/3915/
https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C_%EC%BB%B4%ED%93%A8%ED%8C%85
http://e-learning.nhi.go.kr/blog/blog/viewPost_D.do?blogId=4493698&artNo=4609
'Server' 카테고리의 다른 글
Docker - EFK 환경구축 과정 (0) | 2022.08.04 |
---|---|
시스템 로그 수집 툴 - Fluented vs LogStash (0) | 2022.08.03 |
AWS EC2- CloudWatch, Slack 연동 CPU, Memory 사용량 모니터링 (0) | 2022.06.20 |
EC2 프리티어 인스턴스 시작 - Ubuntu (0) | 2022.06.13 |
라이브 스트리밍 서버 설정 nginx-rtmp (0) | 2022.06.13 |
댓글