서버리스 컴퓨팅이란 무엇인가요?
서버리스 컴퓨팅은 뉴스, 테크 쇼, 산업 컨퍼런스에서 헤드라인을 장식했습니다. '서버리스'라는 아이디어는 2006년에 처음 나왔지만, 아직도 상대적으로 새로운 개념입니다. 많은 사람들이 서버리스가 컴퓨팅 모델의 자연스러운 진화 결과라고 생각합니다. 이 문서에서는 서버리스 컴퓨팅의 핵심 개념을 살펴보고, 이벤트 구동 및 완전 관리형 컴퓨팅 서비스로 Function Compute이라고 불리는 Alibaba Cloud의 솔루션을 소개합니다.
컴퓨팅 모델의 진화
지난 수십 년 동안 엔터프라이즈 IT 기술은 물리적 서버에서 가상 머신, 컨테이너화 기술까지 빠른 속도로 진화해 왔습니다.
제1세대 컴퓨팅은 Von Neumann 아키텍처에 기반을 두었고 고정 프로그램을 사용했습니다. 대개 이러한 프로그램은 프로그램이 실행되는 하드웨어와 밀접하게 연결되어 있습니다. 디스크 기반 스토리지로 전환하면서 운영 체제가 실행되는 하드웨어에 대한 운영 체제의 종속성이 감소했습니다. 하지만, 소프트웨어 응용 프로그램이 '모놀리스(Monolith)'와 비슷해졌는데, 모놀리스에서는 사용자 인터페이스 및 데이터 액세스 코드가 하나의 플랫폼에서 실행되는 단일 프로그램으로 결합됩니다. 이러한 모놀리스는 자체 포함되어 기능을 변경하려면 엄청난 노력이 요구되었습니다. 운영 체제가 실행되는 하드웨어에 대한 운영 체제의 종속성은 감소했지만, 특정 운영 체제에 대한 응용 프로그램 자체의 종속성은 증가했습니다. 2000년대 초에는 새로운 응용 프로그램을 런칭하려면 가장 먼저 새로운 서버 구입을 계획했을 것입니다. 다시 말해, 물리적 서버가 응용 프로그램의 구성 요소였습니다.
그리고 2001년, 하드웨어가 상품화되고(특히, x86 기반 아키텍처) 가상 시스템이 큰 인기를 얻으면서 가상화 기술이 힘을 얻기 시작했습니다. VMWare와 같은 기업 덕분에 큰 인기를 끌게 된 하이퍼바이저 소프트웨어가 가상 머신.생성 용이성을 확대하였습니다. 물리적 장치 한 대에서 여러 대의 가상 머신을 실행하면서 물리적 서버를 구매해야 할 필요성이 감소하고 아키텍처 구성 요소가 물리적 서버에서 가상 머신으로 변경되었습니다.
가상화로 머신 운영이 쉬워졌지만, 가상 디스크 이미지는 크기가 크고 다루기가 까다로웠으며, 변화무쌍한 컴퓨팅 워크로드에 따라 규모를 변경하는 것이 쉽지 않았습니다. 컨테이너 기술은 운영 체제 레벨 가상화를 가능하게 해 훨씬 가벼운 대안이라는 점이 입증되었습니다. 그 과정에서 다른 주요한 발전이 이루어졌습니다. 몇 가지 핵심적인 발전에 대해 언급하도록 하겠습니다.
- 2009년: Heroku, 빌드팩을 통해 12 팩터 응용 프로그램을 컨테이너화할 수 있는 서비스로서의 플랫폼(PaaS)
- 2010년: OpenStack, 매우 다양한 공급업체 그룹을 모아 서비스로서의 오픈 소스 인프라 생성
- 2011년: CloudFoundary, 오픈 소스 PaaS 및 비슷한 도구를 활용해 전체 응용 프로그램 개발 수명 주기 동안 지속적인 제공을 지원하는 방식으로 DevOps 이동 속도 가속화 지원. Cloud Foundry의 컨테이너 기반 아키텍처, 다양한 클라우드 서비스 공급자에 대한 프로그래밍 언어로 앱 실행
- 2013년: Docker(LCX, Union 파일 시스템 및 Cgroup 결합), 개발자 커뮤니티에서 즉각적인 성공을 거둔 컨테이너화 표준 생성

