들어가며
클라우드 서비스 세계적으로 유명한 곳은 AWS, Azure, Google이 존재한다. 그 외에도 국내에는 Naver Cloud Flattform이 존재한다. AWS는 Amazon Web Service로 아마존에서 제공하고 Azure는 Microsoft, Google Colud Platform은 구글에서 제공한다.
AWS
AWS는 가장 많은 시장 점유율로 33%를 차지하고 있어 Private Cloud 서비스 분야에서 타 서비스 대비 장점을 갖고 있다.
AWS의 IaaS는 Elastic Compute Cloud(EC2)가 그 예이며 메인 컴퓨팅 서비스. 프로세서, 스토리지 네트워크, 운영체제 등 폭넓고 세분화된 스펙을 제공한다. EC2의 경우, 가장 많이 사용해봤기에 어떠한 장단점이 있는지 파악하고 있다. 내가 느낀 EC2의 장점은 첫째, 초보자도 쉽게 IaaS를 누릴수 있는 것이었다.
EC2를 만들때 유저는 실제로 옷을 사듯이 OS, 유형, 네트워크, 키 등을 편리하게 사용할 수 있으며 AWS는 해당 탭마다 정보를 제공해 사용자는 해당 탭에 대한 내용도 알아볼 수 있게하였다. 둘째, 타사 대비 많은 레퍼런스와 공식문서의 정리가 제일 잘 되어 있었다. 셋째, 서비스의 범위가 매우 높아 AWS파트너쉽을 통해 업체는 AWS가 직접 관리를 해주는 서비스도 제공해준다. 단점은 첫째, EC2에 대한 커스텀이 복잡하고 과금에 대해서 프리티어가 주어지나 타사 대비 비싼 감이 있었다. 둘째, 세부적인 컨트롤이 가능하기에 다소 복잡하게 관리가 이루어지는 경우가 있었다.
AWS의 Paas는 Elastic Beanstalk, Lightsail, AWS App Runner가 존재한다. Elastic Beanstalk는 다양한 언어와 서버 프로그램이 내장되어 있어 코드만 업로드하면 용량 프로비저닝(자원할당)과 로드 밸런싱, 오토 스케일링 및 모니터링까지 이르는 배포과정을 자동으로 처리해준다. Lightsail는 저렴한 비용으로 애플리케이션 및 웹 사이트를 빠르게 구축할 수 있는 서비스이며 Word 등 사전에 구성된 애플리케이션을 통해 빠르게 웹 사이트 구축이 가능하다. AWS App Runner는 컨테이너와 된 애플리케이션 및 API를 대규모로 빠르게 배포할 수 있도록 지원하는 완전 관리형 서비스이다. 웹 애플리케이션을 자동 구축 및 배포하고 암호화를 통한 트래픽 로드 밸런싱 수행 및 오토스케일링을 수행한다.
AWS의 컨테이너 관리는 Amazon ECR(Elastic Container Registry)서비스를 통해 구축이 가능하다. ECR을 통해 컨테이너 이미지를 푸시하고 모든 도구를 관리할 수 있다.
AWS ECS Anywhere를 통해 컨테이너를 실행할 수 있다. ECS는 컨테이너기반 애플리케이션에서 도구를 제공해준다.
그러면 쿠버네티스의 주 목적인 컨테이너의 관리가 이루어져야하는데 이것을 Amazon EKS Anywhere가 한다.
EKS Anywhere를 통해 쿠버네티스 클러스터를 운영이 가능하다.
Azure
Azure는 점유율 20%로 MS사에서 만들었기에 MS관련 서비스와 높은 호환성을 가진다. Azure의 IaaS는 Azure Virtual Machines에는 Linux, Window Server가 존재하고 가상 머신에는 A시리즈부터 N시리즈가 존재한다. PaaS는 App Service, Batch, Azure Spring Cloud, Cloud Services가 존재하는데 학부 수준에서 공부를 위해 유용하게 쓰일만한 것은 App Service는 Application Service를 구축하기 위한 완전 관리형 플랫폼이다. Azure Spring App은 Spring Boot와 호환성이 좋으며 Spring Cloud Azure는 Spring 공식적으로 지원하는 서비스이기에 Azure와 호환성이 매우 좋다.
Azure Kubernetes Service는 운영 오버헤드를 Azure가 관리하여 Kubernetes 클러스터 배포를 단순화할 수 있다. 호스팅 되는 Kubernetes 서비스인 Azure는 상태 모니터링 및 유지관리 등 작업 처리를 할 수 있다. Azure Kubernetes Service는 크게 4가지의 서비스를 제공한다. 첫째,엔터프라이즈급 컨테이너 오케스트레이션을 위해 Kubernetes 클러스터의 자동화된 관리를 할 수 있다. 둘째, 디버깅, CI/CD, 로깅 등 자동 노드 유지 관리를 통한 엔드투엔드 개발자의 생산성을 높여준다. 셋째, 대규모 거버넌스를 위해 컨테이너 보안을 모니터링 및 유지 관리하는 고급 ID 및 액세스 관리한다. 넷째, Azure Arc를 사용하여 인프라에 AKS배포를 통해 Linux, Windows Server 및 IoT 리소스 지원을 받을 수 있다.
GCP
Google Cloud Platform은 구글에서 제공하는 클라우드 컴퓨팅 서비스로 시장 점유율 10%로 앞서 소개한 클라우드 회사 대비 낮은 점유율을 갖고 있다. 구글 클라우드 플랫폼은 IaaS서비스는 구글 컴퓨트 엔진(Goole Compute Engine, GCE), 빅테이블, 빅쿼리가 있다. 구글 컴퓨트 엔진의 운영체제는 리눅스, 윈도우, FreeBSD, NetBSD가 있고 GCE는 FM 런칭 이전에 Oauth 2.0 기반의 인증을 수행해야 하는 단점이 있다. 빅테이블은 구글의 파일 시스템으로 고성능 데이터 스토리지 시스템이다. 그리고 빅 쿼리는 대용량, 페타바이트급 이상의 데이터에 대해 분석을 가능하게 하는 관리형 서버리스 컴퓨팅 데이터 웨어하우스이다. 그 다음 GCP의 PaaS는 구글 앱 엔진으로(Google App Engine, GAE) 웹 응용 프로그램을 개발하고 구글의 인프라에서 실행하고 버전 관리할 수 있다. Google Kubernetes Engine(GKE) Kubernetes를 자동으로 배포, 확장, 관리할 수 있으며 안전한 Google 인프라에서 컨테이너화된 애플리케이션을 배포, 확장 및 관리하기 위한 관리형 환경을 말한다.
AWS, Azure, GCP 장단점 비교
첫째, AWS에 대해서 장단점을 파악 해보면 AWS의 장점은 가장 높은 시장 점유율로 많은 레퍼런스와 성공사례가 있다는 것이다. 따라서 서비스를 제공하는 범위가 타사 대비 매우 높으며 파트너 생태계가 매우 잘 이루어져 있다. 단점은 AWS를 사용하기 위해서 AWS의 시스템에 대한 이해도가 필요하며 규모가 큰 하이브리드 클라우드의 지원이 부족하고 AWS의 서비스의 범위가 크기에 파악하기 힘든 경향이 있다.
둘째, Azure의 장단점을 파악해보면 Azure의 장점은 다른 MS 서비스 및 제품과의 이식성이 좋기에 MS teams, word 등 다른 서비스와 같이 사용하기 좋다. 오픈 소스 애플리케이션 스택에 대한 많은 도움을 받을 수 있다. AWS에서 부족한 하이브리드 클라우드에 대해서 솔루션이 제공된다. 가상 환경에서도 모두 잘 실행되는 사용 사례가 만이 존재한다. 하지만 단점은 대규모 구현의 빈약한 규모가 있으며 Azure 또한, 구현하기 위해서 인프라에 대해서 전문 지식이 필요하다.
셋째, GCP의 장단점을 파악해보면 GCP의 장점은 오픈 소스 커뮤니티에 대한 기여했다. 또한, 현재 각광받는 분야인 분석 및 머신러닝에 대한 많은 투자가 이루어지고 빅데이터 애플리케이션, ML 벤처 및 클라우드 네이티브 애플리케이션을 위한 최적의 옵션이다. 단점은 타사 대비 시장 점유율이 낮아 성공 레퍼런스가 비교적 부족하고 계약협상에 대해서 타사 대비 까다로운 계약 협상이 있다. 또한, 규모가 다른 회사에 비해 적기에 파트너 생태계가 규모가 작다.
만약 내가 클라우드를 도입한다면 3가지 클라우드 기업 중 어느 것을 선택하겠는가?
만약 서비스 스타트업에서 클라우드 컴퓨팅을 도입한다면 단연, AWS를 채택할 것이다. 그 근거를 3가지가 있다.
첫째, 가장 높은 시장 점유율
AWS는 국내를 넘어 전 세계적으로 가장 높은 클라우드 시장성을 가지고 있다. 또한, 시장 점유율은 기업 경쟁간의 우의를 점하고 있다는 지표를 나타내기도 한다. 실제로 AWS를 운용해보며 런칭을 진행해 본 결과 AWS는 가장 많은 레퍼런스가 나왔다.
둘째, 합리적 가격
3사 중 가장 저렴한 가격이라면 그것은 아니다. 단, 합리적인 가격이라고 생각한다. AWS는 파트너십을 통해서 직원이 직접 관리해주는 서비스도 제공하며 시장에 DevOps 개발자의 선택 비중으로 본다면 AWS 관련 개발자가 채용과정에서 가장 수월할 것으로 생각된다. 실제로 AWS의 설정을 통해서 AWS의 가상서버는 코크로치랩스가 TPC-C 테스트에서 파생시킨 OLTP 성능평가 결과상 가장 비용효율적인 상품으로 AWS의 c5a.4xlarge 인스턴스는 GCP의 가성비 최고상품대비 12% 저렴하고 MS애저 대비로는 35% 저렴한 기사가 있다. 그리고 AWS는 스타트업 클라우드에는 사용료를 일정 부분 할인해주는 서비스도 지원하고 특정 기간에 사용률을 기반으로 앞으로의 추세를 분석해주는 서비스가 존재하기에 스타트업에서 매우 필수적인 클라우드 제공 업체이다. 스타트업의 효율적인 클라우드 사용을 위해 각 기업의 상황에 맞는 기간할인, 금액설정, 단기 사용등 3가지 경우를 권고하는데 이를 AWS에서 분석 및 결과를 추출해주니 매우 유용하다.
셋째, AWS 스타트업 서비스
AWS에서는 스타트업을 지원해주는 AWS 스타트업 서비스가 있다. AWS 상에서 스타트업을 구축하기에 다른 스타트업 창업자들과 매칭시켜주기도 하며 이를 통해 비즈니스 성장을 도모한다. 다양한 AWS 스타트업 프로그램을 지원하고 있는데 이를 이용하면 인프라 서비스를 넘어 스타트업의 시작, 성장, 비즈니스 확장을 받을 수 있다. 이를 기반으로 Airbnb, Zocdoc 등의 유니콘 기업의 클라우드 서비스를 제공해준 이력이 있기에 스타트업과 자사 대형 고객들을 연결해주는 프로그램인 AWS 커넥션, 스타트업의 빠른 시작을 지원하는 AWS Public Sector Startup Ramp도 있으며 스타트업의 운영 가속화를 위한 검증, 출시, 지원, 영업에 대한 지침을 제공하는 AWS 파트너 네트워크 서비스도 제공한다.
위의 3가지의 근거를 통해 만약 내가 스타트업의 클라우드 컴퓨팅을 도입한다면 AWS를 채택 할 것이다.