서버리스란 무엇입니까?
게시 됨: 2022-02-15서버리스 컴퓨팅은 사용량에 따라 백엔드 서비스를 제공하는 방법론입니다. 서버리스 공급자의 주요 요소는 사용자가 기본 인프라에 대해 걱정하지 않고 코드를 작성할 수 있는 능력입니다. 서버리스 컴퓨팅을 제공하는 공급업체로부터 서비스를 받는 조직은 대역폭이나 서버 수에 대해 고정 비용을 지불하는 것에 대해 걱정할 필요가 없습니다. 반대로 조직은 계산에 따라 요금이 부과됩니다. 주목해야 할 것은 서버리스라는 이름에도 불구하고 개발자가 알 필요가 없는 물리적 서버의 사용이 있다는 것입니다.
인터넷 시대 초창기에는 누구나 웹 애플리케이션을 개발할 때마다 서버를 운영해야 했고, 이는 끝이 없고 힘든 작업이었습니다. 그리고 고정된 수량의 서버나 서버 공간을 임대로 구독할 수 있는 클라우드 컴퓨팅 시대가 도래했습니다. 이러한 서버와 서버 공간을 차지하는 개발자와 조직은 일반적으로 웹사이트 트래픽의 갑작스러운 유입으로 인해 애플리케이션이 중단되는 불리한 상황에 빠지지 않도록 과도하게 구매하는 경향이 있습니다. 클라우드 벤더들이 Auto scaling 방식을 내놓았지만 DDoS 공격과 같은 대규모 스파이크의 경우에는 비용 효율적인 방식이 아닙니다.
서버리스 컴퓨팅을 통해 개발자는 "종량제" 방식으로 백엔드 서비스를 사용할 수 있습니다. 즉, 개발자는 사용하는 서비스에 대해서만 비용을 지불해야 합니다. 서버리스 용어는 오해의 소지가 있습니다. 즉, 실제로 개발자는 서버가 없는 것이 아니라 서버에 대해 걱정할 필요가 없습니다.
- 백엔드와 프론트엔드의 차이점
- 백엔드 서비스 유형
- 이점들
- 서버리스 컴퓨팅 비교
- 미래
백엔드와 프론트엔드의 차이점은 무엇입니까?
생성되는 모든 애플리케이션은 프런트엔드와 백엔드의 두 가지 구성 요소로 구성됩니다. 프론트엔드는 기본적으로 사용자가 보고, 사용하고, 상호작용하는 부분으로 주로 시각적 레이아웃입니다. 백엔드는 사용자가 일반적으로 볼 수 없는 구성 요소입니다. 애플리케이션의 파일이 있는 서버와 비즈니스 로직과 사용자 데이터가 저장되는 데이터베이스.
웹 사이트의 예를 들면 프론트 엔드는 백엔드에서 웹 사이트 데이터를 요청하고 백엔드는 요청에 응답하여 데이터를 프론트 엔드로 푸시합니다.
서버리스 컴퓨팅이 제공하는 백엔드 서비스 유형
대부분의 서버리스 컴퓨팅 제공업체는 데이터베이스 및 스토리지 서비스를 제공합니다. 그들 중 일부는 FaaS(Function-as-a-Service) 플랫폼도 제공합니다. Cloudflare 작업자가 동일한 예입니다. FaaS 개념을 통해 개발자는 네트워크 에지에서 작은 코드 섹션을 개발하고 실행할 수 있습니다. FaaS 방법론을 사용하여 개발자는 전체 코드베이스를 극도로 확장 가능하게 만드는 아키텍처를 만들 수 있으며 가장 좋은 부분은 개발자가 백엔드에 리소스를 사용할 필요가 없다는 것입니다.
서버리스 컴퓨팅의 장점
서버리스 컴퓨팅은 많은 인기를 얻었으며 이는 주로 이것이 테이블에 가져다주는 주요 이점 때문입니다.
이러한 장점은 다음과 같습니다.
- 비용 절감 – 서버리스 컴퓨팅은 클라우드 컴퓨팅에서 볼 수 있는 유휴 시간 또는 사용되지 않는 공간의 사용 개념이 없기 때문에 상대적으로 비용이 적게 듭니다.
- 손쉬운 확장 – 서버리스 아키텍처 또는 백엔드를 사용하는 개발자는 코드를 확장하기 위해 다른 정책에 대해 걱정할 필요가 없습니다.
- 간단한 백엔드 코드 – FaaS와 같은 개념을 사용하여 개발자는 독립적으로 수행되는 API 호출만큼 간단한 기능을 생성할 수 있습니다.
- 더 빠른 처리 – 서버리스 아키텍처를 사용하면 제품을 시장에 신속하게 출시할 수 있습니다. 복잡한 배포 및 패치 업데이트의 기존 방법과 달리 서버리스 컴퓨팅은 개발자가 임시 및 단편적으로 새로운 기능을 추가하는 데 도움이 될 수 있습니다.
서버리스 컴퓨팅을 다른 백엔드 클라우드 모델과 비교합니까?
서버리스 컴퓨팅과 종종 비교되는 몇 가지 기술이 있습니다. 이들은 서비스로서의 백엔드 및 서비스로서의 플랫폼입니다. 이 두 기술은 몇 가지 유사점이 있지만 실제로는 서버리스 컴퓨팅 방법론으로 정의되는 요구 사항을 충족하지 않습니다.
BaaS(Backend-as-a-Service): 클라우드 공급업체가 데이터 저장과 같은 백엔드 서비스를 제공하여 개발자가 프런트엔드 코드 개발에 더 집중할 수 있도록 하는 서비스 모델입니다. 대부분의 서버리스 애플리케이션은 완전히 이벤트 기반이고 에지에서 실행되지만 BaaS 애플리케이션은 서버리스 컴퓨팅 방법론의 요구 사항을 정확히 충족하지 않을 수 있습니다.
PaaS(Platform-as-a-Service): 개발자가 클라우드 서비스 공급자로부터 애플리케이션의 모든 구성 요소를 가져와 공급업체의 클라우드 서버에서 애플리케이션을 개발 및 배포하는 모델입니다. 그러나 주요 단점은 PaaS 애플리케이션이 서버리스 애플리케이션처럼 쉽게 확장할 수 없다는 것입니다. 또 다른 요인은 PaaS 애플리케이션이 에지에서 실행되지 않고 애플리케이션 시작 시 눈에 띄는 지연이 있다는 것입니다.
IaaS(Infrastructure-as-a-Service): 본질적으로 서버리스 컴퓨팅과 상당히 상호 교환적으로 사용되는 유행어이지만 두 용어는 어떤 의미에서도 동의어가 아닙니다. IaaS는 인프라 공급업체가 대신 고객의 애플리케이션을 호스팅하는 데 사용되는 용어입니다.
서버리스 컴퓨팅의 미래
방법론은 서비스 공급자가 모든 종류의 결점을 제거하기 위한 새롭고 혁신적인 방법을 제시함에 따라 지속적으로 발전하고 있습니다. 주목할 수 있는 것은 콜드 스타트입니다.
이는 특정 서버리스 응용 프로그램이 꽤 오랫동안 호출되지 않은 경우 공급자가 에너지를 절약하고 모든 종류의 초과 할당을 피하기 위해 서버를 종료한다는 것을 의미합니다. 다음에 사용자가 응용 프로그램을 호출하면 서비스 공급자는 처음부터 다시 시작하고 해당 기능을 다시 호스팅해야 합니다.
기능이 시작되어 실행되는 즉시 다음 요청 세트에서 더 빠르게 제공되므로 빠르게 실행됩니다. 그러나 기능이 요청되지 않으면 다시 중지됩니다. 이것은 본질적으로 기능을 요청하는 다음 사용자가 콜드 스타트에 직면할 것임을 의미합니다.
마지막 생각들
서버리스 컴퓨팅의 점점 더 많은 단점이 해결되고 에지 컴퓨팅의 인기가 높아짐에 따라 서버리스 컴퓨팅이 개발자와 사용자 커뮤니티에서 널리 보급될 것으로 예상할 수 있습니다.
기타 유용한 리소스:
웹 서버 취약점 공격: 조직을 보호하는 방법
서버 메시지 블록이란 무엇이며 어떻게 작동합니까?
웹 애플리케이션 – 알아야 할 모든 것
엣지 컴퓨팅이란 무엇입니까? – 알아야 할 모든 것