Skip links

Cloud 서버리스 전략

Cloud 서비스 제공사들의 서버리스 전략

 

[서버리스의 필요성]

Cloud는 2006년 Amazon Web Services의 laas(Infrastructure as a Service) 상용화를 시작으로 2013년 Google이 Santa Clara Pycon에서 공개한 Docker 컨테이너로 인해 프로그램 개발 트랜드도 모놀리식 구조(Monolithic Architecture)에서 마이크로 서비스 구조(MicroService Architecture) 로 전환하는 시대를 지내고 있다.

마이크로 서비스는 비지니스 로직 단위로 잘게 나누어 서비스하는 설계 패턴을 의미하며 한 서비스에 많은 기능을 포함하는 모놀리식과는 상반되는 개념이다. 코드를 객체 단위로 작성하는 측면에서 OOP의 목적과도 비슷하다고 볼 수 있으며 소규모 기능을 기반으로 독립적으로 배포할 수 있는 서비스를 구축하는데 중점을 둔 설계 패턴이다.

Cloud 서비스 제공사들은 이미 많은 마이크로 서비스를 제품화하여 컴퓨팅, 스토리지, AI, IoT, 미디어, 네트워킹, 데이터베이스 등의 분야에 적용되어 소프트웨어로 컴퓨팅 시장에 존재하는 모든 것을 제어할 수 있는 시대가 되었다. 그러나 여전히 대부분의 비즈니스 소프트웨어의 시장은 새로운 요구사항을 프로그램으로 개발해야 하고 Cloud 서비스 제공사들은 소프트웨어 개발 기간과 인력, 비용, 유지 관리를 줄일 수 있는 서버리스 분야를 강화하고 있는 상황이다.

 

[Docker도 서버리스인가?]

서버리스의 시작은 2006년 FaaS(Function as a Service)로 출시된 Zimki, 2008년 Python기반인 Google App Engins, 2010년 PiCloud의 FaaS를 거쳐 2014년 Amazon의 AWS Lambda로 Public Cloud 시장에 서비스되어 현재와 같은 형태를 갖추게 되었다. 이와 같은 서버리스의 표준은 AE360 Framework의 IDCA(International Data Center Authority)에서 스펙을 정의하고 있는데 Docker도 서버리스에 표준에 포함되는지에 대한 논란이 뜨겁다.

아래 랩 배틀 영상을 보면 서버리스와 컨테이너의 구조가 전혀 다르지만 결국 같은 문제를 완벽하게 해결할 수 있다는 결론에 도달한다.

 

이 부분에서 컨테이너를 오케스트레이션 하는 쿠버네티스와 서버리스가 어떻게 협력해야 하는가에 대한 미들웨어로 개발된 Knative에 주목할 필요가 있다. Knative는 최신 서버리스 워크로드를 배포하고 관리하기 위한 쿠버네티스 기반 플랫폼으로 쿠버네티스 클러스터에 Knative를 설치하여 쿠버네티스의 복잡한 세부 정보를 추상화하고 개발에 집중할 수 있도록 도움을 준다.

*Knative의 주요기능 및 특징

– 컨테이너 배포

– 트래픽과 라우팅 관리

– On demand에서 Auto Scaling 과 워크로드 사이즈 조정

– 실행중인 서비스를 Eventing ecosystem 연결

– 컴퓨팅 요청에 의한 scale to zero

Knative audience

 

더이상 Docker가 서버리스인가? 에 대한 논쟁은 필요 없게 되어 버렸다. Cloud 서비스 제공사들은 AWS Lambda, Google Cloud Function, Azure Function의  서버리스 서비스 제공과 동시에 쿠버네티스 기반인 EKS(Elastic Kubernetes Service), GKE(Google Kubernetes Engine), AKS(Azure Kubernetes Service)도 서버리스를 호환하며 서비리스가 되어 버린 것이다.

 

[서버리스 전략]

2019 State of the Cloud Report: See the Latest Cloud Trends(https://info.flexera.com/SLO-CM-WP-State-of-the-Cloud-2019) 의 보고서에 따르면 서버리스의 연간 성장률은 2018년 75%증가, 2019년에는 50%를 증가하며 Cloud 서비스 분야에서 연속 최고의 성장률을 보였다. Containner-as-a-service를 포함한다면 Cloud 서비스 중에 가장 많이 사용하는 서비스로 볼 수 있다.

Cloud 서비스를 많이 사용하게 될 수 록 서버리스가 증가할 수밖에 없는 사업 구조이다.

서버리스가 Cloud 서비스 중에 Top인 이유에 대해 2가지를 선택해 보았다.

  • 컴퓨팅 자원을 필요로 할 때에만 사용하고 IDEL 상태에서는 사용하지 않는다.
  • 어플리케이션 배포와 운영관리가 쉬워야 한다.

이미 Cloud 서비스 제공사들의 서버리스 실행 모델은 Cloud 서버를 연중 무휴로 관리하면서 사용한 컴퓨팅 자원에 대한 비용만 부담하게 되어 비용을 절약할 수 있는 서비스와 간단한 CLI나 GUI를 통해 어플리케이션 배포와 운영관리 기능을 제공하고 있다. 또한 이러한 서비스를 더욱 빠르고 안정적으로 운영하기 위해 리전을 지속적으로 추가하면서 더 쉽고, 저렴하게 어플리케이션을 서비스할 수 있는 환경을 만들기 위한 추가 개발을 하고 있는 상황이다. 모든 컴퓨팅 시장이 Cloud 서비스의 사용에 의존할 수밖에 만드는 시대를 걷고 있다.

 

[참고 URL]

Amozon 서버리스 : https://aws.amazon.com/ko/serverless/

Azure 서버리스 : https://azure.microsoft.com/ko-kr/solutions/serverless/

Google 서버리스 : https://cloud.google.com/serverless?hl=ko

Knative 개발 문서 : https://knative.dev/docs/

서버리스 정의 : https://en.wikipedia.org/wiki/Serverless_computing#cite_note-3