본문 바로가기

카테고리 없음

Multi-Cloud Platform

Update: 구글에서도 같은 생각을 했던 것 같다. 앤소스(Anthos)도 있었지만 스핀에커(Spinnaker), 쿠버네티스(Kubernetes), 이스티오(Istio) 조합으로 멀티클라우드(Multi-Cloud)를 지원하는 방법도 있다는 것을 구글 클라우드 넥스트 리와인드'18(Google Cloud Next Rewind '18)에서 소개했었다.[각주:1]


멀티 클라우드(Multi-Cloud)는 문자를 그대로 해석했을 때, 여러 개의 클라우드 컴퓨팅 환경을 뜻한다. 보통 이런 경우, 대부분 규모가 큰 업체를 떠올리게 된다. 멀티 클라우드 전략이라는 말을 들었을 때 아마도 아마존(Amazon), 구글(Google), 마이크로소프트(Microsoft)를 떠올렸을 것이다. 레드햇(Redhat), 오라클(Oracle) 까지 생각해보면 클라우드 제공 업체들은 많다. 그러나 멀티 클라우드가 이러한 여러 업체를 두 개 이상 사용하는 것만을 의미하지는 않는다. 많이 이상하게 들리겠지만 AWS(Amazon Web Services)에서 EC2 인스턴스와 ECS 컨테이너(Container)를 복합적으로 사용하는 것도 멀티 클라우드라고 볼 수 있다. 클라우드라는 것은 서비스를 사용하는 소비자 경험을 향상시키기 위해서 시스템을 설계하고 운영하는 철학과 방법 그리고 구체적인 기술을 아우르는 말이다. 다시 말해서 시스템 내부의 어떤 문제로 인해서 소비자가 영향받는 것을 최소화하기 위한 '노력'[각주:2]이다. 일시적인 대량의 요청으로인해 시스템이 느려지거나 멈추는 일이 없도록 만들기도 하고 연중무휴를 위해 문제가 생긴 하드웨어를 우아하게 교체하기도 한다. 클라우드 네이티브(Cloud Native)[각주:3]는 이러한 클라우드의 목적을 이루기 위해 노력하는 시스템을 말하며, 단지 컨테이너로 마이크로서비스(Microservice)를 구축한 경우만 일컫는 것이 아니다.[각주:4]

Anthos, Google Cloud Platform

 

구글에서 앤소스(Anthos)라는 서비스를 출시했다. 어떤 기능을 하는 지 궁금해서 살펴 보았다. 클라우드 컴퓨팅 시장에 늦게 뛰어든 입장에서 기존 고객의 환경과 구글이 제공하는 환경을 유기적으로 통합하기 위한 전략이었다. 후발주자로서 충분히 시도할만한 좋은 전략이었지만, 한 편으로는 시장 지배 업체인 아마존의 영향력이 너무 크다는 반증이라는 생각이 들었다. 가상머신(VM, Virtual Machine) 기반의 클라우드 환경을 이미 구축한 고객들은 새로운 공급자인 구글로 옮길 매력을 충분히 느끼지 못할 것이라는 뜻이다. 단순히 가격 할인만으로는 어렵다고 생각한다. 실제로도 그러한 경험이 있었다. 아마존 위에 구축된 환경을 비용절감의 이유로 옮기자는 의견이 있었는데, 엔지니어 인건비와 시스템 운영비를 비교해 보면 답은 명백하게 나온다는 반대의견도 나왔었다. 시스템을 옮겨서 연 1억원의 이익이 발생한다고 하더라도 연 1억원 이상 연봉의 엔지니어 3명을 기능 개발이 아닌 마이그레이션(Migration)에 낭비하는 것은 수지타산이 맞지않는다는 근거였다. 실리콘밸리에서는 엔지니어 연봉을 예산에 포함해서 생각한다는 점이 매우 놀라웠고 인상 깊었다. 한국에서는 인건비를 제외하고 생각하니 무조건 이익이라는 입장이었는데, 실리콘밸리의 생각은 달랐다. 결국 구글을 활용하는 방안은 천천히 생각해보자는 의견으로 정리되었다. 비슷한 고민을 하는 다른 회사들의 상황도 이와 비슷할 것 같다.