즉, 컨테이너화 기술 덕분에 마이크로서비스 기반 아키텍처를 구축하고 배포하는 것이 쉬워졌고, 그에 따라 결합도를 낮게 완화하고 확장성을 크게 개선할 수 있었습니다.
이러한 개념을 더 자세히 살펴보면 알 수 있는 것처럼, 서버리스 컴퓨팅은 컴퓨팅 모델의 자연스러운 진화 결과입니다.
서버리스 주요 문제
컨테이너 기술을 사용하더라도 여러 가지 문제가 남아 있습니다. 몇 가지 문제는 다음과 같습니다.
- 용량 계획 수립은 여전히 복잡한 문제입니다. 아직도 인프라 엔지니어들은 구성하는 데 필요한 머신 유형이나 크기, 개수(CPU, 메모리 및 네트워킹 또는 I/O 광대역 요구사항)와 같은 컴퓨팅 리소스 사용률을 사전에 계획해야 합니다. 과대평가하면 비용 증가로 이어지고, 과소평가하면 비즈니스에 해로운 영향을 미칠 수 있습니다.
- 머신 수준 자동 크기 조정이 번거롭습니다. 확장하는 데 몇 분이 걸리기도 합니다. 실시간 자동 크기 조정 관리 및 부하 분산 계획 수립에 많은 노력이 수반됩니다.
- 내결함성, 작동 및 유지보수에도 비슷한 문제가 있습니다.
여러 가지 오픈 소스 및 소유 솔루션을 사용해 이러한 문제 중 일부는 해결할 수 있지만, 여전히 많은 리소스가 필요하고 특히, 중소기업에서 이러한 솔루션을 시행하는 것은 쉽지 않은 일입니다.
서버리스 컴퓨팅이 이러한 문제를 완화하는 방법을 살펴보도록 하겠습니다.
서버리스 컴퓨팅
FaaS(Functions as a Service)이라고도 일컬어지는 서버리스 아키텍처 또는 서비스로서의 백엔드(Backend as a Service)를 사용하면 사용 후 삭제 및 상태 비저장 컨테이너를 통해 응용 프로그램을 실행할 수 있습니다. 이벤트가 발생하는 순간에 바로 컨테이너가 생성되고 조치 필요성을 트리거합니다. 따라서 이벤트 기반 환경입니다. 하나 또는 여러 기능이 번들로 제공되는 응용 프로그램은 플랫폼에 업로드된 다음에 그 순간에 필요한 정확한 수요에 따라 실행 및 확장되고 비용이 청구됩니다. 서버리스는 "서버가 없다"는 의미가 아닙니다. 인프라 오케스트레이션 세부 정보가 사용자에게 표시되지 않고 서버리스 플랫폼 공급자가 관리한다는 것을 의미합니다.