그러나 앤소스에 대해 부정적인 의견만 있는 것은 아니다. 현실은 어쩔 수 없지만, 미래를 위해서는 앤소스 같은 노력이 필요하다. 이제 아마존만 클라우드 컴퓨팅을 하는 시대가 아니다. 구글도 마이크로소프트도, 그리고 수 많은 오픈소스들도 클라우드를 제공한다. 그래서 이제 멀티 클라우드는 곧 미래에서 현재로 다가 올 것이다. 이러한 관점에서 볼 때 앤소스의 전략은 눈여겨 볼만하다. 여러 공급업체와 다양한 오픈소스들을 아우르는 멀티 클라우드환경이 일반화 될 것이다.

어떤 서비스는 구글에서 돌리고 어떤 서비스는 람다를 이용할 수 있다. 비용측면 뿐 아니라 기술의 특징을 따라 멀티 클라우드를 활용할 수 있다. 구글은 빅데이터 분야에서 뛰어난 강자이다. 아마존은 전통적인 RDBMS(Relational DataBase Management System)을 클라우드 환경에 맞게 재해석해서 올려놓았다[각주:5]. RDBMS 기반의 어플리케이션 서비스는 아마존에서 실행하고, 정보 분석을 위해서 구글을 활용하는 회사들이 생겨나고 있다. 또한 아마존만 사용한다고 해도 그 안에서 서버리스(Serverless)와 컨테이터, 가상머신(Virtual Machine) 등 다양한 종류의 클라우드 서비스를 혼용해서 사용할 수 있다. 이러한 변화에 맞춰서 앤소스가 나온 것으로 보인다.

이러한 변화에 적합한 도구가 한 가지 더 있다. 앤소스와는 범주가 약간 어긋나지만, 멀티 클라우드 지원이라는 점에서는 공통 요소를 갖고 있다. 소프트웨어의 품질을 높이고 안정적인 운영을 하기 위한 스핀에커(Spinnaker)다. 스핀에커는 아마존 EC2를 가장 잘 지원했다. 그러나 구글이 내부 배포 도구로 선택한 후부터 쿠버네티스(Kubernetes)에 대한 지원이 대폭 향상되었다. 지금은 아마존도 스핀에커 프로젝트에 참여해서 많은 고객들이 스핀에커를 통해 더욱 아마존을 잘 활용하길 원하고 있다. 넷플릭스는 자신들이 만든 컨테이너 관리도구인 타이튜스(Titus)를 지원하도록 스핀에커를 개선하고 있다. 그래서 원한다면 현재 보편적으로 활용할 수 있는 대부분의 클라우드 환경에 어플리케이션을 배포하고 관리할 수 있다. 물론 앤소스와 스핀에커는 차이점이 있다. 앤소스는 여러 종류의 쿠버네티스 환경을 단일 환경에서 설정하고 관리할 수 있도록 만들어주는 통합 도구를 지향한다. 스핀에커는 소스코드 부터 검증 및 배포, 그리고 롤백(Roll-back)에 이르는 소프트웨어 품질관리를 일원화하고 쉽고 간편하게 어플리케이션을 여러 종류의 클라우드 환경에 배포할 수 있는 품질관리 도구를 지향한다.

그래서, 계획하는 바는 테라폼으로 여러 클라우드 클러스터를 구축하고 스핀에커로 그 위에 어플리케이션을 자유롭지만 자신감 있게 배포할 수 있도록 만드는 것이다.

Multi-cloud with Terraform and Spinnaker


 

  1. Using Kubernetes, Spinnaker and Istio to Manage a Multi-cloud Environment (Next Rewind '18) - Youtube [본문으로]
  2. 노력이라고 표현한 것은 고객만족을 위해 지속적으로 안정성과 성능을 개선하고 발전시키려는 클라우드의 목적을 강조하고 싶었기 때문이었다. [본문으로]
  3. Cloud-Native [본문으로]
  4. CNCF(Cloud Native Computing Foundation)에서 처음 정의한 클라우드 네이티브의 의미는 컨테이너와 마이크로서비스로 한정되었다. 그러나 시장의 상황과 여러 의견을 반영하여 클라우드의 궁극적인 가치가 고객에게 있음을 공감하고 모든 클라우드 환경을 품은 정의로 변경되었다. 따라서 가상머신을 사용해도 클라우드 네이티브할 수 있다. [본문으로]
  5. Amazon Aurora [본문으로]