서버리스 기술의 핵심적인 특징에는 다음이 포함됩니다.
- 서버리스 컴퓨팅을 통한 DevOps 단순화 서버리스 기술의 핵심적인 장점 중 하나는 서버에 대해 생각하지 않고 응용 프로그램과 서비스를 구축해 실행할 수 있게 해준다는 것입니다. 서버리스 컴퓨팅을 사용하면, 프로비전, 규모 조절, 서버 세부 정보 관리가 더 이상 필요하지 않습니다. 개발자는 서비스가 실행되는 인프라 관리에 대한 걱정을 잊고 비즈니스 기능을 구축하는 데 집중할 수 있습니다. 서버리스는 거의 모든 유형의 응용 프로그램 또는 백엔드 서비스에 적용할 수 있습니다.
- 서버리스의 두 번째 장점은 마이크로서비스 기반 아키텍처에 완벽하게 들어맞다는 것입니다. 또한, 다양한 서비스 간에 높은 수준의 분리를 제공하기 때문에 마이크로서비스에 기반한 아키텍처 개발에 유리합니다. 이 덕분에 필요한 경우 롤백을 단순화할 뿐만 아니라 지속적인 출시에 기반한 아키텍처 개발이 크게 용이해집니다.
- 셋째, 서버리스 기술을 사용하면 계량을 통한 요금 청구가 가능하기 때문에 실제로 소비한 리소스에 대해서만 요금을 지불합니다. 이러한 장점은 컴퓨팅 비용에도 적용되기 때문에 서버리스 컴퓨팅을 사용하면 실제로 사용한 컴퓨팅 리소스에 대해서만 요금을 지불하면 됩니다. 대개의 경우 기존의 컴퓨팅 방법보다 비용이 훨씬 더 많이 점감되는 효과를 낳습니다.
- 고가용성이 자동화 및 기본적으로 제공
서버리스 커뮤니티는 매우 빠르게 성장하고 있고, 많은 웹, 모바일 및 데이터 처리 백엔드를 서버리스 구성요소를 사용해 구축하고 있습니다. 근본적으로 서버리스 접근방식을 활용하는 일반적인 사용 사례에는 채팅 봇, BigData 컴퓨팅, 머신 러닝 및 사물 인터넷(IoT)이 포함됩니다.
Alibaba Cloud Function Compute 소개
Alibaba는 개발자가 서버리스 여정을 시작하는 데 필요한 모든 도구를 제공합니다. Alibaba Cloud가 제공하는 핵심 서버리스 컴퓨팅 제품인 Function Compute는 규모와 관계없이 모든 기업의 민첩성은 크게 개선하고 운영 비용은 낮춰 비즈니스 크리티컬 결과물과 성과물에 투자를 집중할 수 있도록 해줍니다. Functional Compute 외에도 스토리지, 분석 및 메시징을 포함한 다른 클라우드 제품도 서버리스 기술을 사용합니다. 예를 들어, Alibaba Cloud에서 가장 처음 런칭한 클라우드 서비스인 개체 스토리지 서비스(OSS)는 서버리스 스토리지 서비스입니다. 사용자는 기본 서버에 데이터가 어떻게 저장되는지 신경 쓸 필요 없이, 사용한 스토리지 리소스에 대해서만 요금을 지불하면 됩니다.

Alibaba Cloud Function Compute는 이벤트 구동의 완전 관리형 컴퓨팅 서비스입니다. Function Compute를 사용하면 관리 오버헤드를 고려하지 않고 모든 유형의 응용 프로그램 또는 서비스를 신속하게 구축할 수 있습니다. Function Compute는 사용자를 위해 컴퓨팅 리소스를 준비해 유연하고 안정적으로 사용자를 대신해 코드를 실행합니다.
Function Compute는 로그 쿼리, 성능 모니터링, 경보 및 여러 가지 다른 기능을 제공합니다. 코드를 실행할 때 실제로 사용하는 리소스에 대해서만 요금을 지불합니다. 실행되지 않는 응용 프로그램 코드에 대해서는 요금이 발생하지 않습니다.
Alibaba Cloud에서 제공하는 Function Compute 제품에 대한 자세한 정보와 서버리스 컴퓨팅을 활용하는 일반 시나리오를 확인하려면 링크를 클릭하십시오.
관련 문서
-
클라우드 컴퓨팅이란 무엇인가요?
기술 자료 팀
-
퍼블릭 클라우드란 무엇인가요?
기술 자료 팀
-
프라이빗 클라우드란 무엇인가요?
기술 자료 팀
-
하이브리드 클라우드란 무엇인가요?
기술 자료 팀
-
퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드
기술 자료 팀
-
IaaS란 무엇인가요?
기술 자료 팀
-
PaaS란 무엇인가요?
기술 자료 팀
-
컨테이너화란 무엇인가요?
기술 자료 팀
-
컨테이너와 VM의 차이
기술 자료 팀